@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
@@ -1,27 +1,27 @@
1
1
  import {
2
2
  DataViewsDisplayPanel
3
- } from "./chunk-HNPWZ3W2.js";
3
+ } from "./chunk-Y7F5JBAT.js";
4
4
  import {
5
5
  DataViewsExportMenu
6
- } from "./chunk-BW62QQAG.js";
6
+ } from "./chunk-6N4AA2Y7.js";
7
7
  import {
8
8
  renderBulkActions
9
- } from "./chunk-75LOTMSN.js";
9
+ } from "./chunk-PPRV4LTM.js";
10
10
  import {
11
11
  useDataViewsCopy
12
12
  } from "./chunk-KHG57NAE.js";
13
13
  import {
14
14
  FilterTrigger
15
- } from "./chunk-L4QCIUTJ.js";
15
+ } from "./chunk-UMNXSQ7I.js";
16
16
  import {
17
17
  ContentToolbar
18
- } from "./chunk-3VMGE7CU.js";
18
+ } from "./chunk-TZFBJ47T.js";
19
19
  import {
20
20
  default as default2
21
21
  } from "./chunk-6DPAWXZ3.js";
22
22
  import {
23
23
  Text
24
- } from "./chunk-WTOYEWW6.js";
24
+ } from "./chunk-YBH4SPMM.js";
25
25
  import {
26
26
  sxRem
27
27
  } from "./chunk-YKCAJ2TN.js";
@@ -136,4 +136,4 @@ function GridToolbar(props) {
136
136
  export {
137
137
  GridToolbar
138
138
  };
139
- //# sourceMappingURL=chunk-UZ6AUTE6.js.map
139
+ //# sourceMappingURL=chunk-CNQUCNEA.js.map
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  DeleteViewDialog
3
- } from "./chunk-VT5HQ2AD.js";
3
+ } from "./chunk-BFMDA6UO.js";
4
4
  import {
5
5
  DataViewsGrid
6
- } from "./chunk-CQLPDY2J.js";
6
+ } from "./chunk-5OBXEMQO.js";
7
7
  import {
8
8
  viewStateKey
9
9
  } from "./chunk-ZOLAYP2D.js";
10
10
  import {
11
11
  ViewDialogs,
12
12
  ViewMutationErrorAlert
13
- } from "./chunk-SJO3K7SB.js";
13
+ } from "./chunk-2OYFTSG4.js";
14
14
  import {
15
15
  useSavedViewsController
16
16
  } from "./chunk-HR7YTBR7.js";
@@ -178,4 +178,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
178
178
  export {
179
179
  DataViewsTableBase
180
180
  };
181
- //# sourceMappingURL=chunk-JL75FJRG.js.map
181
+ //# sourceMappingURL=chunk-CZIX4BW2.js.map
@@ -1,3 +1,10 @@
1
+ import {
2
+ FIELD_BORDER_WIDTH
3
+ } from "./chunk-PZBK3F52.js";
4
+ import {
5
+ rem
6
+ } from "./chunk-YKCAJ2TN.js";
7
+
1
8
  // src/components/layout/Separator/Separator.styles.ts
2
9
  var THICKNESS_PX = {
3
10
  xs: 1,
@@ -53,21 +60,28 @@ var borderEdges = (isHorizontal, thickness, style, color) => {
53
60
  [`border${leading}Color`]: color
54
61
  };
55
62
  };
56
- var separatorBlockMargin = (size, margin, isHorizontal) => {
63
+ var separatorBlockMargin = (theme, size, margin, isHorizontal) => {
57
64
  const value = separatorMargin(size, margin);
58
- const length = typeof value === "string" ? value : `${value}px`;
65
+ const length = typeof value === "string" ? value : rem(theme, value);
59
66
  return isHorizontal ? `${length} 0` : `0 ${length}`;
60
67
  };
61
- var separatorStyles = (theme, { variant, orientation, size, color, margin, length }) => {
68
+ var ruleLength = (theme, length) => {
69
+ if (!length) return "100%";
70
+ if (typeof length === "string") return length;
71
+ return length <= 1 ? `${length * 100}%` : rem(theme, length);
72
+ };
73
+ var separatorStyles = (theme, { variant, orientation, size, color, blockMargin, length }) => {
62
74
  const isHorizontal = orientation === "horizontal";
63
- const thickness = separatorThickness(size);
75
+ const thicknessPx = separatorThickness(size);
76
+ const thickness = thicknessPx === FIELD_BORDER_WIDTH ? `${FIELD_BORDER_WIDTH}px` : rem(theme, thicknessPx);
77
+ const along = ruleLength(theme, length);
64
78
  const resolvedColor = color || theme.palette.divider;
65
79
  const baseStyles = {
66
80
  display: "flex",
67
81
  alignItems: "center",
68
- margin: separatorBlockMargin(size, margin, isHorizontal),
69
- width: isHorizontal ? length || "100%" : `${thickness}px`,
70
- height: isHorizontal ? `${thickness}px` : length || "100%",
82
+ margin: blockMargin,
83
+ width: isHorizontal ? along : thickness,
84
+ height: isHorizontal ? thickness : along,
71
85
  boxSizing: "border-box"
72
86
  };
73
87
  if (variant === "gradient") {
@@ -88,4 +102,4 @@ export {
88
102
  separatorBlockMargin,
89
103
  separatorStyles
90
104
  };
91
- //# sourceMappingURL=chunk-CAHWCSRE.js.map
105
+ //# sourceMappingURL=chunk-D46SLMCX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/layout/Separator/Separator.styles.ts"],"sourcesContent":["import type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport type {\n SeparatorOrientation,\n SeparatorProps,\n SeparatorSize,\n SeparatorVariant,\n} from './Separator.types';\nimport { FIELD_BORDER_WIDTH } from '../../../tokens/field-height.core';\nimport { rem } from '../../../tokens/relative';\n\nconst THICKNESS_PX: Record<SeparatorSize, number> = {\n xs: 1,\n sm: 2,\n md: 3,\n lg: 4,\n xl: 6,\n};\n\nconst MARGIN_PX: Record<SeparatorSize, number> = {\n xs: 4,\n sm: 8,\n md: 16,\n lg: 24,\n xl: 32,\n};\n\nconst separatorThickness = (size: SeparatorSize): number =>\n THICKNESS_PX[size] ?? THICKNESS_PX.md;\n\n/** An explicit `margin` wins; otherwise the size picks one. */\nexport const separatorMargin = (\n size: SeparatorSize,\n margin?: number | string,\n): number | string => margin ?? MARGIN_PX[size] ?? MARGIN_PX.md;\n\n// `gradient` paints a background rather than a border, so it draws its line as a\n// solid border of zero visual consequence.\nconst borderStyleFor = (variant: SeparatorVariant): 'dashed' | 'dotted' | 'solid' => {\n switch (variant) {\n case 'dashed':\n return 'dashed';\n case 'dotted':\n return 'dotted';\n default:\n return 'solid';\n }\n};\n\nconst gradientBackground = (\n variant: SeparatorVariant,\n orientation: SeparatorOrientation,\n color: string,\n): string | undefined => {\n if (variant !== 'gradient') return undefined;\n const angle = orientation === 'horizontal' ? '90deg' : '180deg';\n return `linear-gradient(${angle}, transparent 0%, ${color} 50%, transparent 100%)`;\n};\n\n// Only the leading edge carries the rule; the other three are zeroed explicitly so\n// a parent's border shorthand cannot leak through.\nconst borderEdges = (\n isHorizontal: boolean,\n thickness: string,\n style: 'dashed' | 'dotted' | 'solid',\n color: string,\n): CSSObject => {\n const leading = isHorizontal ? 'Top' : 'Left';\n const blank: CSSObject = {\n borderTopWidth: 0,\n borderBottomWidth: 0,\n borderLeftWidth: 0,\n borderRightWidth: 0,\n borderTopStyle: 'none',\n borderBottomStyle: 'none',\n borderLeftStyle: 'none',\n borderRightStyle: 'none',\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n borderLeftColor: 'transparent',\n borderRightColor: 'transparent',\n };\n\n return {\n ...blank,\n [`border${leading}Width`]: thickness,\n [`border${leading}Style`]: style,\n [`border${leading}Color`]: color,\n };\n};\n\ntype SeparatorStyleArgs = Required<\n Pick<SeparatorProps, 'variant' | 'orientation' | 'size'>\n> &\n Pick<SeparatorProps, 'color' | 'length'> & {\n /** From {@link separatorBlockMargin}, which both the plain and the labelled separator read. */\n blockMargin: string;\n };\n\n/**\n * The separator's margin, on the axis it separates along only: above and below\n * a horizontal rule, either side of a vertical one. A margin given as a string\n * carries its own units; a number is design px, through the type scale.\n *\n * The LABELLED separator uses this too. It used to hand the number straight to\n * `sx.margin`, where a number is SPACING UNITS — `md`'s 16 drew 128px on all\n * four sides, against 16px above and below for the unlabelled one.\n */\nexport const separatorBlockMargin = (\n theme: Theme,\n size: SeparatorSize,\n margin: number | string | undefined,\n isHorizontal: boolean,\n): string => {\n const value = separatorMargin(size, margin);\n const length = typeof value === 'string' ? value : rem(theme, value);\n return isHorizontal ? `${length} 0` : `0 ${length}`;\n};\n\n/**\n * The rule's extent along its axis. It lands in `sx`, which reads a number of 1\n * or less as a fraction of the parent, and that stays so; any other number is\n * design px, through the type scale. Unset (or `0`/`''`) is the full run.\n */\nconst ruleLength = (theme: Theme, length: SeparatorProps['length']): string => {\n if (!length) return '100%';\n if (typeof length === 'string') return length;\n return length <= 1 ? `${length * 100}%` : rem(theme, length);\n};\n\nexport const separatorStyles = (\n theme: Theme,\n { variant, orientation, size, color, blockMargin, length }: SeparatorStyleArgs,\n): CSSObject => {\n const isHorizontal = orientation === 'horizontal';\n // `xs` is the 1px hairline: it stays one device-independent pixel at every\n // root size, like every other hairline in the package; heavier rules scale.\n const thicknessPx = separatorThickness(size);\n const thickness = thicknessPx === FIELD_BORDER_WIDTH ? `${FIELD_BORDER_WIDTH}px` : rem(theme, thicknessPx);\n const along = ruleLength(theme, length);\n const resolvedColor = color || theme.palette.divider;\n\n const baseStyles: CSSObject = {\n display: 'flex',\n alignItems: 'center',\n margin: blockMargin,\n width: isHorizontal ? along : thickness,\n height: isHorizontal ? thickness : along,\n boxSizing: 'border-box',\n };\n\n if (variant === 'gradient') {\n return {\n ...baseStyles,\n background: gradientBackground(variant, orientation, resolvedColor),\n };\n }\n\n return {\n ...baseStyles,\n backgroundColor: 'transparent',\n ...borderEdges(isHorizontal, thickness, borderStyleFor(variant), resolvedColor),\n };\n};\n"],"mappings":";;;;;;;;AAWA,IAAM,eAA8C;AAAA,EAClD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,YAA2C;AAAA,EAC/C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,qBAAqB,CAAC,SAC1B,aAAa,IAAI,KAAK,aAAa;AAG9B,IAAM,kBAAkB,CAC7B,MACA,WACoB,UAAU,UAAU,IAAI,KAAK,UAAU;AAI7D,IAAM,iBAAiB,CAAC,YAA6D;AACnF,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEA,IAAM,qBAAqB,CACzB,SACA,aACA,UACuB;AACvB,MAAI,YAAY,WAAY,QAAO;AACnC,QAAM,QAAQ,gBAAgB,eAAe,UAAU;AACvD,SAAO,mBAAmB,KAAK,qBAAqB,KAAK;AAC3D;AAIA,IAAM,cAAc,CAClB,cACA,WACA,OACA,UACc;AACd,QAAM,UAAU,eAAe,QAAQ;AACvC,QAAM,QAAmB;AAAA,IACvB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACpB;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,CAAC,SAAS,OAAO,OAAO,GAAG;AAAA,IAC3B,CAAC,SAAS,OAAO,OAAO,GAAG;AAAA,IAC3B,CAAC,SAAS,OAAO,OAAO,GAAG;AAAA,EAC7B;AACF;AAmBO,IAAM,uBAAuB,CAClC,OACA,MACA,QACA,iBACW;AACX,QAAM,QAAQ,gBAAgB,MAAM,MAAM;AAC1C,QAAM,SAAS,OAAO,UAAU,WAAW,QAAQ,IAAI,OAAO,KAAK;AACnE,SAAO,eAAe,GAAG,MAAM,OAAO,KAAK,MAAM;AACnD;AAOA,IAAM,aAAa,CAAC,OAAc,WAA6C;AAC7E,MAAI,CAAC,OAAQ,QAAO;AACpB,MAAI,OAAO,WAAW,SAAU,QAAO;AACvC,SAAO,UAAU,IAAI,GAAG,SAAS,GAAG,MAAM,IAAI,OAAO,MAAM;AAC7D;AAEO,IAAM,kBAAkB,CAC7B,OACA,EAAE,SAAS,aAAa,MAAM,OAAO,aAAa,OAAO,MAC3C;AACd,QAAM,eAAe,gBAAgB;AAGrC,QAAM,cAAc,mBAAmB,IAAI;AAC3C,QAAM,YAAY,gBAAgB,qBAAqB,GAAG,kBAAkB,OAAO,IAAI,OAAO,WAAW;AACzG,QAAM,QAAQ,WAAW,OAAO,MAAM;AACtC,QAAM,gBAAgB,SAAS,MAAM,QAAQ;AAE7C,QAAM,aAAwB;AAAA,IAC5B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,OAAO,eAAe,QAAQ;AAAA,IAC9B,QAAQ,eAAe,YAAY;AAAA,IACnC,WAAW;AAAA,EACb;AAEA,MAAI,YAAY,YAAY;AAC1B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY,mBAAmB,SAAS,aAAa,aAAa;AAAA,IACpE;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,iBAAiB;AAAA,IACjB,GAAG,YAAY,cAAc,WAAW,eAAe,OAAO,GAAG,aAAa;AAAA,EAChF;AACF;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SR_ONLY_SX,
3
3
  STATUS_COLOR
4
- } from "./chunk-LIG7TKIB.js";
4
+ } from "./chunk-NYFNF7I5.js";
5
5
  import {
6
6
  sxRem
7
7
  } from "./chunk-YKCAJ2TN.js";
@@ -44,8 +44,8 @@ function SettingsStatusMarker({
44
44
  {
45
45
  component: "span",
46
46
  sx: {
47
- width: 8,
48
- height: 8,
47
+ width: sxRem(8),
48
+ height: sxRem(8),
49
49
  borderRadius: "50%",
50
50
  flex: "0 0 auto",
51
51
  bgcolor: STATUS_COLOR[status]
@@ -62,4 +62,4 @@ SettingsStatusMarker.displayName = "SettingsStatusMarker";
62
62
  export {
63
63
  SettingsStatusMarker
64
64
  };
65
- //# sourceMappingURL=chunk-2OIP3T5O.js.map
65
+ //# sourceMappingURL=chunk-DBFRCTI5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/layout/SettingsLayout/SettingsStatusMarker.tsx"],"sourcesContent":["'use client';\n\nimport LockOutlinedIcon from '@mui/icons-material/LockOutlined';\nimport Box from '@mui/material/Box/index.js';\nimport React from 'react';\n\nimport { SR_ONLY_SX, STATUS_COLOR } from './SettingsLayout.styles';\nimport type { SettingsNavStatus } from './SettingsLayout.types';\nimport { sxRem } from '../../../tokens/relative';\n\nexport interface SettingsStatusMarkerProps {\n /** Which situation to draw. */\n status: SettingsNavStatus;\n /** What it means, in the host's language — the only carrier a screen reader gets. */\n label?: string;\n /** `data-testid` for the marker element. */\n testId?: string;\n}\n\n/**\n * The situation marker beside a settings entry: a coloured dot, or a padlock\n * when the plan does not include the section.\n *\n * The label is rendered as visually-hidden text INSIDE the marker rather than as\n * an `aria-label` on it, so it lands in the accessible name of the row that\n * contains it. A row reading \"Endereço, ligado\" is one utterance; a decorative\n * dot with a title attribute beside it is two, and the second one is skipped.\n *\n * Colour alone never says which of the three states this is — that is the whole\n * reason `label` exists, and why a marker without one is a marker with no\n * meaning attached.\n */\nexport function SettingsStatusMarker({\n status,\n label,\n testId,\n}: SettingsStatusMarkerProps): React.JSX.Element {\n const hidden = label ? <Box component=\"span\" sx={SR_ONLY_SX}>{label}</Box> : null;\n\n if (status === 'locked') {\n return (\n <Box\n component=\"span\"\n data-testid={testId}\n data-status={status}\n sx={{ display: 'inline-flex', alignItems: 'center', color: 'text.disabled' }}\n >\n <LockOutlinedIcon sx={{ fontSize: sxRem(16) }} />\n {hidden}\n </Box>\n );\n }\n\n return (\n <Box\n component=\"span\"\n data-testid={testId}\n data-status={status}\n sx={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Box\n component=\"span\"\n sx={{\n width: 8,\n height: 8,\n borderRadius: '50%',\n flex: '0 0 auto',\n bgcolor: STATUS_COLOR[status],\n }}\n />\n {hidden}\n </Box>\n );\n}\n\nSettingsStatusMarker.displayName = 'SettingsStatusMarker';\n"],"mappings":";;;;;;;;;AAEA,OAAO,sBAAsB;AAC7B,OAAO,SAAS;AAkCS,cAInB,YAJmB;AALlB,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AACF,GAAiD;AAC/C,QAAM,SAAS,QAAQ,oBAAC,OAAI,WAAU,QAAO,IAAI,YAAa,iBAAM,IAAS;AAE7E,MAAI,WAAW,UAAU;AACvB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAa;AAAA,QACb,eAAa;AAAA,QACb,IAAI,EAAE,SAAS,eAAe,YAAY,UAAU,OAAO,gBAAgB;AAAA,QAE3E;AAAA,8BAAC,oBAAiB,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA,UAC9C;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,eAAa;AAAA,MACb,eAAa;AAAA,MACb,IAAI,EAAE,SAAS,eAAe,YAAY,SAAS;AAAA,MAEnD;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,IAAI;AAAA,cACF,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,cAAc;AAAA,cACd,MAAM;AAAA,cACN,SAAS,aAAa,MAAM;AAAA,YAC9B;AAAA;AAAA,QACF;AAAA,QACC;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,qBAAqB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/components/layout/SettingsLayout/SettingsStatusMarker.tsx"],"sourcesContent":["'use client';\n\nimport LockOutlinedIcon from '@mui/icons-material/LockOutlined';\nimport Box from '@mui/material/Box/index.js';\nimport React from 'react';\n\nimport { SR_ONLY_SX, STATUS_COLOR } from './SettingsLayout.styles';\nimport type { SettingsNavStatus } from './SettingsLayout.types';\nimport { sxRem } from '../../../tokens/relative';\n\nexport interface SettingsStatusMarkerProps {\n /** Which situation to draw. */\n status: SettingsNavStatus;\n /** What it means, in the host's language — the only carrier a screen reader gets. */\n label?: string;\n /** `data-testid` for the marker element. */\n testId?: string;\n}\n\n/**\n * The situation marker beside a settings entry: a coloured dot, or a padlock\n * when the plan does not include the section.\n *\n * The label is rendered as visually-hidden text INSIDE the marker rather than as\n * an `aria-label` on it, so it lands in the accessible name of the row that\n * contains it. A row reading \"Endereço, ligado\" is one utterance; a decorative\n * dot with a title attribute beside it is two, and the second one is skipped.\n *\n * Colour alone never says which of the three states this is — that is the whole\n * reason `label` exists, and why a marker without one is a marker with no\n * meaning attached.\n */\nexport function SettingsStatusMarker({\n status,\n label,\n testId,\n}: SettingsStatusMarkerProps): React.JSX.Element {\n const hidden = label ? <Box component=\"span\" sx={SR_ONLY_SX}>{label}</Box> : null;\n\n if (status === 'locked') {\n return (\n <Box\n component=\"span\"\n data-testid={testId}\n data-status={status}\n sx={{ display: 'inline-flex', alignItems: 'center', color: 'text.disabled' }}\n >\n <LockOutlinedIcon sx={{ fontSize: sxRem(16) }} />\n {hidden}\n </Box>\n );\n }\n\n return (\n <Box\n component=\"span\"\n data-testid={testId}\n data-status={status}\n sx={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Box\n component=\"span\"\n sx={{\n width: sxRem(8),\n height: sxRem(8),\n borderRadius: '50%',\n flex: '0 0 auto',\n bgcolor: STATUS_COLOR[status],\n }}\n />\n {hidden}\n </Box>\n );\n}\n\nSettingsStatusMarker.displayName = 'SettingsStatusMarker';\n"],"mappings":";;;;;;;;;AAEA,OAAO,sBAAsB;AAC7B,OAAO,SAAS;AAkCS,cAInB,YAJmB;AALlB,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AACF,GAAiD;AAC/C,QAAM,SAAS,QAAQ,oBAAC,OAAI,WAAU,QAAO,IAAI,YAAa,iBAAM,IAAS;AAE7E,MAAI,WAAW,UAAU;AACvB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAa;AAAA,QACb,eAAa;AAAA,QACb,IAAI,EAAE,SAAS,eAAe,YAAY,UAAU,OAAO,gBAAgB;AAAA,QAE3E;AAAA,8BAAC,oBAAiB,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA,UAC9C;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,eAAa;AAAA,MACb,eAAa;AAAA,MACb,IAAI,EAAE,SAAS,eAAe,YAAY,SAAS;AAAA,MAEnD;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,IAAI;AAAA,cACF,OAAO,MAAM,CAAC;AAAA,cACd,QAAQ,MAAM,CAAC;AAAA,cACf,cAAc;AAAA,cACd,MAAM;AAAA,cACN,SAAS,aAAa,MAAM;AAAA,YAC9B;AAAA;AAAA,QACF;AAAA,QACC;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,qBAAqB,cAAc;","names":[]}
@@ -4,13 +4,13 @@ import {
4
4
  } from "./chunk-X4F32GUB.js";
5
5
  import {
6
6
  PillControl
7
- } from "./chunk-CS3KOKL3.js";
7
+ } from "./chunk-4GWHYLEB.js";
8
8
  import {
9
9
  MoreFilters
10
- } from "./chunk-AYLEZM6T.js";
10
+ } from "./chunk-GLFTIGOF.js";
11
11
  import {
12
12
  RangePill
13
- } from "./chunk-AJ5SDHX5.js";
13
+ } from "./chunk-JCL7WK4G.js";
14
14
  import {
15
15
  CollapsedSearch,
16
16
  InlineKeyword
@@ -220,4 +220,4 @@ function FilterSlots({
220
220
  export {
221
221
  InlineFilterControls
222
222
  };
223
- //# sourceMappingURL=chunk-HU7TX7RB.js.map
223
+ //# sourceMappingURL=chunk-DUBTI4DI.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4GGH6ZQ7.js";
4
4
  import {
5
5
  Box
6
- } from "./chunk-GUW5BUK7.js";
6
+ } from "./chunk-6WBKOM5K.js";
7
7
 
8
8
  // src/components/layout/Stack/Stack.tsx
9
9
  import * as React from "react";
@@ -16,4 +16,4 @@ Stack.displayName = "Stack";
16
16
  export {
17
17
  Stack
18
18
  };
19
- //# sourceMappingURL=chunk-RMCNEKBZ.js.map
19
+ //# sourceMappingURL=chunk-DW6F7354.js.map
@@ -14,6 +14,10 @@ import {
14
14
  shadowInk,
15
15
  sheen
16
16
  } from "./chunk-FQ6UW7IY.js";
17
+ import {
18
+ rem,
19
+ rems
20
+ } from "./chunk-YKCAJ2TN.js";
17
21
 
18
22
  // src/components/layout/Skeleton/Skeleton.styles.ts
19
23
  import { alpha } from "@mui/material/styles/index.js";
@@ -42,9 +46,9 @@ var glassmorphismStyles = (theme) => ({
42
46
  background: `linear-gradient(135deg,
43
47
  ${alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_FROM)} 0%,
44
48
  ${alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_TO)} 100%)`,
45
- backdropFilter: `blur(${GLASS_BLUR_PX}px)`,
49
+ backdropFilter: `blur(${rem(theme, GLASS_BLUR_PX)})`,
46
50
  border: `1px solid ${alpha(theme.palette.divider, GLASS_BORDER_ALPHA)}`,
47
- boxShadow: `0 ${GLASS_SHADOW.offsetY}px ${GLASS_SHADOW.blur}px 0 ${shadowInk(theme, GLASS_SHADOW.alpha)}`
51
+ boxShadow: `${rems(theme, 0, GLASS_SHADOW.offsetY, GLASS_SHADOW.blur, 0)} ${shadowInk(theme, GLASS_SHADOW.alpha)}`
48
52
  });
49
53
  var shimmerStyles = (theme) => ({
50
54
  "&::after": {
@@ -69,7 +73,8 @@ var shimmerStyles = (theme) => ({
69
73
  }
70
74
  }
71
75
  });
72
- var skeletonStyles = (theme, { intensity, borderRadius, glassmorphism, shimmer, style }) => ({
76
+ var skeletonLength = (theme, value) => typeof value === "number" ? rem(theme, value) : value;
77
+ var skeletonSx = (theme, { intensity, borderRadius, glassmorphism, shimmer, style }) => ({
73
78
  borderRadius,
74
79
  backgroundColor: alpha(
75
80
  theme.palette.mode === "dark" ? modeInk(theme) : theme.palette.text.primary,
@@ -88,6 +93,7 @@ export {
88
93
  muiVariantFor,
89
94
  muiAnimationFor,
90
95
  defaultDimensions,
91
- skeletonStyles
96
+ skeletonLength,
97
+ skeletonSx
92
98
  };
93
- //# sourceMappingURL=chunk-Q4BQYYPU.js.map
99
+ //# sourceMappingURL=chunk-E2QIKJX2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/layout/Skeleton/Skeleton.styles.ts"],"sourcesContent":["import { alpha } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport type { SkeletonProps } from './Skeleton.types';\nimport {\n GLASS_BACKGROUND_ALPHA_FROM,\n GLASS_BACKGROUND_ALPHA_TO,\n GLASS_BLUR_PX,\n GLASS_BORDER_ALPHA,\n GLASS_SHADOW,\n SHIMMER_ALPHA,\n SHIMMER_DURATION_MS,\n SKELETON_DEFAULT_DIMENSIONS,\n SKELETON_INTENSITY_OPACITY,\n} from './Skeleton.metrics';\nimport { modeInk, shadowInk, sheen } from '../../../tokens/ink';\nimport { rem, rems } from '../../../tokens/relative';\n\ntype SkeletonVariant = NonNullable<SkeletonProps['variant']>;\ntype SkeletonIntensity = NonNullable<SkeletonProps['intensity']>;\n\n/** `wave` is our own name for a rectangle that animates; MUI has no such variant. */\nexport const muiVariantFor = (\n variant: SkeletonVariant,\n): 'circular' | 'rectangular' | 'text' => {\n switch (variant) {\n case 'circular':\n return 'circular';\n case 'rectangular':\n case 'wave':\n return 'rectangular';\n default:\n return 'text';\n }\n};\n\nexport const muiAnimationFor = (\n variant: SkeletonVariant,\n animation: SkeletonProps['animation'],\n) => {\n if (variant === 'wave') return 'wave';\n return animation;\n};\n\n// Derived from the shared metrics, not restated: the native `Skeleton` reads\n// the same table, so the two renderers cannot disagree on a default box.\nexport const defaultDimensions = (\n variant: SkeletonVariant,\n): { width: number | string; height: number | undefined } =>\n // The `default:` arm the old switch had: an unrecognised variant used to fall\n // back rather than hand `undefined` to a caller that then reads `.width`.\n SKELETON_DEFAULT_DIMENSIONS[variant] ?? SKELETON_DEFAULT_DIMENSIONS.rectangular;\n\nconst intensityOpacity = (intensity: SkeletonIntensity): number =>\n SKELETON_INTENSITY_OPACITY[intensity] ?? SKELETON_INTENSITY_OPACITY.medium;\n\nconst glassmorphismStyles = (theme: Theme): CSSObject => ({\n background: `linear-gradient(135deg,\n ${alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_FROM)} 0%,\n ${alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_TO)} 100%)`,\n backdropFilter: `blur(${rem(theme, GLASS_BLUR_PX)})`,\n border: `1px solid ${alpha(theme.palette.divider, GLASS_BORDER_ALPHA)}`,\n boxShadow: `${rems(theme, 0, GLASS_SHADOW.offsetY, GLASS_SHADOW.blur, 0)} ${shadowInk(theme, GLASS_SHADOW.alpha)}`,\n});\n\n// The sweep is a pseudo-element sliding across the box, so the box has to clip it\n// and establish a positioning context — hence `position`/`overflow` below.\nconst shimmerStyles = (theme: Theme): CSSObject => ({\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n background: `linear-gradient(\n 90deg,\n transparent,\n ${sheen(theme, SHIMMER_ALPHA)},\n transparent\n )`,\n transform: 'translateX(-100%)',\n animation: `shimmer ${SHIMMER_DURATION_MS / 1000}s infinite`,\n },\n '@keyframes shimmer': {\n '100%': {\n transform: 'translateX(100%)',\n },\n },\n});\n\ninterface SkeletonStyleArgs {\n intensity: SkeletonIntensity;\n borderRadius?: number | string;\n glassmorphism: boolean;\n shimmer: boolean;\n style?: React.CSSProperties;\n}\n\n/**\n * A `width`/`height` for MUI's `Skeleton`, which writes it into an inline\n * `style`: a number there is px, so it is design px through the type scale.\n * The caller keeps a `0` as `0` (see `Skeleton.tsx`).\n */\nexport const skeletonLength = (theme: Theme, value: number | string | undefined): string | undefined =>\n typeof value === 'number' ? rem(theme, value) : value;\n\n/** The skeleton's `sx` — so a number on `borderRadius` is a multiple of `shape.borderRadius`. */\nexport const skeletonSx = (\n theme: Theme,\n { intensity, borderRadius, glassmorphism, shimmer, style }: SkeletonStyleArgs,\n): CSSObject => ({\n borderRadius,\n backgroundColor: alpha(\n theme.palette.mode === 'dark' ? modeInk(theme) : theme.palette.text.primary,\n intensityOpacity(intensity),\n ),\n ...(shimmer && {\n position: 'relative' as const,\n overflow: 'hidden' as const,\n }),\n ...(glassmorphism ? glassmorphismStyles(theme) : {}),\n ...(shimmer ? shimmerStyles(theme) : {}),\n ...style,\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AAsBf,IAAM,gBAAgB,CAC3B,YACwC;AACxC,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEO,IAAM,kBAAkB,CAC7B,SACA,cACG;AACH,MAAI,YAAY,OAAQ,QAAO;AAC/B,SAAO;AACT;AAIO,IAAM,oBAAoB,CAC/B;AAAA;AAAA;AAAA,EAIA,4BAA4B,OAAO,KAAK,4BAA4B;AAAA;AAEtE,IAAM,mBAAmB,CAAC,cACxB,2BAA2B,SAAS,KAAK,2BAA2B;AAEtE,IAAM,sBAAsB,CAAC,WAA6B;AAAA,EACxD,YAAY;AAAA,UACJ,MAAM,MAAM,QAAQ,WAAW,OAAO,2BAA2B,CAAC;AAAA,UAClE,MAAM,MAAM,QAAQ,WAAW,OAAO,yBAAyB,CAAC;AAAA,EACxE,gBAAgB,QAAQ,IAAI,OAAO,aAAa,CAAC;AAAA,EACjD,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,kBAAkB,CAAC;AAAA,EACrE,WAAW,GAAG,KAAK,OAAO,GAAG,aAAa,SAAS,aAAa,MAAM,CAAC,CAAC,IAAI,UAAU,OAAO,aAAa,KAAK,CAAC;AAClH;AAIA,IAAM,gBAAgB,CAAC,WAA6B;AAAA,EAClD,YAAY;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,YAAY;AAAA;AAAA;AAAA,YAGJ,MAAM,OAAO,aAAa,CAAC;AAAA;AAAA;AAAA,IAGnC,WAAW;AAAA,IACX,WAAW,WAAW,sBAAsB,GAAI;AAAA,EAClD;AAAA,EACA,sBAAsB;AAAA,IACpB,QAAQ;AAAA,MACN,WAAW;AAAA,IACb;AAAA,EACF;AACF;AAeO,IAAM,iBAAiB,CAAC,OAAc,UAC3C,OAAO,UAAU,WAAW,IAAI,OAAO,KAAK,IAAI;AAG3C,IAAM,aAAa,CACxB,OACA,EAAE,WAAW,cAAc,eAAe,SAAS,MAAM,OAC1C;AAAA,EACf;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM,QAAQ,SAAS,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ,KAAK;AAAA,IACpE,iBAAiB,SAAS;AAAA,EAC5B;AAAA,EACA,GAAI,WAAW;AAAA,IACb,UAAU;AAAA,IACV,UAAU;AAAA,EACZ;AAAA,EACA,GAAI,gBAAgB,oBAAoB,KAAK,IAAI,CAAC;AAAA,EAClD,GAAI,UAAU,cAAc,KAAK,IAAI,CAAC;AAAA,EACtC,GAAG;AACL;","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4XK6JQ4D.js";
4
4
  import {
5
5
  Toast
6
- } from "./chunk-JXUWWPZR.js";
6
+ } from "./chunk-VQYR64QB.js";
7
7
 
8
8
  // src/components/form/total-form/FormErrorSnackbar.tsx
9
9
  import { jsx } from "react/jsx-runtime";
@@ -27,4 +27,4 @@ function FormErrorSnackbar({
27
27
  export {
28
28
  FormErrorSnackbar
29
29
  };
30
- //# sourceMappingURL=chunk-XJUEHG72.js.map
30
+ //# sourceMappingURL=chunk-EERUSI52.js.map
@@ -194,7 +194,7 @@ function MultiSelectMenu({
194
194
  slotProps: {
195
195
  // Cap the height so a long list (e.g. many categories) scrolls instead
196
196
  // of running off-screen; the sticky search box stays pinned on top.
197
- paper: { sx: { minWidth: anchorWidth ?? 180, width: anchorWidth, maxHeight: 360 } },
197
+ paper: { sx: { minWidth: anchorWidth ?? sxRem(180), width: anchorWidth, maxHeight: sxRem(360) } },
198
198
  list: { sx: { pt: showSearch ? 0 : void 0, pb: 0 } }
199
199
  },
200
200
  children: [
@@ -275,4 +275,4 @@ function MenuClearFooter({
275
275
  export {
276
276
  MultiSelectDropdown
277
277
  };
278
- //# sourceMappingURL=chunk-NPP44TQG.js.map
278
+ //# sourceMappingURL=chunk-EYZ6QBTV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/layout/ContentToolbar/MultiSelectDropdown.tsx"],"sourcesContent":["'use client';\n\nimport SearchIcon from '@mui/icons-material/Search';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Checkbox from '@mui/material/Checkbox/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport InputAdornment from '@mui/material/InputAdornment/index.js';\nimport ListSubheader from '@mui/material/ListSubheader/index.js';\nimport Menu from '@mui/material/Menu/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport TextField from '@mui/material/TextField/index.js';\nimport React, { useMemo, useState } from 'react';\n\nimport type {\n MultiSelectDropdownProps,\n MultiSelectExtraOption,\n MultiSelectOption,\n} from './ContentToolbar.types';\nimport { buildTriggerLabel, InlineTrigger, PillTrigger, StackedTrigger } from './MultiSelectTriggers';\nimport { fieldTextFieldStyles } from '../../../tokens/field-height';\nimport { sxRem } from '../../../tokens/relative';\n\n/** One checkbox menu row with an optional trailing count. */\nfunction CheckboxRow({\n label,\n count,\n checked,\n onToggle,\n}: {\n label: string;\n count?: number;\n checked: boolean;\n onToggle: (next: boolean) => void;\n}): React.JSX.Element {\n return (\n <MenuItem onClick={() => onToggle(!checked)} sx={{ gap: 1 }}>\n <Checkbox checked={checked} size=\"small\" disableRipple sx={{ p: 0, pointerEvents: 'none' }} tabIndex={-1} />\n <Box component=\"span\" sx={{ flex: 1, minWidth: 0, textAlign: 'left' }}>\n {label}\n {count != null && (\n <Box component=\"span\" sx={{ color: 'text.secondary' }}>\n {' '}\n ({count})\n </Box>\n )}\n </Box>\n </MenuItem>\n );\n}\n\n/**\n * Generic multi-select dropdown with checkboxes, counts, an optional \"Options\"\n * section, and a \"Clear\" action. Faithful MUI port of the reference toolbar's\n * \"Content Type\" control. The menu stays open while toggling options.\n */\nexport function MultiSelectDropdown<TValue extends string = string>({\n label,\n options,\n selected,\n onToggle,\n onClear,\n allLabel = 'All',\n clearLabel,\n clearText,\n extraOptionsHeading,\n extraOptions,\n searchable,\n searchPlaceholder = 'Search…',\n noResultsLabel = 'No results',\n layout = 'inline',\n 'data-testid': testId,\n onOpenChange,\n}: MultiSelectDropdownProps<TValue>): React.JSX.Element {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [query, setQuery] = useState('');\n const open = Boolean(anchorEl);\n const stacked = layout === 'stacked';\n // Reset the query each time the menu closes so it reopens showing everything.\n const close = (): void => {\n setAnchorEl(null);\n setQuery('');\n onOpenChange?.(false);\n };\n const triggerLabel = buildTriggerLabel(selected, options, allLabel);\n // Auto-enable search for long lists (e.g. many categories) unless overridden.\n const showSearch = searchable ?? options.length > 8;\n const anyExtraChecked = extraOptions?.some((option) => option.checked) ?? false;\n const clearDisabled = selected.size === 0 && !anyExtraChecked;\n\n const openMenu = (event: React.MouseEvent<HTMLElement>): void => {\n setAnchorEl(event.currentTarget);\n onOpenChange?.(true);\n };\n const triggerProps = { triggerLabel, open, onOpen: openMenu, testId };\n\n const renderTrigger = (): React.JSX.Element => {\n if (stacked) return <StackedTrigger label={label} {...triggerProps} />;\n if (layout === 'pill')\n return (\n <PillTrigger\n clearLabel={clearLabel}\n label={label}\n selectedCount={selected.size}\n onClear={onClear}\n {...triggerProps}\n />\n );\n return <InlineTrigger label={label} {...triggerProps} />;\n };\n\n return (\n <>\n {renderTrigger()}\n <MultiSelectMenu\n extraOptionsHeading={extraOptionsHeading} clearText={clearText} anchorEl={anchorEl}\n open={open}\n close={close}\n options={options}\n selected={selected}\n onToggle={onToggle}\n extraOptions={extraOptions}\n clearDisabled={clearDisabled}\n onClear={onClear}\n showSearch={showSearch}\n query={query}\n onQueryChange={setQuery}\n searchPlaceholder={searchPlaceholder}\n noResultsLabel={noResultsLabel}\n matchAnchorWidth={stacked}\n testId={testId}\n />\n </>\n );\n}\n\n/** Sticky search box at the top of the menu; keydowns don't reach the Menu's typeahead. */\nfunction MenuSearchField({\n query,\n onQueryChange,\n placeholder,\n testId,\n}: {\n query: string;\n onQueryChange: (value: string) => void;\n placeholder: string;\n testId?: string;\n}): React.JSX.Element {\n return (\n <Box\n sx={{ position: 'sticky', top: 0, zIndex: 1, bgcolor: 'background.paper', px: 1, py: 0.75 }}\n onKeyDown={(event) => event.stopPropagation()}\n >\n <TextField\n autoFocus\n size=\"small\"\n sx={fieldTextFieldStyles}\n fullWidth\n value={query}\n onChange={(event) => onQueryChange(event.target.value)}\n placeholder={placeholder}\n inputProps={{ 'aria-label': placeholder, 'data-testid': testId ? `${testId}-search` : undefined }}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ fontSize: sxRem(16) }} />\n </InputAdornment>\n ),\n }}\n />\n </Box>\n );\n}\n\ninterface MultiSelectMenuProps<TValue extends string> {\n anchorEl: HTMLElement | null;\n open: boolean;\n close: () => void;\n options: MultiSelectOption<TValue>[];\n selected: ReadonlySet<TValue>;\n onToggle: (value: TValue, checked: boolean) => void;\n extraOptions?: MultiSelectExtraOption[];\n clearDisabled: boolean;\n onClear: () => void;\n showSearch: boolean;\n query: string;\n onQueryChange: (value: string) => void;\n searchPlaceholder: string;\n noResultsLabel: string;\n extraOptionsHeading: string;\n clearText: string;\n /** Match the menu width to the trigger and left-align it (stacked select). */\n matchAnchorWidth?: boolean;\n testId?: string;\n}\n\n/**\n * Menu placement. Default: anchored to the trigger's right (toolbar). When\n * `matchAnchorWidth` (stacked select), match the trigger width and left-align so\n * the menu sits flush under the full-width control.\n */\nfunction resolveMenuPlacement(\n matchAnchorWidth: boolean | undefined,\n anchorEl: HTMLElement | null,\n): { anchorWidth: number | undefined; align: 'left' | 'right' } {\n if (!matchAnchorWidth) return { anchorWidth: undefined, align: 'right' };\n return { anchorWidth: anchorEl?.offsetWidth, align: 'left' };\n}\n\n/** The (optional) search box + checkbox list + optional \"Options\" section + a \"Clear\" footer. */\nfunction MultiSelectMenu<TValue extends string>({\n anchorEl,\n open,\n close,\n options,\n selected,\n onToggle,\n extraOptions,\n extraOptionsHeading,\n clearText,\n clearDisabled,\n onClear,\n showSearch,\n query,\n onQueryChange,\n searchPlaceholder,\n noResultsLabel,\n matchAnchorWidth,\n testId,\n}: MultiSelectMenuProps<TValue>): React.JSX.Element {\n const trimmed = query.trim().toLowerCase();\n const visibleOptions = useMemo(\n () => (trimmed ? options.filter((option) => option.label.toLowerCase().includes(trimmed)) : options),\n [options, trimmed],\n );\n const { anchorWidth, align } = resolveMenuPlacement(matchAnchorWidth, anchorEl);\n return (\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={close}\n anchorOrigin={{ vertical: 'bottom', horizontal: align }}\n transformOrigin={{ vertical: 'top', horizontal: align }}\n // Keep focus on the search box (don't let the Menu grab the first item),\n // and stop MUI's typeahead from swallowing keystrokes meant for the input.\n autoFocus={!showSearch}\n disableAutoFocusItem\n slotProps={{\n // Cap the height so a long list (e.g. many categories) scrolls instead\n // of running off-screen; the sticky search box stays pinned on top.\n paper: { sx: { minWidth: anchorWidth ?? 180, width: anchorWidth, maxHeight: 360 } },\n list: { sx: { pt: showSearch ? 0 : undefined, pb: 0 } },\n }}\n >\n {showSearch && (\n <MenuSearchField query={query} onQueryChange={onQueryChange} placeholder={searchPlaceholder} testId={testId} />\n )}\n {visibleOptions.length === 0 && showSearch ? (\n <MenuItem disabled data-testid={testId ? `${testId}-no-results` : undefined} sx={{ fontSize: sxRem(13) }}>\n {noResultsLabel}\n </MenuItem>\n ) : (\n visibleOptions.map((option) => (\n <CheckboxRow\n key={option.value}\n label={option.label}\n count={option.count}\n checked={selected.has(option.value)}\n onToggle={(next) => onToggle(option.value, next)}\n />\n ))\n )}\n {extraOptions && extraOptions.length > 0\n ? [\n <Divider key=\"extra-divider\" />,\n <ListSubheader key=\"extra-label\" sx={{ px: 1, py: 0.75, fontSize: sxRem(12), fontWeight: 600 }}>\n {extraOptionsHeading}\n </ListSubheader>,\n ...extraOptions.map((extra) => (\n <CheckboxRow key={extra.id} label={extra.label} checked={extra.checked} onToggle={(next) => extra.onCheckedChange(next)} />\n )),\n ]\n : null}\n <MenuClearFooter\n clearText={clearText} clearDisabled={clearDisabled} onClear={onClear}\n close={close} testId={testId}\n />\n </Menu>\n );\n}\n\n/** The bottom \"Clear\" footer that resets the selection and closes the menu. */\nfunction MenuClearFooter({\n clearText,\n clearDisabled,\n onClear,\n close,\n testId,\n}: {\n clearText: string;\n clearDisabled: boolean;\n onClear: () => void;\n close: () => void;\n testId?: string;\n}): React.JSX.Element {\n return (\n <Box\n sx={{\n // Pin to the bottom of the scroll viewport so it stays visible while the\n // options list scrolls (mirrors the sticky search box on top).\n position: 'sticky',\n bottom: 0,\n zIndex: 1,\n display: 'flex',\n justifyContent: 'flex-end',\n borderTop: 1,\n borderColor: 'divider',\n bgcolor: 'background.paper',\n px: 1,\n py: 0.75,\n }}\n >\n <Button\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n data-testid={testId ? `${testId}-clear` : undefined}\n disabled={clearDisabled}\n onClick={() => {\n onClear();\n close();\n }}\n sx={{ minWidth: 0, px: 1, py: 0.25, fontSize: sxRem(12), fontWeight: 400, textTransform: 'none', color: 'text.secondary' }}\n >\n {clearText}\n </Button>\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/components/layout/ContentToolbar/MultiSelectDropdown.tsx"],"sourcesContent":["'use client';\n\nimport SearchIcon from '@mui/icons-material/Search';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Checkbox from '@mui/material/Checkbox/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport InputAdornment from '@mui/material/InputAdornment/index.js';\nimport ListSubheader from '@mui/material/ListSubheader/index.js';\nimport Menu from '@mui/material/Menu/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport TextField from '@mui/material/TextField/index.js';\nimport React, { useMemo, useState } from 'react';\n\nimport type {\n MultiSelectDropdownProps,\n MultiSelectExtraOption,\n MultiSelectOption,\n} from './ContentToolbar.types';\nimport { buildTriggerLabel, InlineTrigger, PillTrigger, StackedTrigger } from './MultiSelectTriggers';\nimport { fieldTextFieldStyles } from '../../../tokens/field-height';\nimport { sxRem } from '../../../tokens/relative';\n\n/** One checkbox menu row with an optional trailing count. */\nfunction CheckboxRow({\n label,\n count,\n checked,\n onToggle,\n}: {\n label: string;\n count?: number;\n checked: boolean;\n onToggle: (next: boolean) => void;\n}): React.JSX.Element {\n return (\n <MenuItem onClick={() => onToggle(!checked)} sx={{ gap: 1 }}>\n <Checkbox checked={checked} size=\"small\" disableRipple sx={{ p: 0, pointerEvents: 'none' }} tabIndex={-1} />\n <Box component=\"span\" sx={{ flex: 1, minWidth: 0, textAlign: 'left' }}>\n {label}\n {count != null && (\n <Box component=\"span\" sx={{ color: 'text.secondary' }}>\n {' '}\n ({count})\n </Box>\n )}\n </Box>\n </MenuItem>\n );\n}\n\n/**\n * Generic multi-select dropdown with checkboxes, counts, an optional \"Options\"\n * section, and a \"Clear\" action. Faithful MUI port of the reference toolbar's\n * \"Content Type\" control. The menu stays open while toggling options.\n */\nexport function MultiSelectDropdown<TValue extends string = string>({\n label,\n options,\n selected,\n onToggle,\n onClear,\n allLabel = 'All',\n clearLabel,\n clearText,\n extraOptionsHeading,\n extraOptions,\n searchable,\n searchPlaceholder = 'Search…',\n noResultsLabel = 'No results',\n layout = 'inline',\n 'data-testid': testId,\n onOpenChange,\n}: MultiSelectDropdownProps<TValue>): React.JSX.Element {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [query, setQuery] = useState('');\n const open = Boolean(anchorEl);\n const stacked = layout === 'stacked';\n // Reset the query each time the menu closes so it reopens showing everything.\n const close = (): void => {\n setAnchorEl(null);\n setQuery('');\n onOpenChange?.(false);\n };\n const triggerLabel = buildTriggerLabel(selected, options, allLabel);\n // Auto-enable search for long lists (e.g. many categories) unless overridden.\n const showSearch = searchable ?? options.length > 8;\n const anyExtraChecked = extraOptions?.some((option) => option.checked) ?? false;\n const clearDisabled = selected.size === 0 && !anyExtraChecked;\n\n const openMenu = (event: React.MouseEvent<HTMLElement>): void => {\n setAnchorEl(event.currentTarget);\n onOpenChange?.(true);\n };\n const triggerProps = { triggerLabel, open, onOpen: openMenu, testId };\n\n const renderTrigger = (): React.JSX.Element => {\n if (stacked) return <StackedTrigger label={label} {...triggerProps} />;\n if (layout === 'pill')\n return (\n <PillTrigger\n clearLabel={clearLabel}\n label={label}\n selectedCount={selected.size}\n onClear={onClear}\n {...triggerProps}\n />\n );\n return <InlineTrigger label={label} {...triggerProps} />;\n };\n\n return (\n <>\n {renderTrigger()}\n <MultiSelectMenu\n extraOptionsHeading={extraOptionsHeading} clearText={clearText} anchorEl={anchorEl}\n open={open}\n close={close}\n options={options}\n selected={selected}\n onToggle={onToggle}\n extraOptions={extraOptions}\n clearDisabled={clearDisabled}\n onClear={onClear}\n showSearch={showSearch}\n query={query}\n onQueryChange={setQuery}\n searchPlaceholder={searchPlaceholder}\n noResultsLabel={noResultsLabel}\n matchAnchorWidth={stacked}\n testId={testId}\n />\n </>\n );\n}\n\n/** Sticky search box at the top of the menu; keydowns don't reach the Menu's typeahead. */\nfunction MenuSearchField({\n query,\n onQueryChange,\n placeholder,\n testId,\n}: {\n query: string;\n onQueryChange: (value: string) => void;\n placeholder: string;\n testId?: string;\n}): React.JSX.Element {\n return (\n <Box\n sx={{ position: 'sticky', top: 0, zIndex: 1, bgcolor: 'background.paper', px: 1, py: 0.75 }}\n onKeyDown={(event) => event.stopPropagation()}\n >\n <TextField\n autoFocus\n size=\"small\"\n sx={fieldTextFieldStyles}\n fullWidth\n value={query}\n onChange={(event) => onQueryChange(event.target.value)}\n placeholder={placeholder}\n inputProps={{ 'aria-label': placeholder, 'data-testid': testId ? `${testId}-search` : undefined }}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ fontSize: sxRem(16) }} />\n </InputAdornment>\n ),\n }}\n />\n </Box>\n );\n}\n\ninterface MultiSelectMenuProps<TValue extends string> {\n anchorEl: HTMLElement | null;\n open: boolean;\n close: () => void;\n options: MultiSelectOption<TValue>[];\n selected: ReadonlySet<TValue>;\n onToggle: (value: TValue, checked: boolean) => void;\n extraOptions?: MultiSelectExtraOption[];\n clearDisabled: boolean;\n onClear: () => void;\n showSearch: boolean;\n query: string;\n onQueryChange: (value: string) => void;\n searchPlaceholder: string;\n noResultsLabel: string;\n extraOptionsHeading: string;\n clearText: string;\n /** Match the menu width to the trigger and left-align it (stacked select). */\n matchAnchorWidth?: boolean;\n testId?: string;\n}\n\n/**\n * Menu placement. Default: anchored to the trigger's right (toolbar). When\n * `matchAnchorWidth` (stacked select), match the trigger width and left-align so\n * the menu sits flush under the full-width control.\n */\nfunction resolveMenuPlacement(\n matchAnchorWidth: boolean | undefined,\n anchorEl: HTMLElement | null,\n): { anchorWidth: number | undefined; align: 'left' | 'right' } {\n if (!matchAnchorWidth) return { anchorWidth: undefined, align: 'right' };\n return { anchorWidth: anchorEl?.offsetWidth, align: 'left' };\n}\n\n/** The (optional) search box + checkbox list + optional \"Options\" section + a \"Clear\" footer. */\nfunction MultiSelectMenu<TValue extends string>({\n anchorEl,\n open,\n close,\n options,\n selected,\n onToggle,\n extraOptions,\n extraOptionsHeading,\n clearText,\n clearDisabled,\n onClear,\n showSearch,\n query,\n onQueryChange,\n searchPlaceholder,\n noResultsLabel,\n matchAnchorWidth,\n testId,\n}: MultiSelectMenuProps<TValue>): React.JSX.Element {\n const trimmed = query.trim().toLowerCase();\n const visibleOptions = useMemo(\n () => (trimmed ? options.filter((option) => option.label.toLowerCase().includes(trimmed)) : options),\n [options, trimmed],\n );\n const { anchorWidth, align } = resolveMenuPlacement(matchAnchorWidth, anchorEl);\n return (\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={close}\n anchorOrigin={{ vertical: 'bottom', horizontal: align }}\n transformOrigin={{ vertical: 'top', horizontal: align }}\n // Keep focus on the search box (don't let the Menu grab the first item),\n // and stop MUI's typeahead from swallowing keystrokes meant for the input.\n autoFocus={!showSearch}\n disableAutoFocusItem\n slotProps={{\n // Cap the height so a long list (e.g. many categories) scrolls instead\n // of running off-screen; the sticky search box stays pinned on top.\n paper: { sx: { minWidth: anchorWidth ?? sxRem(180), width: anchorWidth, maxHeight: sxRem(360) } },\n list: { sx: { pt: showSearch ? 0 : undefined, pb: 0 } },\n }}\n >\n {showSearch && (\n <MenuSearchField query={query} onQueryChange={onQueryChange} placeholder={searchPlaceholder} testId={testId} />\n )}\n {visibleOptions.length === 0 && showSearch ? (\n <MenuItem disabled data-testid={testId ? `${testId}-no-results` : undefined} sx={{ fontSize: sxRem(13) }}>\n {noResultsLabel}\n </MenuItem>\n ) : (\n visibleOptions.map((option) => (\n <CheckboxRow\n key={option.value}\n label={option.label}\n count={option.count}\n checked={selected.has(option.value)}\n onToggle={(next) => onToggle(option.value, next)}\n />\n ))\n )}\n {extraOptions && extraOptions.length > 0\n ? [\n <Divider key=\"extra-divider\" />,\n <ListSubheader key=\"extra-label\" sx={{ px: 1, py: 0.75, fontSize: sxRem(12), fontWeight: 600 }}>\n {extraOptionsHeading}\n </ListSubheader>,\n ...extraOptions.map((extra) => (\n <CheckboxRow key={extra.id} label={extra.label} checked={extra.checked} onToggle={(next) => extra.onCheckedChange(next)} />\n )),\n ]\n : null}\n <MenuClearFooter\n clearText={clearText} clearDisabled={clearDisabled} onClear={onClear}\n close={close} testId={testId}\n />\n </Menu>\n );\n}\n\n/** The bottom \"Clear\" footer that resets the selection and closes the menu. */\nfunction MenuClearFooter({\n clearText,\n clearDisabled,\n onClear,\n close,\n testId,\n}: {\n clearText: string;\n clearDisabled: boolean;\n onClear: () => void;\n close: () => void;\n testId?: string;\n}): React.JSX.Element {\n return (\n <Box\n sx={{\n // Pin to the bottom of the scroll viewport so it stays visible while the\n // options list scrolls (mirrors the sticky search box on top).\n position: 'sticky',\n bottom: 0,\n zIndex: 1,\n display: 'flex',\n justifyContent: 'flex-end',\n borderTop: 1,\n borderColor: 'divider',\n bgcolor: 'background.paper',\n px: 1,\n py: 0.75,\n }}\n >\n <Button\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n data-testid={testId ? `${testId}-clear` : undefined}\n disabled={clearDisabled}\n onClick={() => {\n onClear();\n close();\n }}\n sx={{ minWidth: 0, px: 1, py: 0.25, fontSize: sxRem(12), fontWeight: 400, textTransform: 'none', color: 'text.secondary' }}\n >\n {clearText}\n </Button>\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  STACK_BREAK
3
- } from "./chunk-2ZIHZLF5.js";
3
+ } from "./chunk-M2JTIH5M.js";
4
4
  import {
5
5
  CARD_RADIUS,
6
6
  cardSurfaceStyles,
@@ -189,4 +189,4 @@ export {
189
189
  actionProps,
190
190
  rowStyles
191
191
  };
192
- //# sourceMappingURL=chunk-C55AWF3U.js.map
192
+ //# sourceMappingURL=chunk-FFCJ7NR2.js.map
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  accordionVariantStyles
3
- } from "./chunk-MJ3BVWPZ.js";
3
+ } from "./chunk-43G3WMYN.js";
4
+ import {
5
+ rem
6
+ } from "./chunk-YKCAJ2TN.js";
4
7
 
5
8
  // src/components/layout/Accordion/Accordion.tsx
6
9
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
@@ -58,7 +61,7 @@ var AccordionSummary = ({
58
61
  disabled,
59
62
  "data-testid": testId,
60
63
  sx: {
61
- minHeight: 56,
64
+ minHeight: rem(theme, 56),
62
65
  "& .MuiAccordionSummary-expandIconWrapper": {
63
66
  transition: "transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
64
67
  color: theme.palette.text.secondary
@@ -74,13 +77,13 @@ var AccordionSummary = ({
74
77
  }
75
78
  },
76
79
  "&.Mui-focusVisible": {
77
- outline: `2px solid ${theme.palette.primary.main}`,
78
- outlineOffset: 2
80
+ outline: `${rem(theme, 2)} solid ${theme.palette.primary.main}`,
81
+ outlineOffset: rem(theme, 2)
79
82
  },
80
83
  // Enhanced keyboard navigation styles
81
84
  "&:focus-visible": {
82
- outline: `2px solid ${theme.palette.primary.main}`,
83
- outlineOffset: -2
85
+ outline: `${rem(theme, 2)} solid ${theme.palette.primary.main}`,
86
+ outlineOffset: rem(theme, -2)
84
87
  }
85
88
  },
86
89
  ...props,
@@ -109,7 +112,7 @@ var AccordionDetails = ({
109
112
  "@keyframes fadeInUp": {
110
113
  "0%": {
111
114
  opacity: 0,
112
- transform: "translateY(8px)"
115
+ transform: `translateY(${rem(theme, 8)})`
113
116
  },
114
117
  "100%": {
115
118
  opacity: 1,
@@ -138,12 +141,12 @@ var AccordionActions = ({
138
141
  padding: theme.spacing(1, 2),
139
142
  borderTop: `1px solid ${alpha(theme.palette.divider, 0.08)}`,
140
143
  backgroundColor: alpha(theme.palette.background.paper, 0.5),
141
- backdropFilter: "blur(8px)",
144
+ backdropFilter: `blur(${rem(theme, 8)})`,
142
145
  // Animate button entries
143
146
  "& > *": {
144
147
  transition: "all 0.2s ease-in-out",
145
148
  "&:hover": {
146
- transform: "translateY(-1px)"
149
+ transform: `translateY(${rem(theme, -1)})`
147
150
  }
148
151
  }
149
152
  },
@@ -159,4 +162,4 @@ export {
159
162
  AccordionDetails,
160
163
  AccordionActions
161
164
  };
162
- //# sourceMappingURL=chunk-U342T7ZR.js.map
165
+ //# sourceMappingURL=chunk-FOCU4QT5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/layout/Accordion/Accordion.tsx"],"sourcesContent":["import ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport MuiAccordion from '@mui/material/Accordion/index.js';\nimport MuiAccordionActions from '@mui/material/AccordionActions/index.js';\nimport MuiAccordionDetails from '@mui/material/AccordionDetails/index.js';\nimport MuiAccordionSummary from '@mui/material/AccordionSummary/index.js';\nimport { alpha, useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { rem } from '../../../tokens/relative';\n\nimport { accordionVariantStyles } from './Accordion.styles';\nimport type { \n AccordionActionsProps, \n AccordionDetailsProps, \n AccordionProps, \n AccordionSummaryProps} from './Accordion.types';\n\nexport const Accordion: React.FC<AccordionProps> = ({\n children,\n variant = 'default',\n disabled = false,\n defaultExpanded = false,\n expanded,\n onChange,\n sx,\n 'data-testid': testId = 'accordion',\n ...props\n}) => {\n const theme = useTheme();\n\n return (\n <MuiAccordion\n disabled={disabled}\n defaultExpanded={defaultExpanded}\n expanded={expanded}\n onChange={onChange}\n data-testid={testId}\n sx={{\n ...accordionVariantStyles(theme, variant),\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordion>\n );\n};\n\nexport const AccordionSummary: React.FC<AccordionSummaryProps> = ({\n children,\n expandIcon = <ExpandMoreIcon />,\n disabled = false,\n 'data-testid': testId = 'accordion-summary',\n ...props\n}) => {\n const theme = useTheme();\n\n // Clone expandIcon to add data-testid if it's a valid React element\n const iconWithTestId = React.isValidElement(expandIcon)\n ? React.cloneElement(expandIcon as React.ReactElement<{ 'data-testid'?: string }>, {\n 'data-testid': 'accordion-icon',\n })\n : expandIcon;\n\n return (\n <MuiAccordionSummary\n expandIcon={iconWithTestId}\n disabled={disabled}\n data-testid={testId}\n sx={{\n minHeight: rem(theme, 56),\n '& .MuiAccordionSummary-expandIconWrapper': {\n transition: 'transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n color: theme.palette.text.secondary,\n },\n '& .MuiAccordionSummary-expandIconWrapper.Mui-expanded': {\n transform: 'rotate(180deg)',\n color: theme.palette.primary.main,\n },\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.hover, 0.04),\n '& .MuiAccordionSummary-expandIconWrapper': {\n color: theme.palette.primary.main,\n },\n },\n '&.Mui-focusVisible': {\n outline: `${rem(theme, 2)} solid ${theme.palette.primary.main}`,\n outlineOffset: rem(theme, 2),\n },\n // Enhanced keyboard navigation styles\n '&:focus-visible': {\n outline: `${rem(theme, 2)} solid ${theme.palette.primary.main}`,\n outlineOffset: rem(theme, -2),\n },\n }}\n {...props}\n >\n {children}\n </MuiAccordionSummary>\n );\n};\n\nexport const AccordionDetails: React.FC<AccordionDetailsProps> = ({\n children,\n 'data-testid': testId = 'accordion-details',\n ...props\n}) => {\n const theme = useTheme();\n\n return (\n <MuiAccordionDetails \n data-testid={testId}\n sx={{\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(2),\n borderTop: `1px solid ${alpha(theme.palette.divider, 0.08)}`,\n // Smooth content reveal animation\n '& > *': {\n animation: 'fadeInUp 0.4s ease-out',\n },\n '@keyframes fadeInUp': {\n '0%': {\n opacity: 0,\n transform: `translateY(${rem(theme, 8)})`,\n },\n '100%': {\n opacity: 1,\n transform: 'translateY(0)',\n },\n },\n }}\n {...props}\n >\n {children}\n </MuiAccordionDetails>\n );\n};\n\nexport const AccordionActions: React.FC<AccordionActionsProps> = ({\n children,\n disableSpacing = false,\n 'data-testid': testId = 'accordion-actions',\n ...props\n}) => {\n const theme = useTheme();\n\n return (\n <MuiAccordionActions \n disableSpacing={disableSpacing}\n data-testid={testId}\n sx={{\n padding: theme.spacing(1, 2),\n borderTop: `1px solid ${alpha(theme.palette.divider, 0.08)}`,\n backgroundColor: alpha(theme.palette.background.paper, 0.5),\n backdropFilter: `blur(${rem(theme, 8)})`,\n // Animate button entries\n '& > *': {\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n transform: `translateY(${rem(theme, -1)})`,\n },\n },\n }}\n {...props}\n >\n {children}\n </MuiAccordionActions>\n );\n};"],"mappings":";;;;;;;;AAAA,OAAO,oBAAoB;AAC3B,OAAO,kBAAkB;AACzB,OAAO,yBAAyB;AAChC,OAAO,yBAAyB;AAChC,OAAO,yBAAyB;AAChC,SAAS,OAAO,gBAAgB;AAChC,OAAO,WAAW;AAyBd;AAdG,IAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA,UAAU;AAAA,EACV,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe,SAAS;AAAA,EACxB,GAAG;AACL,MAAM;AACJ,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAa;AAAA,MACb,IAAI;AAAA,QACF,GAAG,uBAAuB,OAAO,OAAO;AAAA,QACxC,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEO,IAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA,aAAa,oBAAC,kBAAe;AAAA,EAC7B,WAAW;AAAA,EACX,eAAe,SAAS;AAAA,EACxB,GAAG;AACL,MAAM;AACJ,QAAM,QAAQ,SAAS;AAGvB,QAAM,iBAAiB,MAAM,eAAe,UAAU,IAClD,MAAM,aAAa,YAA8D;AAAA,IAC/E,eAAe;AAAA,EACjB,CAAC,IACD;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ;AAAA,MACA,eAAa;AAAA,MACb,IAAI;AAAA,QACF,WAAW,IAAI,OAAO,EAAE;AAAA,QACxB,4CAA4C;AAAA,UAC1C,YAAY;AAAA,UACZ,OAAO,MAAM,QAAQ,KAAK;AAAA,QAC5B;AAAA,QACA,yDAAyD;AAAA,UACvD,WAAW;AAAA,UACX,OAAO,MAAM,QAAQ,QAAQ;AAAA,QAC/B;AAAA,QACA,WAAW;AAAA,UACT,iBAAiB,MAAM,MAAM,QAAQ,OAAO,OAAO,IAAI;AAAA,UACvD,4CAA4C;AAAA,YAC1C,OAAO,MAAM,QAAQ,QAAQ;AAAA,UAC/B;AAAA,QACF;AAAA,QACA,sBAAsB;AAAA,UACpB,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,UAAU,MAAM,QAAQ,QAAQ,IAAI;AAAA,UAC7D,eAAe,IAAI,OAAO,CAAC;AAAA,QAC7B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACjB,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,UAAU,MAAM,QAAQ,QAAQ,IAAI;AAAA,UAC7D,eAAe,IAAI,OAAO,EAAE;AAAA,QAC9B;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEO,IAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA,eAAe,SAAS;AAAA,EACxB,GAAG;AACL,MAAM;AACJ,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa;AAAA,MACb,IAAI;AAAA,QACF,YAAY,MAAM,QAAQ,CAAC;AAAA,QAC3B,eAAe,MAAM,QAAQ,CAAC;AAAA,QAC9B,WAAW,aAAa,MAAM,MAAM,QAAQ,SAAS,IAAI,CAAC;AAAA;AAAA,QAE1D,SAAS;AAAA,UACP,WAAW;AAAA,QACb;AAAA,QACA,uBAAuB;AAAA,UACrB,MAAM;AAAA,YACJ,SAAS;AAAA,YACT,WAAW,cAAc,IAAI,OAAO,CAAC,CAAC;AAAA,UACxC;AAAA,UACA,QAAQ;AAAA,YACN,SAAS;AAAA,YACT,WAAW;AAAA,UACb;AAAA,QACF;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEO,IAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA,iBAAiB;AAAA,EACjB,eAAe,SAAS;AAAA,EACxB,GAAG;AACL,MAAM;AACJ,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa;AAAA,MACb,IAAI;AAAA,QACF,SAAS,MAAM,QAAQ,GAAG,CAAC;AAAA,QAC3B,WAAW,aAAa,MAAM,MAAM,QAAQ,SAAS,IAAI,CAAC;AAAA,QAC1D,iBAAiB,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG;AAAA,QAC1D,gBAAgB,QAAQ,IAAI,OAAO,CAAC,CAAC;AAAA;AAAA,QAErC,SAAS;AAAA,UACP,YAAY;AAAA,UACZ,WAAW;AAAA,YACT,WAAW,cAAc,IAAI,OAAO,EAAE,CAAC;AAAA,UACzC;AAAA,QACF;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;","names":[]}
@@ -3,7 +3,8 @@ import {
3
3
  neutralTones
4
4
  } from "./chunk-FQ6UW7IY.js";
5
5
  import {
6
- rem
6
+ rem,
7
+ rems
7
8
  } from "./chunk-YKCAJ2TN.js";
8
9
 
9
10
  // src/components/typography/Code/Code.tsx
@@ -19,16 +20,16 @@ var StyledCodeContainer = styled(Box, {
19
20
  shouldForwardProp: (prop) => !["customVariant", "customSize", "copyable"].includes(prop)
20
21
  })(({ theme, customVariant = "inline", customSize = "md", copyable }) => {
21
22
  const sizeMap = {
22
- xs: { fontSize: rem(theme, 12), padding: "2px 4px" },
23
- sm: { fontSize: rem(theme, 13), padding: "3px 6px" },
24
- md: { fontSize: rem(theme, 14), padding: "4px 8px" },
25
- lg: { fontSize: rem(theme, 16), padding: "6px 12px" }
23
+ xs: { fontSize: rem(theme, 12), padding: rems(theme, 2, 4) },
24
+ sm: { fontSize: rem(theme, 13), padding: rems(theme, 3, 6) },
25
+ md: { fontSize: rem(theme, 14), padding: rems(theme, 4, 8) },
26
+ lg: { fontSize: rem(theme, 16), padding: rems(theme, 6, 12) }
26
27
  };
27
28
  const blockSizeMap = {
28
- xs: { fontSize: rem(theme, 12), padding: "8px 12px" },
29
- sm: { fontSize: rem(theme, 13), padding: "12px 16px" },
30
- md: { fontSize: rem(theme, 14), padding: "16px 20px" },
31
- lg: { fontSize: rem(theme, 16), padding: "20px 24px" }
29
+ xs: { fontSize: rem(theme, 12), padding: rems(theme, 8, 12) },
30
+ sm: { fontSize: rem(theme, 13), padding: rems(theme, 12, 16) },
31
+ md: { fontSize: rem(theme, 14), padding: rems(theme, 16, 20) },
32
+ lg: { fontSize: rem(theme, 16), padding: rems(theme, 20, 24) }
32
33
  };
33
34
  const baseStyles = {
34
35
  fontFamily: 'Monaco, Menlo, "Ubuntu Mono", "Courier New", monospace',
@@ -57,7 +58,7 @@ var StyledCodeContainer = styled(Box, {
57
58
  ...blockSizeMap[customSize],
58
59
  ...copyable && {
59
60
  paddingTop: blockSizeMap[customSize].padding.split(" ")[0],
60
- paddingRight: "60px"
61
+ paddingRight: rem(theme, 60)
61
62
  }
62
63
  },
63
64
  highlight: {
@@ -66,13 +67,13 @@ var StyledCodeContainer = styled(Box, {
66
67
  background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.1)} 0%, ${alpha(theme.palette.secondary.main, 0.1)} 100%)`,
67
68
  color: theme.palette.text.primary,
68
69
  border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}`,
69
- borderLeft: `4px solid ${theme.palette.primary.main}`,
70
+ borderLeft: `${rem(theme, 4)} solid ${theme.palette.primary.main}`,
70
71
  overflow: "auto",
71
72
  whiteSpace: "pre",
72
73
  ...blockSizeMap[customSize],
73
74
  ...copyable && {
74
75
  paddingTop: blockSizeMap[customSize].padding.split(" ")[0],
75
- paddingRight: "60px"
76
+ paddingRight: rem(theme, 60)
76
77
  }
77
78
  }
78
79
  };
@@ -92,10 +93,10 @@ var CopyButton = styled(IconButton)(({ theme }) => ({
92
93
  position: "absolute",
93
94
  top: theme.spacing(1),
94
95
  right: theme.spacing(1),
95
- width: 32,
96
- height: 32,
96
+ width: rem(theme, 32),
97
+ height: rem(theme, 32),
97
98
  backgroundColor: theme.palette.mode === "dark" ? alpha(theme.palette.background.paper, 0.8) : theme.palette.background.paper,
98
- backdropFilter: theme.palette.mode === "dark" ? "blur(8px)" : "none",
99
+ backdropFilter: theme.palette.mode === "dark" ? `blur(${rem(theme, 8)})` : "none",
99
100
  border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,
100
101
  boxShadow: theme.palette.mode === "light" ? theme.shadows[1] : "none",
101
102
  "&:hover": {
@@ -114,9 +115,9 @@ var LanguageLabel = styled(Box)(({ theme }) => ({
114
115
  fontWeight: 500,
115
116
  color: alpha(theme.palette.text.primary, 0.6),
116
117
  backgroundColor: theme.palette.mode === "dark" ? alpha(theme.palette.background.paper, 0.8) : theme.palette.background.paper,
117
- padding: "2px 8px",
118
+ padding: rems(theme, 2, 8),
118
119
  borderRadius: theme.shape.borderRadius / 2,
119
- backdropFilter: theme.palette.mode === "dark" ? "blur(8px)" : "none",
120
+ backdropFilter: theme.palette.mode === "dark" ? `blur(${rem(theme, 8)})` : "none",
120
121
  border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,
121
122
  boxShadow: theme.palette.mode === "light" ? theme.shadows[1] : "none"
122
123
  }));
@@ -201,4 +202,4 @@ Code.displayName = "Code";
201
202
  export {
202
203
  Code
203
204
  };
204
- //# sourceMappingURL=chunk-FYTLKHEN.js.map
205
+ //# sourceMappingURL=chunk-FYKFQPVT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/typography/Code/Code.tsx"],"sourcesContent":["import Check from '@mui/icons-material/Check';\nimport ContentCopy from '@mui/icons-material/ContentCopy';\nimport Box from '@mui/material/Box/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Tooltip from '@mui/material/Tooltip/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React, { useState } from 'react';\n\nimport type { CodeProps } from './Code.types';\nimport { modeInk, neutralTones } from '../../../tokens/ink';\nimport { rem, rems } from '../../../tokens/relative';\n\nconst StyledCodeContainer = styled(Box, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'customSize', 'copyable'].includes(prop as string),\n})<{\n customVariant?: string;\n customSize?: string;\n copyable?: boolean;\n component?: React.ElementType;\n}>(({ theme, customVariant = 'inline', customSize = 'md', copyable }) => {\n // Size mapping\n const sizeMap = {\n xs: { fontSize: rem(theme, 12), padding: rems(theme, 2, 4) },\n sm: { fontSize: rem(theme, 13), padding: rems(theme, 3, 6) },\n md: { fontSize: rem(theme, 14), padding: rems(theme, 4, 8) },\n lg: { fontSize: rem(theme, 16), padding: rems(theme, 6, 12) },\n };\n\n const blockSizeMap = {\n xs: { fontSize: rem(theme, 12), padding: rems(theme, 8, 12) },\n sm: { fontSize: rem(theme, 13), padding: rems(theme, 12, 16) },\n md: { fontSize: rem(theme, 14), padding: rems(theme, 16, 20) },\n lg: { fontSize: rem(theme, 16), padding: rems(theme, 20, 24) },\n };\n\n const baseStyles = {\n fontFamily: 'Monaco, Menlo, \"Ubuntu Mono\", \"Courier New\", monospace',\n lineHeight: 1.5,\n borderRadius: theme.shape.borderRadius,\n transition: 'all 0.2s ease',\n position: 'relative' as const,\n };\n\n // Variant-specific styles\n const variantStyles = {\n inline: {\n ...baseStyles,\n display: 'inline',\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\n color: theme.palette.primary.main,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.12)}`,\n ...sizeMap[customSize as keyof typeof sizeMap],\n },\n block: {\n ...baseStyles,\n display: 'block',\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(neutralTones(theme).inverseSurface, 0.95)\n : alpha(neutralTones(theme).surface, 0.95),\n color:\n theme.palette.mode === 'dark' ? modeInk(theme) : theme.palette.text.primary,\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n overflow: 'auto',\n whiteSpace: 'pre' as const,\n ...blockSizeMap[customSize as keyof typeof blockSizeMap],\n ...(copyable && {\n paddingTop: blockSizeMap[customSize as keyof typeof blockSizeMap].padding.split(' ')[0],\n paddingRight: rem(theme, 60),\n }),\n },\n highlight: {\n ...baseStyles,\n display: 'block',\n background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.1)} 0%, ${alpha(theme.palette.secondary.main, 0.1)} 100%)`,\n color: theme.palette.text.primary,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}`,\n borderLeft: `${rem(theme, 4)} solid ${theme.palette.primary.main}`,\n overflow: 'auto',\n whiteSpace: 'pre' as const,\n ...blockSizeMap[customSize as keyof typeof blockSizeMap],\n ...(copyable && {\n paddingTop: blockSizeMap[customSize as keyof typeof blockSizeMap].padding.split(' ')[0],\n paddingRight: rem(theme, 60),\n }),\n },\n };\n\n return variantStyles[customVariant as keyof typeof variantStyles] || variantStyles.inline;\n});\n\nconst StyledCode = styled('code')({\n margin: 0,\n padding: 0,\n backgroundColor: 'transparent',\n border: 'none',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n color: 'inherit',\n});\n\nconst CopyButton = styled(IconButton)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(1),\n right: theme.spacing(1),\n width: rem(theme, 32),\n height: rem(theme, 32),\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(theme.palette.background.paper, 0.8)\n : theme.palette.background.paper,\n backdropFilter: theme.palette.mode === 'dark' ? `blur(${rem(theme, 8)})` : 'none',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n boxShadow: theme.palette.mode === 'light' ? theme.shadows[1] : 'none',\n '&:hover': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(theme.palette.background.paper, 0.9)\n : neutralTones(theme).surface,\n transform: 'scale(1.05)',\n },\n '& .MuiSvgIcon-root': {\n fontSize: rem(theme, 16),\n },\n}));\n\nconst LanguageLabel = styled(Box)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(1),\n left: theme.spacing(2),\n fontSize: rem(theme, 12),\n fontWeight: 500,\n color: alpha(theme.palette.text.primary, 0.6),\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(theme.palette.background.paper, 0.8)\n : theme.palette.background.paper,\n padding: rems(theme, 2, 8),\n borderRadius: theme.shape.borderRadius / 2,\n backdropFilter: theme.palette.mode === 'dark' ? `blur(${rem(theme, 8)})` : 'none',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n boxShadow: theme.palette.mode === 'light' ? theme.shadows[1] : 'none',\n}));\n\n// Renders each source line beside a gutter number. Keys combine the line number\n// with a slice of the content and its length, so editing one line in place does\n// not reshuffle the keys of the lines around it.\nconst renderNumberedLines = (source: string) =>\n source.split('\\n').map((line, index) => {\n const stableKey = `line-${index + 1}-${line.slice(0, 10).replace(/\\s+/g, '')}-${line.length}`;\n\n return (\n <div key={stableKey} style={{ display: 'flex' }}>\n <span\n style={{\n display: 'inline-block',\n minWidth: '3em',\n opacity: 0.5,\n userSelect: 'none',\n marginRight: '1em',\n textAlign: 'right',\n }}\n >\n {index + 1}\n </span>\n <span>{line}</span>\n </div>\n );\n });\n\n// Only block-ish variants get a language label or a copy affordance.\nconst resolveCodeFlags = (\n variant: CodeProps['variant'],\n copyable: boolean,\n language: CodeProps['language'],\n) => {\n const isBlock = variant === 'block' || variant === 'highlight';\n return {\n isBlock,\n showCopy: copyable && isBlock,\n showLanguage: Boolean(language) && isBlock,\n };\n};\n\n// Owns its own \"just copied\" flash. Keeping it here rather than inline in Code\n// means the copied/not-copied branches do not count against the main render, and\n// the flash re-renders only the button. Non-string children are still a no-op on\n// click, exactly as before.\nconst CodeCopyButton: React.FC<{ source: React.ReactNode }> = ({ source }) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n if (typeof source !== 'string') return;\n try {\n await navigator.clipboard.writeText(source);\n setCopied(true);\n window.setTimeout(() => setCopied(false), 2000);\n } catch {\n // Silently fail if clipboard access is denied\n }\n };\n\n return (\n <Tooltip title={copied ? 'Copied!' : 'Copy code'}>\n <CopyButton onClick={handleCopy} size=\"small\" color={copied ? 'success' : 'default'}>\n {copied ? <Check /> : <ContentCopy />}\n </CopyButton>\n </Tooltip>\n );\n};\n\nexport const Code = React.forwardRef<HTMLElement, CodeProps>(\n (\n {\n variant = 'inline',\n language,\n copyable = false,\n lineNumbers = false,\n size = 'md',\n children,\n ...props\n },\n ref,\n ) => {\n const { isBlock, showCopy, showLanguage } = resolveCodeFlags(variant, copyable, language);\n\n // Process children for line numbers if needed\n const processedChildren = React.useMemo(() => {\n if (!lineNumbers || !isBlock || typeof children !== 'string') {\n return children;\n }\n\n return renderNumberedLines(children);\n }, [children, lineNumbers, isBlock]);\n\n return (\n <StyledCodeContainer\n ref={ref}\n component={variant === 'inline' ? 'span' : 'div'}\n customVariant={variant}\n customSize={size}\n copyable={showCopy}\n {...props}\n >\n {showLanguage && <LanguageLabel>{language}</LanguageLabel>}\n\n <StyledCode>{processedChildren}</StyledCode>\n\n {showCopy && <CodeCopyButton source={children} />}\n </StyledCodeContainer>\n );\n },\n);\n\nCode.displayName = 'Code';"],"mappings":"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","names":[]}