@12-apps/ui 6.48.1 → 6.49.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 (481) hide show
  1. package/NATIVE.md +1 -1
  2. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +4 -4
  3. package/dist/_internal/components/data-display/Avatar/Avatar.js +4 -4
  4. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  5. package/dist/_internal/components/data-display/Badge/Badge.js +8 -6
  6. package/dist/_internal/components/data-display/Badge/Badge.styles.js +6 -4
  7. package/dist/_internal/components/data-display/Badge/BadgeContent.js +7 -5
  8. package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
  9. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +3 -3
  10. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +3 -3
  11. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +7 -5
  12. package/dist/_internal/components/data-display/Carousel/Carousel.js +10 -8
  13. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +6 -4
  14. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +6 -4
  15. package/dist/_internal/components/data-display/Chart/Chart.js +10 -8
  16. package/dist/_internal/components/data-display/Chart/SpecChart.js +14 -12
  17. package/dist/_internal/components/data-display/Chart/chart-context.js +7 -5
  18. package/dist/_internal/components/data-display/Chart/chart-internals.js +6 -4
  19. package/dist/_internal/components/data-display/Chart/chart-renderers.js +9 -7
  20. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  21. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +7 -5
  22. package/dist/_internal/components/data-display/DataGrid/DataGrid.model.js +5 -3
  23. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +48 -46
  24. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +60 -58
  25. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  26. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +4 -4
  27. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +5 -5
  28. package/dist/_internal/components/data-display/DataViews/base-card.js +2 -2
  29. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +9 -7
  30. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +8 -6
  31. package/dist/_internal/components/data-display/DataViews/base-list-card.js +11 -9
  32. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +8 -8
  33. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +4 -4
  34. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +11 -9
  35. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +7 -5
  36. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +3 -3
  37. package/dist/_internal/components/data-display/DataViews/data-views-export.js +3 -3
  38. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +11 -11
  39. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +15 -13
  40. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
  41. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +44 -42
  42. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +15 -15
  43. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +6 -4
  44. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +11 -11
  45. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +14 -14
  46. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  47. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +7 -5
  48. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +3 -3
  49. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +18 -16
  50. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +11 -11
  51. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +17 -15
  52. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +3 -3
  53. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +7 -5
  54. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +7 -7
  55. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  56. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
  57. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +5 -5
  58. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +17 -15
  59. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +4 -4
  60. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
  61. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
  62. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
  63. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
  64. package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -2
  65. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
  66. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -2
  67. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +4 -4
  68. package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
  69. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +5 -3
  70. package/dist/_internal/components/data-display/Sheet/Sheet.js +9 -7
  71. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +6 -4
  72. package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
  73. package/dist/_internal/components/data-display/Table/Table.js +7 -5
  74. package/dist/_internal/components/data-display/index.js +68 -66
  75. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  76. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +3 -3
  77. package/dist/_internal/components/feedback/index.js +4 -4
  78. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +2 -2
  79. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
  80. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +3 -3
  81. package/dist/_internal/components/form/Button/Button.js +2 -2
  82. package/dist/_internal/components/form/Calendar/Calendar.hooks.js +2 -2
  83. package/dist/_internal/components/form/Calendar/Calendar.js +6 -6
  84. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  85. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  86. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +2 -2
  87. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +4 -4
  88. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
  89. package/dist/_internal/components/form/Command/Command.js +7 -5
  90. package/dist/_internal/components/form/Command/Command.styles.js +6 -4
  91. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +7 -7
  92. package/dist/_internal/components/form/Label/Label.js +7 -5
  93. package/dist/_internal/components/form/Label/Label.styles.js +6 -4
  94. package/dist/_internal/components/form/Menubar/Menubar.item.js +7 -5
  95. package/dist/_internal/components/form/Menubar/Menubar.js +10 -8
  96. package/dist/_internal/components/form/Menubar/Menubar.styles.js +6 -4
  97. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +8 -6
  98. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
  99. package/dist/_internal/components/form/Switch/Switch.js +2 -2
  100. package/dist/_internal/components/form/index.js +37 -35
  101. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +5 -5
  102. package/dist/_internal/components/form/total-form/Fields/index.js +8 -8
  103. package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
  104. package/dist/_internal/components/index.js +142 -140
  105. package/dist/_internal/components/layout/Box/Box.js +8 -6
  106. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +3 -3
  107. package/dist/_internal/components/layout/SettingCard/SettingCard.js +12 -10
  108. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +11 -9
  109. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +12 -10
  110. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +17 -15
  111. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +15 -13
  112. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +17 -15
  113. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
  114. package/dist/_internal/components/layout/Skeleton/Skeleton.js +2 -2
  115. package/dist/_internal/components/layout/Stack/Stack.js +9 -7
  116. package/dist/_internal/components/layout/index.js +36 -34
  117. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +12 -10
  118. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +6 -4
  119. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
  120. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +5 -5
  121. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  122. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +3 -3
  123. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +12 -10
  124. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +14 -12
  125. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +9 -7
  126. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +10 -8
  127. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +10 -8
  128. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +10 -8
  129. package/dist/_internal/components/navigation/SectionNav/__stories__/fixtures.js +5 -3
  130. package/dist/_internal/components/navigation/SectionNav/__stories__/fixtures.js.map +1 -1
  131. package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
  132. package/dist/_internal/components/navigation/index.js +31 -29
  133. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +5 -3
  134. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +5 -3
  135. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +5 -3
  136. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +5 -3
  137. package/dist/_internal/components/utility/index.js +5 -3
  138. package/dist/_internal/icons/Icon.js +8 -6
  139. package/dist/_internal/provider/UiProvider.js +7 -5
  140. package/dist/_internal/provider/mui-bridge.js +6 -4
  141. package/dist/_internal/provider/use-ui-theme.js +7 -5
  142. package/dist/_internal/social-login-button/social-login-button.js +3 -3
  143. package/dist/_internal/tokens/density-overrides.js +20 -4
  144. package/dist/_internal/tokens/density-overrides.navigation.js +19 -0
  145. package/dist/_internal/tokens/density-overrides.navigation.js.map +1 -0
  146. package/dist/_internal/tokens/density-overrides.selection.js +11 -0
  147. package/dist/_internal/tokens/density-overrides.selection.js.map +1 -0
  148. package/dist/_internal/tokens/density.js +4 -2
  149. package/dist/_internal/user-avatar/user-avatar.js +7 -7
  150. package/dist/charts.js +22 -20
  151. package/dist/{chunk-ODFJTEIL.js → chunk-23YZEAUU.js} +4 -4
  152. package/dist/{chunk-OBID7SOG.js → chunk-2GAFEQ2T.js} +3 -3
  153. package/dist/{chunk-BIDPJNCG.js → chunk-2LQU7DRI.js} +25 -9
  154. package/dist/chunk-2LQU7DRI.js.map +1 -0
  155. package/dist/{chunk-NRSVI23L.js → chunk-2T7L6ZWF.js} +2 -2
  156. package/dist/{chunk-TMOC2XUE.js → chunk-2UPWKLHQ.js} +21 -5
  157. package/dist/chunk-2UPWKLHQ.js.map +1 -0
  158. package/dist/{chunk-2YKTB2IZ.js → chunk-32JMSHEA.js} +2 -2
  159. package/dist/{chunk-QFJ3JXXP.js → chunk-3IPPMWUA.js} +1 -1
  160. package/dist/{chunk-QFJ3JXXP.js.map → chunk-3IPPMWUA.js.map} +1 -1
  161. package/dist/{chunk-2NYVMLFQ.js → chunk-3YRPEZ3F.js} +2 -2
  162. package/dist/{chunk-CGL7R37P.js → chunk-43Q6CVPB.js} +4 -4
  163. package/dist/{chunk-G6II7SVX.js → chunk-44USLRMT.js} +4 -4
  164. package/dist/{chunk-E4GTZ26X.js → chunk-4CDZP6KD.js} +2 -2
  165. package/dist/{chunk-5D52CMNX.js → chunk-4ELI2MM3.js} +2 -52
  166. package/dist/chunk-4ELI2MM3.js.map +1 -0
  167. package/dist/{chunk-HISEWACT.js → chunk-4GRUNQNB.js} +2 -2
  168. package/dist/{chunk-AOKLEE64.js → chunk-4NDNV45Y.js} +2 -2
  169. package/dist/{chunk-LTJDZIYR.js → chunk-4O7X45T5.js} +7 -7
  170. package/dist/{chunk-H5XKBPKK.js → chunk-4UQY2DUN.js} +3 -3
  171. package/dist/{chunk-43UFSKEK.js → chunk-4WCYKU3S.js} +3 -3
  172. package/dist/{chunk-JAHWFJCW.js → chunk-5JCGBCFJ.js} +5 -5
  173. package/dist/{chunk-UJOFRJLX.js → chunk-5MW7OYBM.js} +2 -2
  174. package/dist/{chunk-4A7PSQB5.js → chunk-6EPXOVY3.js} +4 -4
  175. package/dist/{chunk-AQC67NQZ.js → chunk-6EXGL36F.js} +2 -2
  176. package/dist/{chunk-CMLIWUBW.js → chunk-6PPHALM3.js} +4 -4
  177. package/dist/{chunk-WHYVVKRS.js → chunk-6SI22JFV.js} +2 -2
  178. package/dist/{chunk-RZPYKTOG.js → chunk-6SM5ML75.js} +5 -5
  179. package/dist/{chunk-THCDUP6Q.js → chunk-6SXXW5GR.js} +6 -6
  180. package/dist/{chunk-5OX6KZIZ.js → chunk-6TLY2E24.js} +4 -4
  181. package/dist/{chunk-SAJ5H5VC.js → chunk-7JTTE4OY.js} +4 -4
  182. package/dist/{chunk-AG3DY5TH.js → chunk-ADSA76T7.js} +2 -2
  183. package/dist/{chunk-25OI5W6Y.js → chunk-AH4XGLE2.js} +2 -2
  184. package/dist/{chunk-CACBJ4CR.js → chunk-AJAPP56P.js} +2 -2
  185. package/dist/{chunk-GMC3F43L.js → chunk-AMSNWV7V.js} +3 -3
  186. package/dist/{chunk-MWPXKZ7O.js → chunk-AY5MY7HJ.js} +6 -6
  187. package/dist/{chunk-2LSJTQIL.js → chunk-B22NXESR.js} +2 -2
  188. package/dist/{chunk-E32YPPF5.js → chunk-B4Y6W3OU.js} +2 -2
  189. package/dist/{chunk-2K2B5QM2.js → chunk-BEGTLELZ.js} +5 -5
  190. package/dist/{chunk-QMSCRKR6.js → chunk-C7GYSLPO.js} +2 -2
  191. package/dist/{chunk-33NBMNTB.js → chunk-CF25EQFU.js} +2 -2
  192. package/dist/{chunk-WDAEYLT5.js → chunk-D6ROYZ6H.js} +2 -2
  193. package/dist/{chunk-ZVJSY2OV.js → chunk-EF5XUS44.js} +4 -4
  194. package/dist/{chunk-6PU3JYVY.js → chunk-F3AYISXT.js} +4 -4
  195. package/dist/{chunk-ST36ZSAN.js → chunk-FRIUYEXD.js} +2 -2
  196. package/dist/{chunk-K6LNHHSH.js → chunk-GC5XJ7YB.js} +4 -4
  197. package/dist/{chunk-JYLOCXMV.js → chunk-GI63FQEJ.js} +4 -4
  198. package/dist/{chunk-FVKBP3UX.js → chunk-GLKQT2DS.js} +2 -2
  199. package/dist/{chunk-MEYKNJNI.js → chunk-GT6HPOS2.js} +8 -8
  200. package/dist/{chunk-XFAXRMWY.js → chunk-GUAK7QUR.js} +4 -4
  201. package/dist/{chunk-JUKA4NY5.js → chunk-GWONO2ML.js} +6 -6
  202. package/dist/{chunk-YRACC6BB.js → chunk-GWVJZ7SX.js} +4 -4
  203. package/dist/{chunk-5NFQKL7C.js → chunk-H6K3AP42.js} +6 -6
  204. package/dist/{chunk-VOG5IVQW.js → chunk-H6N7XXUB.js} +2 -2
  205. package/dist/{chunk-PP7CDKO4.js → chunk-HCBGCR4N.js} +3 -3
  206. package/dist/{chunk-5OEC546C.js → chunk-HDI37JLT.js} +2 -2
  207. package/dist/{chunk-LHTEAPYG.js → chunk-HDQMSZA7.js} +3 -3
  208. package/dist/{chunk-VU63PDWW.js → chunk-HOXWNOQV.js} +3 -3
  209. package/dist/{chunk-KESGVMHW.js → chunk-HUGXO5PE.js} +3 -3
  210. package/dist/{chunk-3CDU7DLD.js → chunk-IKXS2YVQ.js} +2 -2
  211. package/dist/{chunk-BU6TCB76.js → chunk-INCTNS4X.js} +2 -2
  212. package/dist/{chunk-FS7UVKEE.js → chunk-IR5A2BKL.js} +4 -4
  213. package/dist/{chunk-2ZRZTGWP.js → chunk-ISW5K72V.js} +5 -5
  214. package/dist/{chunk-VZ4VAQX3.js → chunk-IVJKILIX.js} +2 -2
  215. package/dist/{chunk-NRI2TZDS.js → chunk-JNX4B3EE.js} +2 -2
  216. package/dist/{chunk-JWJ77IMK.js → chunk-JRV3UFOJ.js} +8 -8
  217. package/dist/{chunk-ZRIWMIHK.js → chunk-JVOV5WAJ.js} +6 -6
  218. package/dist/chunk-K3YHXOWZ.js +126 -0
  219. package/dist/chunk-K3YHXOWZ.js.map +1 -0
  220. package/dist/{chunk-HR7YTBR7.js → chunk-K4N3V7YE.js} +4 -4
  221. package/dist/{chunk-WU2KXA6I.js → chunk-KC733FDV.js} +3 -3
  222. package/dist/{chunk-ZCXVTFYQ.js → chunk-KG64HV34.js} +2 -2
  223. package/dist/{chunk-LB27LKG3.js → chunk-KUNHGNGF.js} +4 -4
  224. package/dist/{chunk-FQT4C5R4.js → chunk-KWIR73YH.js} +12 -12
  225. package/dist/{chunk-IKZSQKOE.js → chunk-LFHAYETO.js} +3 -3
  226. package/dist/{chunk-NM2FLCPV.js → chunk-LO4M5D7T.js} +3 -3
  227. package/dist/{chunk-CGBUWNNQ.js → chunk-LWFJZ3Q5.js} +4 -4
  228. package/dist/{chunk-OCQ6GDCF.js → chunk-MH3XW3WR.js} +2 -2
  229. package/dist/{chunk-3WAAL3KN.js → chunk-MT2OCLGT.js} +7 -7
  230. package/dist/{chunk-QJK7BNH3.js → chunk-N7KUKE45.js} +3 -3
  231. package/dist/{chunk-WAD5VL6B.js → chunk-NBFP645M.js} +7 -7
  232. package/dist/{chunk-TTJTMDLI.js → chunk-NF42BHI5.js} +2 -2
  233. package/dist/{chunk-6MN5KOVM.js → chunk-NHMFBUBK.js} +2 -2
  234. package/dist/{chunk-N4HHFYPB.js → chunk-NND4UTWS.js} +2 -2
  235. package/dist/{chunk-EMEXXAQI.js → chunk-NYFGFELX.js} +7 -7
  236. package/dist/{chunk-Q2LQVYXY.js → chunk-OL2BEJZR.js} +2 -2
  237. package/dist/{chunk-KTX7XME6.js → chunk-PAICZOL5.js} +4 -4
  238. package/dist/{chunk-AJ4MRDKM.js → chunk-PAK25GQC.js} +4 -4
  239. package/dist/{chunk-KYQ4OORF.js → chunk-PJNA6STF.js} +6 -6
  240. package/dist/{chunk-BPOVRMVS.js → chunk-Q4PS47EB.js} +8 -8
  241. package/dist/{chunk-YXU45AVO.js → chunk-QBJBKXF4.js} +10 -10
  242. package/dist/{chunk-EKWH4LGM.js → chunk-QEHEYVOL.js} +2 -2
  243. package/dist/{chunk-XNTDEQEB.js → chunk-QMA7TNZJ.js} +4 -4
  244. package/dist/{chunk-P2OQ4IGP.js → chunk-QTMXGMM7.js} +2 -2
  245. package/dist/{chunk-NQ7NMCRI.js → chunk-QTN7G5T2.js} +2 -2
  246. package/dist/{chunk-DSDNGTH6.js → chunk-R4XZTIZG.js} +7 -7
  247. package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
  248. package/dist/{chunk-F56VOHFW.js → chunk-RJTVUM5E.js} +2 -2
  249. package/dist/{chunk-KN7C6R6L.js → chunk-ROG7LMPK.js} +20 -20
  250. package/dist/{chunk-J44PPGBF.js → chunk-RX7J6VRI.js} +2 -2
  251. package/dist/{chunk-FIF4RQ4S.js → chunk-RXLD5XS2.js} +3 -3
  252. package/dist/{chunk-I2STNAIQ.js → chunk-RYWX6LK4.js} +2 -2
  253. package/dist/{chunk-HGRC635A.js → chunk-RZ4SBSLP.js} +2 -2
  254. package/dist/{chunk-S22XIXLL.js → chunk-SA2ERYVV.js} +5 -5
  255. package/dist/{chunk-6VKHS2BB.js → chunk-SDBNXZ2S.js} +2 -2
  256. package/dist/{chunk-KQS4ZJGS.js → chunk-SHAEK26Y.js} +4 -4
  257. package/dist/{chunk-PIUQYYOM.js → chunk-TBDAH7WC.js} +2 -2
  258. package/dist/{chunk-IHO2O44S.js → chunk-TE3XYCX7.js} +5 -5
  259. package/dist/{chunk-6DMUVVON.js → chunk-TJ7NQG7E.js} +4 -4
  260. package/dist/{chunk-Y6C4MYZE.js → chunk-TNQDSTIA.js} +7 -7
  261. package/dist/{chunk-UILH4OAZ.js → chunk-TOEBPWKG.js} +5 -5
  262. package/dist/{chunk-DWG5SEGW.js → chunk-TOMCXNAO.js} +2 -2
  263. package/dist/{chunk-YTIUFMRM.js → chunk-TU7ZXJX4.js} +3 -3
  264. package/dist/{chunk-P53KRCKW.js → chunk-TZASFX6G.js} +4 -4
  265. package/dist/{chunk-3CUWQXTG.js → chunk-UBUT2T5B.js} +2 -2
  266. package/dist/{chunk-ACU7LEFG.js → chunk-UDTA7YWD.js} +2 -2
  267. package/dist/{chunk-VYV3JOV5.js → chunk-UFGPKDF4.js} +2 -2
  268. package/dist/{chunk-WSYPM3SR.js → chunk-UI5O6J6R.js} +4 -4
  269. package/dist/{chunk-JQ6HDXKA.js → chunk-VFLNP2ZZ.js} +4 -4
  270. package/dist/{chunk-7PUSFB3T.js → chunk-W34CCOUM.js} +2 -2
  271. package/dist/{chunk-WDQRQIT7.js → chunk-WCVVM66J.js} +2 -2
  272. package/dist/{chunk-AEJ3FFNE.js → chunk-WQQON4RL.js} +5 -5
  273. package/dist/{chunk-H7DVH6KD.js → chunk-WT5SSBTU.js} +7 -7
  274. package/dist/{chunk-EWVJJ32N.js → chunk-WXAFPVMW.js} +5 -5
  275. package/dist/chunk-XK77FY42.js +59 -0
  276. package/dist/chunk-XK77FY42.js.map +1 -0
  277. package/dist/{chunk-6KLDYVRY.js → chunk-XKYOQOZK.js} +2 -2
  278. package/dist/{chunk-CKFZQQ6T.js → chunk-XNDMCT5G.js} +2 -2
  279. package/dist/{chunk-R53ZOW4B.js → chunk-XP522FFM.js} +3 -3
  280. package/dist/{chunk-WGNLG2W2.js → chunk-XRGJVS4P.js} +2 -2
  281. package/dist/{chunk-FPKVHR5L.js → chunk-XRUW7DMH.js} +2 -2
  282. package/dist/{chunk-IV7G7NK3.js → chunk-XZH22APJ.js} +4 -4
  283. package/dist/{chunk-ZL3GCUKC.js → chunk-ZAVMJL4S.js} +2 -2
  284. package/dist/{chunk-SV4FYSDL.js → chunk-ZDMQDTSH.js} +4 -4
  285. package/dist/{chunk-CKAVTWXP.js → chunk-ZGWEFOW6.js} +4 -4
  286. package/dist/{chunk-WC3W36AM.js → chunk-ZOUWHGV3.js} +4 -4
  287. package/dist/{chunk-4CBM7JNK.js → chunk-ZWIPJFUA.js} +4 -4
  288. package/dist/data-display/AsyncStateContainer.js +4 -4
  289. package/dist/data-display/Avatar.js +4 -4
  290. package/dist/data-display/Badge.js +8 -6
  291. package/dist/data-display/CardKit.js +6 -6
  292. package/dist/data-display/Carousel.js +10 -8
  293. package/dist/data-display/Chart.js +22 -20
  294. package/dist/data-display/DataGrid.js +7 -5
  295. package/dist/data-display/DataViews.js +76 -74
  296. package/dist/data-display/FleetMap.js +17 -15
  297. package/dist/data-display/LazyImage.js +3 -3
  298. package/dist/data-display/Lightbox.js +6 -6
  299. package/dist/data-display/LoadingState.js +3 -3
  300. package/dist/data-display/MapPreview.js +4 -4
  301. package/dist/data-display/Progress.js +2 -2
  302. package/dist/data-display/Sheet.js +9 -7
  303. package/dist/data-display/StatCard.js +3 -3
  304. package/dist/data-display/Table.js +7 -5
  305. package/dist/feedback/ConfirmAction.js +3 -3
  306. package/dist/feedback/NotificationStatusNotice.js +3 -3
  307. package/dist/form/AddressAutocomplete.js +7 -7
  308. package/dist/form/Button.js +2 -2
  309. package/dist/form/Calendar.js +6 -6
  310. package/dist/form/CategorySelect.js +4 -4
  311. package/dist/form/CodeEditor.js +3 -3
  312. package/dist/form/Command.js +7 -5
  313. package/dist/form/DateRangePicker.js +7 -7
  314. package/dist/form/Label.js +7 -5
  315. package/dist/form/Menubar.js +10 -8
  316. package/dist/form/RichTextEditor.js +2 -2
  317. package/dist/form/Switch.js +2 -2
  318. package/dist/form/total-form.js +14 -14
  319. package/dist/icons.js +8 -6
  320. package/dist/layout/Box.js +8 -6
  321. package/dist/layout/ContentToolbar.js +9 -9
  322. package/dist/layout/ScrollArea.js +3 -3
  323. package/dist/layout/SettingCard.js +22 -20
  324. package/dist/layout/SettingsLayout.js +4 -4
  325. package/dist/layout/Skeleton.js +2 -2
  326. package/dist/layout/Stack.js +9 -7
  327. package/dist/navigation/AppHeader.js +15 -13
  328. package/dist/navigation/NavigationMenu.js +5 -5
  329. package/dist/navigation/SectionNav.js +14 -12
  330. package/dist/navigation/Tabs.js +2 -2
  331. package/dist/provider.js +8 -6
  332. package/dist/social-login-button.js +3 -3
  333. package/dist/tokens.js +21 -5
  334. package/dist/types/provider/mui-bridge.d.ts.map +1 -1
  335. package/dist/types/tokens/density-overrides.d.ts +2 -14
  336. package/dist/types/tokens/density-overrides.d.ts.map +1 -1
  337. package/dist/types/tokens/density-overrides.navigation.d.ts +17 -0
  338. package/dist/types/tokens/density-overrides.navigation.d.ts.map +1 -0
  339. package/dist/types/tokens/density-overrides.selection.d.ts +16 -0
  340. package/dist/types/tokens/density-overrides.selection.d.ts.map +1 -0
  341. package/dist/types/tokens/density.d.ts +18 -11
  342. package/dist/types/tokens/density.d.ts.map +1 -1
  343. package/dist/types/tokens/scales.d.ts +1 -1
  344. package/dist/types/tokens/scales.d.ts.map +1 -1
  345. package/dist/user-avatar.js +7 -7
  346. package/dist/utility/WorkflowStep.js +5 -3
  347. package/package.json +1 -1
  348. package/src/provider/mui-bridge.ts +15 -3
  349. package/src/tokens/density-overrides.navigation.ts +226 -0
  350. package/src/tokens/density-overrides.selection.ts +210 -0
  351. package/src/tokens/density-overrides.ts +15 -208
  352. package/src/tokens/density.ts +30 -11
  353. package/src/tokens/scales.ts +10 -3
  354. package/dist/chunk-5D52CMNX.js.map +0 -1
  355. package/dist/chunk-BIDPJNCG.js.map +0 -1
  356. package/dist/chunk-TMOC2XUE.js.map +0 -1
  357. /package/dist/{chunk-ODFJTEIL.js.map → chunk-23YZEAUU.js.map} +0 -0
  358. /package/dist/{chunk-OBID7SOG.js.map → chunk-2GAFEQ2T.js.map} +0 -0
  359. /package/dist/{chunk-NRSVI23L.js.map → chunk-2T7L6ZWF.js.map} +0 -0
  360. /package/dist/{chunk-2YKTB2IZ.js.map → chunk-32JMSHEA.js.map} +0 -0
  361. /package/dist/{chunk-2NYVMLFQ.js.map → chunk-3YRPEZ3F.js.map} +0 -0
  362. /package/dist/{chunk-CGL7R37P.js.map → chunk-43Q6CVPB.js.map} +0 -0
  363. /package/dist/{chunk-G6II7SVX.js.map → chunk-44USLRMT.js.map} +0 -0
  364. /package/dist/{chunk-E4GTZ26X.js.map → chunk-4CDZP6KD.js.map} +0 -0
  365. /package/dist/{chunk-HISEWACT.js.map → chunk-4GRUNQNB.js.map} +0 -0
  366. /package/dist/{chunk-AOKLEE64.js.map → chunk-4NDNV45Y.js.map} +0 -0
  367. /package/dist/{chunk-LTJDZIYR.js.map → chunk-4O7X45T5.js.map} +0 -0
  368. /package/dist/{chunk-H5XKBPKK.js.map → chunk-4UQY2DUN.js.map} +0 -0
  369. /package/dist/{chunk-43UFSKEK.js.map → chunk-4WCYKU3S.js.map} +0 -0
  370. /package/dist/{chunk-JAHWFJCW.js.map → chunk-5JCGBCFJ.js.map} +0 -0
  371. /package/dist/{chunk-UJOFRJLX.js.map → chunk-5MW7OYBM.js.map} +0 -0
  372. /package/dist/{chunk-4A7PSQB5.js.map → chunk-6EPXOVY3.js.map} +0 -0
  373. /package/dist/{chunk-AQC67NQZ.js.map → chunk-6EXGL36F.js.map} +0 -0
  374. /package/dist/{chunk-CMLIWUBW.js.map → chunk-6PPHALM3.js.map} +0 -0
  375. /package/dist/{chunk-WHYVVKRS.js.map → chunk-6SI22JFV.js.map} +0 -0
  376. /package/dist/{chunk-RZPYKTOG.js.map → chunk-6SM5ML75.js.map} +0 -0
  377. /package/dist/{chunk-THCDUP6Q.js.map → chunk-6SXXW5GR.js.map} +0 -0
  378. /package/dist/{chunk-5OX6KZIZ.js.map → chunk-6TLY2E24.js.map} +0 -0
  379. /package/dist/{chunk-SAJ5H5VC.js.map → chunk-7JTTE4OY.js.map} +0 -0
  380. /package/dist/{chunk-AG3DY5TH.js.map → chunk-ADSA76T7.js.map} +0 -0
  381. /package/dist/{chunk-25OI5W6Y.js.map → chunk-AH4XGLE2.js.map} +0 -0
  382. /package/dist/{chunk-CACBJ4CR.js.map → chunk-AJAPP56P.js.map} +0 -0
  383. /package/dist/{chunk-GMC3F43L.js.map → chunk-AMSNWV7V.js.map} +0 -0
  384. /package/dist/{chunk-MWPXKZ7O.js.map → chunk-AY5MY7HJ.js.map} +0 -0
  385. /package/dist/{chunk-2LSJTQIL.js.map → chunk-B22NXESR.js.map} +0 -0
  386. /package/dist/{chunk-E32YPPF5.js.map → chunk-B4Y6W3OU.js.map} +0 -0
  387. /package/dist/{chunk-2K2B5QM2.js.map → chunk-BEGTLELZ.js.map} +0 -0
  388. /package/dist/{chunk-QMSCRKR6.js.map → chunk-C7GYSLPO.js.map} +0 -0
  389. /package/dist/{chunk-33NBMNTB.js.map → chunk-CF25EQFU.js.map} +0 -0
  390. /package/dist/{chunk-WDAEYLT5.js.map → chunk-D6ROYZ6H.js.map} +0 -0
  391. /package/dist/{chunk-ZVJSY2OV.js.map → chunk-EF5XUS44.js.map} +0 -0
  392. /package/dist/{chunk-6PU3JYVY.js.map → chunk-F3AYISXT.js.map} +0 -0
  393. /package/dist/{chunk-ST36ZSAN.js.map → chunk-FRIUYEXD.js.map} +0 -0
  394. /package/dist/{chunk-K6LNHHSH.js.map → chunk-GC5XJ7YB.js.map} +0 -0
  395. /package/dist/{chunk-JYLOCXMV.js.map → chunk-GI63FQEJ.js.map} +0 -0
  396. /package/dist/{chunk-FVKBP3UX.js.map → chunk-GLKQT2DS.js.map} +0 -0
  397. /package/dist/{chunk-MEYKNJNI.js.map → chunk-GT6HPOS2.js.map} +0 -0
  398. /package/dist/{chunk-XFAXRMWY.js.map → chunk-GUAK7QUR.js.map} +0 -0
  399. /package/dist/{chunk-JUKA4NY5.js.map → chunk-GWONO2ML.js.map} +0 -0
  400. /package/dist/{chunk-YRACC6BB.js.map → chunk-GWVJZ7SX.js.map} +0 -0
  401. /package/dist/{chunk-5NFQKL7C.js.map → chunk-H6K3AP42.js.map} +0 -0
  402. /package/dist/{chunk-VOG5IVQW.js.map → chunk-H6N7XXUB.js.map} +0 -0
  403. /package/dist/{chunk-PP7CDKO4.js.map → chunk-HCBGCR4N.js.map} +0 -0
  404. /package/dist/{chunk-5OEC546C.js.map → chunk-HDI37JLT.js.map} +0 -0
  405. /package/dist/{chunk-LHTEAPYG.js.map → chunk-HDQMSZA7.js.map} +0 -0
  406. /package/dist/{chunk-VU63PDWW.js.map → chunk-HOXWNOQV.js.map} +0 -0
  407. /package/dist/{chunk-KESGVMHW.js.map → chunk-HUGXO5PE.js.map} +0 -0
  408. /package/dist/{chunk-3CDU7DLD.js.map → chunk-IKXS2YVQ.js.map} +0 -0
  409. /package/dist/{chunk-BU6TCB76.js.map → chunk-INCTNS4X.js.map} +0 -0
  410. /package/dist/{chunk-FS7UVKEE.js.map → chunk-IR5A2BKL.js.map} +0 -0
  411. /package/dist/{chunk-2ZRZTGWP.js.map → chunk-ISW5K72V.js.map} +0 -0
  412. /package/dist/{chunk-VZ4VAQX3.js.map → chunk-IVJKILIX.js.map} +0 -0
  413. /package/dist/{chunk-NRI2TZDS.js.map → chunk-JNX4B3EE.js.map} +0 -0
  414. /package/dist/{chunk-JWJ77IMK.js.map → chunk-JRV3UFOJ.js.map} +0 -0
  415. /package/dist/{chunk-ZRIWMIHK.js.map → chunk-JVOV5WAJ.js.map} +0 -0
  416. /package/dist/{chunk-HR7YTBR7.js.map → chunk-K4N3V7YE.js.map} +0 -0
  417. /package/dist/{chunk-WU2KXA6I.js.map → chunk-KC733FDV.js.map} +0 -0
  418. /package/dist/{chunk-ZCXVTFYQ.js.map → chunk-KG64HV34.js.map} +0 -0
  419. /package/dist/{chunk-LB27LKG3.js.map → chunk-KUNHGNGF.js.map} +0 -0
  420. /package/dist/{chunk-FQT4C5R4.js.map → chunk-KWIR73YH.js.map} +0 -0
  421. /package/dist/{chunk-IKZSQKOE.js.map → chunk-LFHAYETO.js.map} +0 -0
  422. /package/dist/{chunk-NM2FLCPV.js.map → chunk-LO4M5D7T.js.map} +0 -0
  423. /package/dist/{chunk-CGBUWNNQ.js.map → chunk-LWFJZ3Q5.js.map} +0 -0
  424. /package/dist/{chunk-OCQ6GDCF.js.map → chunk-MH3XW3WR.js.map} +0 -0
  425. /package/dist/{chunk-3WAAL3KN.js.map → chunk-MT2OCLGT.js.map} +0 -0
  426. /package/dist/{chunk-QJK7BNH3.js.map → chunk-N7KUKE45.js.map} +0 -0
  427. /package/dist/{chunk-WAD5VL6B.js.map → chunk-NBFP645M.js.map} +0 -0
  428. /package/dist/{chunk-TTJTMDLI.js.map → chunk-NF42BHI5.js.map} +0 -0
  429. /package/dist/{chunk-6MN5KOVM.js.map → chunk-NHMFBUBK.js.map} +0 -0
  430. /package/dist/{chunk-N4HHFYPB.js.map → chunk-NND4UTWS.js.map} +0 -0
  431. /package/dist/{chunk-EMEXXAQI.js.map → chunk-NYFGFELX.js.map} +0 -0
  432. /package/dist/{chunk-Q2LQVYXY.js.map → chunk-OL2BEJZR.js.map} +0 -0
  433. /package/dist/{chunk-KTX7XME6.js.map → chunk-PAICZOL5.js.map} +0 -0
  434. /package/dist/{chunk-AJ4MRDKM.js.map → chunk-PAK25GQC.js.map} +0 -0
  435. /package/dist/{chunk-KYQ4OORF.js.map → chunk-PJNA6STF.js.map} +0 -0
  436. /package/dist/{chunk-BPOVRMVS.js.map → chunk-Q4PS47EB.js.map} +0 -0
  437. /package/dist/{chunk-YXU45AVO.js.map → chunk-QBJBKXF4.js.map} +0 -0
  438. /package/dist/{chunk-EKWH4LGM.js.map → chunk-QEHEYVOL.js.map} +0 -0
  439. /package/dist/{chunk-XNTDEQEB.js.map → chunk-QMA7TNZJ.js.map} +0 -0
  440. /package/dist/{chunk-P2OQ4IGP.js.map → chunk-QTMXGMM7.js.map} +0 -0
  441. /package/dist/{chunk-NQ7NMCRI.js.map → chunk-QTN7G5T2.js.map} +0 -0
  442. /package/dist/{chunk-DSDNGTH6.js.map → chunk-R4XZTIZG.js.map} +0 -0
  443. /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
  444. /package/dist/{chunk-F56VOHFW.js.map → chunk-RJTVUM5E.js.map} +0 -0
  445. /package/dist/{chunk-KN7C6R6L.js.map → chunk-ROG7LMPK.js.map} +0 -0
  446. /package/dist/{chunk-J44PPGBF.js.map → chunk-RX7J6VRI.js.map} +0 -0
  447. /package/dist/{chunk-FIF4RQ4S.js.map → chunk-RXLD5XS2.js.map} +0 -0
  448. /package/dist/{chunk-I2STNAIQ.js.map → chunk-RYWX6LK4.js.map} +0 -0
  449. /package/dist/{chunk-HGRC635A.js.map → chunk-RZ4SBSLP.js.map} +0 -0
  450. /package/dist/{chunk-S22XIXLL.js.map → chunk-SA2ERYVV.js.map} +0 -0
  451. /package/dist/{chunk-6VKHS2BB.js.map → chunk-SDBNXZ2S.js.map} +0 -0
  452. /package/dist/{chunk-KQS4ZJGS.js.map → chunk-SHAEK26Y.js.map} +0 -0
  453. /package/dist/{chunk-PIUQYYOM.js.map → chunk-TBDAH7WC.js.map} +0 -0
  454. /package/dist/{chunk-IHO2O44S.js.map → chunk-TE3XYCX7.js.map} +0 -0
  455. /package/dist/{chunk-6DMUVVON.js.map → chunk-TJ7NQG7E.js.map} +0 -0
  456. /package/dist/{chunk-Y6C4MYZE.js.map → chunk-TNQDSTIA.js.map} +0 -0
  457. /package/dist/{chunk-UILH4OAZ.js.map → chunk-TOEBPWKG.js.map} +0 -0
  458. /package/dist/{chunk-DWG5SEGW.js.map → chunk-TOMCXNAO.js.map} +0 -0
  459. /package/dist/{chunk-YTIUFMRM.js.map → chunk-TU7ZXJX4.js.map} +0 -0
  460. /package/dist/{chunk-P53KRCKW.js.map → chunk-TZASFX6G.js.map} +0 -0
  461. /package/dist/{chunk-3CUWQXTG.js.map → chunk-UBUT2T5B.js.map} +0 -0
  462. /package/dist/{chunk-ACU7LEFG.js.map → chunk-UDTA7YWD.js.map} +0 -0
  463. /package/dist/{chunk-VYV3JOV5.js.map → chunk-UFGPKDF4.js.map} +0 -0
  464. /package/dist/{chunk-WSYPM3SR.js.map → chunk-UI5O6J6R.js.map} +0 -0
  465. /package/dist/{chunk-JQ6HDXKA.js.map → chunk-VFLNP2ZZ.js.map} +0 -0
  466. /package/dist/{chunk-7PUSFB3T.js.map → chunk-W34CCOUM.js.map} +0 -0
  467. /package/dist/{chunk-WDQRQIT7.js.map → chunk-WCVVM66J.js.map} +0 -0
  468. /package/dist/{chunk-AEJ3FFNE.js.map → chunk-WQQON4RL.js.map} +0 -0
  469. /package/dist/{chunk-H7DVH6KD.js.map → chunk-WT5SSBTU.js.map} +0 -0
  470. /package/dist/{chunk-EWVJJ32N.js.map → chunk-WXAFPVMW.js.map} +0 -0
  471. /package/dist/{chunk-6KLDYVRY.js.map → chunk-XKYOQOZK.js.map} +0 -0
  472. /package/dist/{chunk-CKFZQQ6T.js.map → chunk-XNDMCT5G.js.map} +0 -0
  473. /package/dist/{chunk-R53ZOW4B.js.map → chunk-XP522FFM.js.map} +0 -0
  474. /package/dist/{chunk-WGNLG2W2.js.map → chunk-XRGJVS4P.js.map} +0 -0
  475. /package/dist/{chunk-FPKVHR5L.js.map → chunk-XRUW7DMH.js.map} +0 -0
  476. /package/dist/{chunk-IV7G7NK3.js.map → chunk-XZH22APJ.js.map} +0 -0
  477. /package/dist/{chunk-ZL3GCUKC.js.map → chunk-ZAVMJL4S.js.map} +0 -0
  478. /package/dist/{chunk-SV4FYSDL.js.map → chunk-ZDMQDTSH.js.map} +0 -0
  479. /package/dist/{chunk-CKAVTWXP.js.map → chunk-ZGWEFOW6.js.map} +0 -0
  480. /package/dist/{chunk-WC3W36AM.js.map → chunk-ZOUWHGV3.js.map} +0 -0
  481. /package/dist/{chunk-4CBM7JNK.js.map → chunk-ZWIPJFUA.js.map} +0 -0
@@ -13,7 +13,13 @@ import {
13
13
  checkboxRadioDensityOverrides,
14
14
  chipDensityOverrides,
15
15
  iconButtonDensityOverrides,
16
+ paginationItemDensityOverrides,
17
+ sliderDensityOverrides,
16
18
  switchDensityOverrides,
19
+ tabDensityOverrides,
20
+ tableCellDensityOverrides,
21
+ tabsIndicatorDensityOverrides,
22
+ toggleButtonDensityOverrides,
17
23
  } from './density-overrides';
18
24
  import { fieldOverrides, mergeMuiComponents } from './field-height';
19
25
  import { DEFAULT_FIELD_RADIUS } from './field-radius.core';
@@ -77,17 +83,24 @@ export function useDensity(): ResolvedDensity {
77
83
  * their own layout off.
78
84
  *
79
85
  * `components` is the matching MUI-native override (`fieldOverrides`, plus
80
- * FUT-2766's `iconButtonDensityOverrides`/`chipDensityOverrides` and
81
- * FUT-2767's `checkboxRadioDensityOverrides`/`switchDensityOverrides`) for a
82
- * HOST's own bare `TextField`/`Select`/`IconButton`/`Chip`/`Checkbox`/
83
- * `Radio`/`Switch`, mirroring `muiThemeOptionsFrom`'s own `components:
84
- * mergeMuiComponents(...)`. It carries ONLY the overrides this function knows
85
- * about (`MuiOutlinedInput`'s `root`, `input` and `notchedOutline`;
86
- * `MuiInputLabel`'s `outlined`; `MuiIconButton`'s `root`/`sizeSmall`/
87
- * `sizeLarge`; `MuiChip`'s `root`/`sizeSmall`/`label`/`labelSmall`;
88
- * `MuiCheckbox`'s and `MuiRadio`'s `root`; `MuiSwitch`'s
89
- * `root`/`switchBase`/`thumb`/`sizeSmall`) — a host with ITS OWN overrides for
90
- * OTHER components merges them in with
86
+ * FUT-2766's `iconButtonDensityOverrides`/`chipDensityOverrides`, FUT-2767's
87
+ * `checkboxRadioDensityOverrides`/`switchDensityOverrides` and FUT-2768's
88
+ * `toggleButtonDensityOverrides`/`tabDensityOverrides`/
89
+ * `tabsIndicatorDensityOverrides`/`tableCellDensityOverrides`/
90
+ * `paginationItemDensityOverrides`/`sliderDensityOverrides`) for a HOST's own
91
+ * bare `TextField`/`Select`/`IconButton`/`Chip`/`Checkbox`/`Radio`/`Switch`/
92
+ * `ToggleButton`/`Tab`/`Tabs`/`TableCell`/`Pagination`/`Slider`, mirroring
93
+ * `muiThemeOptionsFrom`'s own `components: mergeMuiComponents(...)`. It
94
+ * carries ONLY the overrides this function knows about (`MuiOutlinedInput`'s
95
+ * `root`, `input` and `notchedOutline`; `MuiInputLabel`'s `outlined`;
96
+ * `MuiIconButton`'s `root`/`sizeSmall`/`sizeLarge`; `MuiChip`'s
97
+ * `root`/`sizeSmall`/`label`/`labelSmall`; `MuiCheckbox`'s and `MuiRadio`'s
98
+ * `root`; `MuiSwitch`'s `root`/`switchBase`/`thumb`/`sizeSmall`;
99
+ * `MuiToggleButton`'s `root`/`sizeSmall`/`sizeLarge`; `MuiTab`'s
100
+ * `root`/`labelIcon`; `MuiTabs`'s `indicator`; `MuiTableCell`'s
101
+ * `root`/`sizeSmall`; `MuiPaginationItem`'s `root`/`sizeSmall`/`sizeLarge`;
102
+ * `MuiSlider`'s `root`/`sizeSmall`/`thumb`/`thumbSizeSmall`) — a host with ITS
103
+ * OWN overrides for OTHER components merges them in with
91
104
  * `mergeMuiComponents(densityThemeOptions(density).components, hostOverrides)`,
92
105
  * which keeps a component only ONE side touches untouched. For a component
93
106
  * BOTH sides style, the merge is by INNER key (`root`/`input`/…): a key only
@@ -147,6 +160,12 @@ export function densityThemeOptions(
147
160
  chipDensityOverrides(),
148
161
  checkboxRadioDensityOverrides(),
149
162
  switchDensityOverrides(),
163
+ toggleButtonDensityOverrides(),
164
+ tabDensityOverrides(),
165
+ tabsIndicatorDensityOverrides(),
166
+ tableCellDensityOverrides(),
167
+ paginationItemDensityOverrides(),
168
+ sliderDensityOverrides(),
150
169
  ),
151
170
  };
152
171
  }
@@ -50,14 +50,21 @@ export {
50
50
  useDensity,
51
51
  } from './density';
52
52
  // The IconButton/Chip geometry overrides density threads through both
53
- // consumption paths (FUT-2766), and Checkbox/Radio/Switch's (FUT-2767) —
54
- // exported standalone too, for a host that wants just these components'
55
- // overrides without the rest of density.
53
+ // consumption paths (FUT-2766), and Checkbox/Radio/Switch's (FUT-2767) and
54
+ // ToggleButton/Tab/TableCell/PaginationItem/Slider's (FUT-2768) — exported
55
+ // standalone too, for a host that wants just these components' overrides
56
+ // without the rest of density.
56
57
  export {
57
58
  checkboxRadioDensityOverrides,
58
59
  chipDensityOverrides,
59
60
  iconButtonDensityOverrides,
61
+ paginationItemDensityOverrides,
62
+ sliderDensityOverrides,
60
63
  switchDensityOverrides,
64
+ tabDensityOverrides,
65
+ tableCellDensityOverrides,
66
+ tabsIndicatorDensityOverrides,
67
+ toggleButtonDensityOverrides,
61
68
  } from './density-overrides';
62
69
 
63
70
  export interface Accent {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tokens/density-overrides.ts"],"sourcesContent":["import { chipClasses } from '@mui/material/Chip/index.js';\nimport { switchClasses } from '@mui/material/Switch/index.js';\nimport type { Components, CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport { rem, rems } from './relative';\n\n/** The `ownerState` fields `MuiChip`'s two styled slots (root, label) both receive. */\ninterface ChipOwnerStateForOverrides {\n variant?: 'filled' | 'outlined';\n size?: 'small' | 'medium';\n}\n\n/**\n * ICONBUTTON / CHIP GEOMETRY, DENSITY-AWARE (FUT-2766).\n *\n * Both are MUI's own components, unwrapped: `@12-apps/ui` has no\n * `components/*` subpath for `IconButton`, and its `Chip` wrapper\n * (`components/data-display/Chip`) hands the drawing to `MuiChip` and adds\n * only hover/selection/transition `sx` — no geometry of its own (unlike\n * `Button`, which already draws every dimension through `rem()`,\n * `components/form/Button/Button.styles.ts`). So both draw MUI's OWN fixed-px\n * padding/height, verified against the installed `@mui/material@6.5.0` source:\n *\n * - `IconButton` (`node_modules/@mui/material/IconButton/IconButton.js`):\n * `padding: 8` on the root (medium, the default), `padding: 5` at\n * `size=\"small\"`, `padding: 12` at `size=\"large\"`. The icon's own `fontSize`\n * is already relative (`pxToRem(18/24/28)`) — only `padding` was the gap.\n * - `Chip` (`node_modules/@mui/material/Chip/Chip.js`): `height: 32` on the\n * root (medium, the default), `height: 24` at `size=\"small\"`. The label's\n * own side padding is a SEPARATE slot (`name: 'MuiChip', slot: 'Label'`,\n * override key `label`/`labelSmall`) at `paddingLeft`/`paddingRight: 12`\n * default, `8` at `size=\"small\"` — restated in this package's own\n * `Chip.metrics.ts` (`CHIP_SIZES`), which both renderers already read.\n *\n * Neither dimension moved when `theme.typography.fontSize` changed (they are\n * not written through `pxToRem`), so at `density: 'compact'` an\n * `IconButton`/`Chip` next to a now-smaller `Button` looked unchanged — the\n * visual regression FUT-2764 exists to fix. `rem(theme, px)` is the same\n * helper `Button.styles.ts` already uses, so `padding`/`height` move exactly\n * as far as `theme.typography.fontSize`'s coefficient does, and are\n * geometry-neutral at `density: 'normal'`: `rem(theme, 8)` at the unchanged\n * `fontSize: 14` renders to the same computed px as the literal `8` it\n * replaces.\n *\n * **The OUTLINED chip's own label padding (`11`/`7`, one px tighter than\n * filled's `12`/`8`) is a SEPARATE number this file must not clobber** — a\n * bug an earlier revision of this file had (a `styleOverrides.label`/\n * `labelSmall` of `12`/`8` unconditionally wins for EVERY variant, because\n * `ChipLabel`'s own `overridesResolver` (`Chip.js`) returns\n * `[styles.label, styles[label${size}]]` with no variant check at all, and\n * `@mui/system`'s `createStyled` composes `styleThemeOverrides` AFTER the\n * slot's own base styles/variants — so a theme `styleOverrides.label` always\n * outranks `ChipLabel`'s own baked-in `{ props: { variant: 'outlined' },\n * style: { paddingLeft: 11, ... } }`, at ANY density, not just a scaled one).\n * Fixed by putting the outlined fix on the ROOT slot instead, as a nested\n * `.MuiChip-label` selector inside `styleOverrides.root` itself, keyed on\n * `ownerState.variant`/`.size` — proven correct two ways: (1) a probe render\n * confirmed the naive `components.MuiChip.variants` route CANNOT reach the\n * label slot at all — `createStyled`'s `skipVariantsResolver` defaults to\n * `true` for every slot but `'Root'`, so a theme-level `variants` entry is\n * simply never evaluated for `ChipLabel`, proven by rendering an outlined\n * Chip against a `components.MuiChip.variants` entry set to an absurd\n * `999px` and reading `.MuiChip-label`'s OWN computed style: still `11px`,\n * untouched — while the SAME entry DOES leak onto `.MuiChip-root` (`999px`),\n * confirming theme `variants` is a ROOT-slot-only mechanism for this\n * component; (2) a nested `.MuiChip-label` selector written from the ROOT\n * slot is a HIGHER-specificity rule (two classes, `0,2,0`) than the label's\n * own single-class rule (`0,1,0`), so it wins regardless of source order —\n * the same technique `ChipRoot`'s OWN style already uses for its avatar/\n * icon/delete-icon sub-parts (`& .${chipClasses.avatar}`, etc., in\n * `Chip.js`), and read through the SAME `chipClasses` MUI's own `Chip.js`\n * generates the real DOM class from, not a hand-typed copy of it.\n *\n * **That same higher specificity also outranks a HOST's own theming.** A\n * host writing `theme.components.MuiChip.styleOverrides.label` for its own\n * reasons (`0,1,0`) does not win against the outlined rule here (`0,2,0`) —\n * not a bug specific to this file, `ChipLabel`'s OWN baked-in outlined\n * variant already outranked a plain `styleOverrides.label` the same way,\n * before this file existed. A host that needs to change OUTLINED label\n * padding specifically cannot do it through `styleOverrides.label`/\n * `labelSmall` at all; it reaches it through `sx` (a per-instance override,\n * highest specificity of all) or its OWN `MuiChip.styleOverrides.root`\n * function written out in full — `mergeMuiComponents` replaces `root`\n * WHOLESALE when both sides set it (see `./density.ts`'s own doc comment),\n * so a host adding to it must restate `chipRootHeight`'s own height logic\n * alongside its outlined-label change, not merely add a sibling key.\n *\n * The avatar/icon/delete-icon sub-slots (margins, sizes) and IconButton's\n * `edge=\"start\"`/`\"end\"` negative margins are DELIBERATELY untouched by this\n * file — real override keys exist, but none is in the ticket's Done-when nor\n * exercised by a call site this initiative is chasing, so they stay MUI's\n * own literals at every density (including `compact`/`comfortable` — they do\n * NOT scale here; a future ticket that needs them scaled adds its own\n * override, the way `field-height.ts`'s siblings each own one slot).\n *\n * A host that adopts `iconButtonDensityOverrides`/`chipDensityOverrides`\n * standalone (the `@12-apps/ui/tokens` export, no density channel involved)\n * sees the SAME scaling from its own `typography.fontSize` alone — `rem()`\n * only ever reads that one theme number, so a theme with a non-default\n * `fontSize` (set directly, with no `density` in the picture at all) moves\n * these numbers exactly as it moves everything else written through `rem()`.\n *\n * Each slot below is a MODULE-LEVEL function, not a closure built fresh inside\n * `iconButtonDensityOverrides`/`chipDensityOverrides` — the same reason\n * `field-height.ts`'s `restingEdge` is one: two themes built from the same\n * options (the `muiThemeOptionsFrom` and `densityThemeOptions` paths, in\n * particular) must compare equal, and a fresh arrow function per call would\n * make them differ on nothing but identity.\n */\n\nconst iconButtonRootPadding = ({ theme }: { theme: Theme }): CSSObject => ({ padding: rem(theme, 8) });\nconst iconButtonSmallPadding = ({ theme }: { theme: Theme }): CSSObject => ({ padding: rem(theme, 5) });\nconst iconButtonLargePadding = ({ theme }: { theme: Theme }): CSSObject => ({ padding: rem(theme, 12) });\n\n/** `MuiIconButton`'s own padding, at every size MUI has. */\nexport function iconButtonDensityOverrides(): Components<Theme> {\n return {\n MuiIconButton: {\n styleOverrides: {\n root: iconButtonRootPadding,\n sizeSmall: iconButtonSmallPadding,\n sizeLarge: iconButtonLargePadding,\n },\n },\n };\n}\n\n/** MUI's own outlined-label paddings (`ChipLabel`'s baked-in `variants`, `Chip.js`). */\nconst CHIP_OUTLINED_LABEL_PADDING = { medium: 11, small: 7 } as const;\n\nconst chipRootHeight = ({\n theme,\n ownerState,\n}: {\n theme: Theme;\n ownerState?: ChipOwnerStateForOverrides;\n}): CSSObject => {\n const style: CSSObject = { height: rem(theme, 32) };\n if (ownerState?.variant === 'outlined') {\n const px = CHIP_OUTLINED_LABEL_PADDING[ownerState.size === 'small' ? 'small' : 'medium'];\n // Higher CSS specificity than `.MuiChip-label`'s own single-class rule\n // (two classes vs one) — wins over `chipLabelPadding`/`chipLabelSmallPadding`\n // below regardless of stylesheet insertion order. See the module doc\n // comment for why this must live here and not on the label slot itself.\n // `chipClasses.label`, not a hand-typed `.MuiChip-label` string — the same\n // module `Chip.js`'s own root style reads for its avatar/icon/delete-icon\n // selectors, so this tracks whatever `Chip.js` itself puts on the label\n // element rather than a separately-maintained copy of it. A host that\n // calls `ClassNameGenerator.configure` before any `MuiChip` module loads\n // renames the real class; a literal string would silently stop matching\n // it, `chipClasses.label` cannot.\n style[`& .${chipClasses.label}`] = { paddingLeft: rem(theme, px), paddingRight: rem(theme, px) };\n }\n return style;\n};\nconst chipSmallHeight = ({ theme }: { theme: Theme }): CSSObject => ({ height: rem(theme, 24) });\nconst chipLabelPadding = ({ theme }: { theme: Theme }): CSSObject => ({\n paddingLeft: rem(theme, 12),\n paddingRight: rem(theme, 12),\n});\nconst chipLabelSmallPadding = ({ theme }: { theme: Theme }): CSSObject => ({\n paddingLeft: rem(theme, 8),\n paddingRight: rem(theme, 8),\n});\n\n/** `MuiChip`'s own height (root) and label side padding (label), at both sizes MUI has. */\nexport function chipDensityOverrides(): Components<Theme> {\n return {\n MuiChip: {\n styleOverrides: {\n root: chipRootHeight,\n sizeSmall: chipSmallHeight,\n label: chipLabelPadding,\n labelSmall: chipLabelSmallPadding,\n },\n },\n };\n}\n\n/**\n * CHECKBOX / RADIO / SWITCH GEOMETRY, DENSITY-AWARE (FUT-2767).\n *\n * `Checkbox`/`Radio`/`Switch` are MUI's own components, unwrapped — but\n * **only two of the three `@12-apps/ui` wrappers actually forward their\n * geometry to MUI**, corrected here after an earlier revision of this doc\n * comment claimed all three did.\n *\n * - `Checkbox.tsx`'s `StyledCheckbox` and `RadioGroup.variants.tsx`'s\n * `DefaultRadios` (the ONLY variant rendering a raw `<Radio>` — `cards`/\n * `buttons`/`segments` draw custom controls, outside this ticket) set NO\n * `padding` of their own, so `checkboxRadioDensityOverrides()` reaches\n * both directly — confirmed by a real render, same computed padding as\n * raw `MuiCheckbox`/`MuiRadio` at both densities\n * (`density-overrides.test.stories.tsx`'s `ui-checkbox`/`ui-radio-group`).\n * - `Switch.styles.ts`'s `switchSx` is DIFFERENT: it draws root/switchBase/\n * thumb geometry itself, per instance, from its own `SWITCH_SIZES` table\n * (`Switch.metrics.ts`), every number already through `rem(theme, px)`.\n * `Switch.parts.tsx`'s `StyledSwitch = styled(MuiSwitch, {...})(...)`\n * composes these as an OUTER wrapper class whose nested `& .MuiSwitch-\n * switchBase`/`& .MuiSwitch-thumb` selectors are a TWO-class compound —\n * higher specificity than this file's `MuiSwitch.styleOverrides.\n * switchBase`/`thumb`, which compose onto a single-class generated class.\n * `switchDensityOverrides()` therefore has **NO effect on `@12-apps/ui`'s\n * own `<Switch>`** — it only reaches a raw `@mui/material/Switch` consumer\n * (a host's own `Table.tsx` density-toggle column, say). Not a gap:\n * `switchSx` already reacts to `theme.typography.fontSize` on its own —\n * including the CHECKED thumb's own travel distance, computed as\n * `rem(theme, width - thumbSize - padding * 2)` from the SAME per-instance\n * geometry, so it moves consistently with no help from this file.\n * Confirmed by measurement, both sizes, both states, both densities\n * (`ui-switch-*` cases); documented at `Switch.md`'s \"Density\" section.\n *\n * **The ticket's open question — does a `MuiSwitchBase` theme override reach\n * `Checkbox`/`Radio` at all? — is NO, verified two ways.** `Checkbox`/`Radio`\n * both render through `internal/SwitchBase.js`'s `SwitchBaseRoot`, which is\n * `styled(ButtonBase, { name: 'MuiSwitchBase' })({ padding: 9, ... })` — with\n * NO `slot` key. `@mui/system`'s `createStyled.js` computes\n * `overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(slot))`,\n * and `defaultOverridesResolver` (`if (!slot) return null`) returns `null`\n * for an absent slot; the styled call itself then only pushes its\n * `styleThemeOverrides` expression `if (componentName && overridesResolver)`\n * — `null` is falsy, so for THIS styled call `theme.components.MuiSwitchBase\n * .styleOverrides` is never read at all. (`variants` is a SEPARATE check,\n * gated on `skipVariantsResolver` rather than `overridesResolver`, which is\n * why the ticket's own two-part specificity proof for Chip's label — probing\n * with `variants` — does not transfer here; `styleOverrides` is what dies.)\n * A render-level probe confirms it: a theme with `components.MuiSwitchBase\n * .styleOverrides.root = { padding: '999px' }`, rendering `<Switch />`,\n * `<Checkbox />` and `<Radio />` through it, leaves EVERY ONE of `.MuiSwitch-\n * switchBase`, `.MuiCheckbox-root` and `.MuiRadio-root` at their unthemed\n * padding (`9px`/`4px` — see below), never `999px`. The Decision's own\n * suggested `MuiSwitchBase` route is therefore the ticket's documented\n * fallback in disguise: this file skips straight to duplicating the override\n * under `MuiCheckbox` and `MuiRadio`, each independently confirmed LIVE by\n * the same probe (`components.MuiCheckbox.styleOverrides.root.padding` DOES\n * reach `.MuiCheckbox-root`, and the same for `MuiRadio`).\n *\n * - `Checkbox`/`Radio` (`internal/SwitchBase.js`, `Checkbox.js`, `Radio.js`):\n * `padding: 9` — constant across `size=\"small\"`/`\"medium\"` today (neither\n * `CheckboxRoot` nor `RadioRoot` carries a size-conditional padding rule),\n * so ONE `root` override, no `sizeSmall`/`sizeMedium` split, covers both\n * sizes without disturbing the glyph-driven size difference FUT-2585 left\n * alone.\n * - `Switch` (`Switch.js`): root (the track) `width: 34+12*2`, `height:\n * 14+12*2`, `padding: 12` (medium); `switchBase` (the thumb's absolutely-\n * positioned wrapper) — its OWN literal is NOT the `12` the ticket's\n * Decision sketch names (that `12` is `SwitchRoot`'s own padding, a\n * DIFFERENT slot); `switchBase` inherits `internal/SwitchBase.js`'s generic\n * `padding: 9` unmodified at medium (`SwitchSwitchBase`'s own styles never\n * set `padding`), confirmed by the same render probe with NO theme\n * override at all (`.MuiSwitch-switchBase` computed padding: `9px`). This\n * file overrides `MuiSwitch.styleOverrides.switchBase` (a LIVE key —\n * `SwitchSwitchBase = styled(SwitchBase, { name: 'MuiSwitch', slot:\n * 'SwitchBase', ... })` DOES pass a `slot`) with `rem(theme, 9)`, the\n * MEASURED default, not the ticket's `12` — using `12` here would move\n * today's real 9px to 12px at `density: 'normal'`, failing the Done-when's\n * own pixel-identical requirement, so the number is corrected against the\n * probe rather than the sketch. `thumb`: `20×20`, unconditional.\n * - `Switch` `size=\"small\"` (`:82-100`, a `variants` entry on `SwitchRoot`\n * itself): root `width: 40`, `height: 24`, `padding: 7`; a NESTED `&\n * .${switchClasses.switchBase}` selector sets `padding: 4` (not 9); a\n * NESTED `& .${switchClasses.thumb}` selector sets `20×20` down to\n * `16×16`. Both nested rules are baked into `SwitchRoot`'s OWN generated\n * class at TWO-class specificity (the size-small instance's unique class,\n * plus `.MuiSwitch-switchBase`/`.MuiSwitch-thumb`) — exactly the Chip\n * outlined-label shape this file already has above, and the SAME failure\n * mode Lesson 1 warns about: a FLAT `styleOverrides.switchBase`/`thumb`\n * (one class) cannot out-specificity it, so at `size=\"small\"` it would\n * silently keep rendering MUI's unthemed `4px`/`16×16` at every density,\n * the click target and thumb staying full-size while the track around them\n * shrank. Fixed the same way: `sizeSmall`'s OWN nested `& .${switchClasses\n * .switchBase}` / `& .${switchClasses.thumb}` rules, read through\n * `switchClasses` (not a hand-typed selector string) for the same\n * `ClassNameGenerator.configure` reason `chipClasses` is above, inserted\n * as part of the SAME `sizeSmall` override object so they land AFTER\n * `SwitchRoot`'s own baked-in small variant in the generated class's CSS\n * text (later wins at matching two-class specificity) rather than trying\n * to out-specificity it from a different slot.\n *\n * **The checked thumb's own travel distance is a FOURTH literal, found only\n * on adversarial review of the PR this doc comment first shipped in.**\n * `SwitchSwitchBase`'s base style bakes in `&.Mui-checked { transform:\n * translateX(20px) }` (medium), and `SwitchRoot`'s `size: 'small'` variant\n * nests the same at `16px` — both bare, never run through `pxToRem`, so at\n * `density: 'compact'` the checked thumb kept travelling the FULL, unscaled\n * distance while the track around it shrank ×0.9 — a visible overshoot.\n * `switchSwitchBasePadding`/`switchSizeSmall` each now carry their own\n * `&.${switchClasses.checked}` rule (`translateX(rem(theme, 20))`/`rem(theme,\n * 16)`), composed onto the SAME generated class, in the SAME position\n * `padding` already occupies — so it wins by the identical mechanism, not a\n * new one. Proven at the pixel level, both sizes/densities: `switch-md-\n * checked`/`switch-sm-checked` measure the thumb's final position against\n * the track's own edge, not just the transform string.\n *\n * At `density: 'normal'` every number above computes back to the literal it\n * replaces (`rem(theme, 9)` is `0.5625rem`, `9px` at the 16px root — no\n * visible change), the same geometry-neutral guarantee `iconButtonDensity\n * Overrides`/`chipDensityOverrides` give above. The same non-default-\n * `fontSize` caveat those two give applies here unchanged: `rem()` only ever\n * reads `theme.typography.fontSize`, so a host adopting\n * `checkboxRadioDensityOverrides`/`switchDensityOverrides` standalone moves\n * every number here by that one coefficient, same as everything else `rem()`\n * touches.\n */\n\nconst checkboxRadioRootPadding = ({ theme }: { theme: Theme }): CSSObject => ({ padding: rem(theme, 9) });\n\n/**\n * `MuiCheckbox`/`MuiRadio`'s own padding — duplicated under both component\n * keys, the ticket's own documented fallback, since `MuiSwitchBase` cannot\n * reach either (see the module doc comment above). One module-level function\n * shared by both keys, and by `checkboxRadioDensityOverrides()`'s own two\n * calls across the two theme-build paths, for the same identity reason the\n * rest of this file's slots are module-level.\n */\nexport function checkboxRadioDensityOverrides(): Components<Theme> {\n return {\n MuiCheckbox: { styleOverrides: { root: checkboxRadioRootPadding } },\n MuiRadio: { styleOverrides: { root: checkboxRadioRootPadding } },\n };\n}\n\nconst switchRootGeometry = ({ theme }: { theme: Theme }): CSSObject => ({\n width: rems(theme, 34 + 12 * 2),\n height: rems(theme, 14 + 12 * 2),\n padding: rem(theme, 12),\n});\nconst switchSwitchBasePadding = ({ theme }: { theme: Theme }): CSSObject => ({\n padding: rem(theme, 9),\n // FUT-2767 (adversarial-review fix) — `SwitchSwitchBase`'s OWN base style\n // (`Switch.js`, medium) bakes in `&.Mui-checked { transform:\n // translateX(20px) }`, a bare literal never run through `pxToRem` — at\n // `density: 'compact'` the track/padding/thumb above all shrink ×0.9 but\n // this offset stayed at a full 20px, so the checked thumb overshot the now-\n // smaller track. Composed onto the SAME generated class as that base style,\n // AFTER it (`createStyled` composes `styleThemeOverrides` after a slot's\n // own base/variants — see the module doc comment), so this nested rule\n // wins at the SAME (two-class, `.<hash>.Mui-checked`) specificity, the same\n // mechanism this function's own `padding` line already relies on.\n [`&.${switchClasses.checked}`]: { transform: `translateX(${rem(theme, 20)})` },\n});\nconst switchThumbSize = ({ theme }: { theme: Theme }): CSSObject => ({\n width: rem(theme, 20),\n height: rem(theme, 20),\n});\nconst switchSizeSmall = ({ theme }: { theme: Theme }): CSSObject => ({\n width: rem(theme, 40),\n height: rem(theme, 24),\n padding: rem(theme, 7),\n // Higher (two-class) specificity than the flat `switchBase`/`thumb`\n // overrides above, inserted as part of THIS SAME generated class — see the\n // module doc comment for why a flat override cannot reach these at\n // `size=\"small\"` on its own.\n [`& .${switchClasses.switchBase}`]: {\n padding: rem(theme, 4),\n // Same overshoot as medium's, at `size=\"small\"`'s OWN literal\n // (`SwitchRoot`'s baked-in `size: 'small'` variant, `Switch.js`:\n // `translateX(16px)`). Nested one level deeper so the compiled selector\n // is `.<root-hash> .MuiSwitch-switchBase.Mui-checked` — the same THREE-\n // class descendant compound MUI's own baked-in small variant uses for\n // this rule, composed after it in the same generated class, so it wins\n // at matching specificity the same way the sibling `padding: rem(theme,\n // 4)` line above already does.\n [`&.${switchClasses.checked}`]: { transform: `translateX(${rem(theme, 16)})` },\n },\n [`& .${switchClasses.thumb}`]: { width: rem(theme, 16), height: rem(theme, 16) },\n});\n\n/**\n * `MuiSwitch`'s own track (root), thumb wrapper (switchBase) and thumb\n * (thumb) geometry, at both sizes MUI has.\n */\nexport function switchDensityOverrides(): Components<Theme> {\n return {\n MuiSwitch: {\n styleOverrides: {\n root: switchRootGeometry,\n switchBase: switchSwitchBasePadding,\n thumb: switchThumbSize,\n sizeSmall: switchSizeSmall,\n },\n },\n };\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/provider/mui-bridge.ts"],"sourcesContent":["import type { PaletteColor, Theme, ThemeOptions } from '@mui/material/styles/index.js';\n\nimport { cssLengthToPx, cssTrackingToEm } from '../tokens/css-units';\nimport {\n checkboxRadioDensityOverrides,\n chipDensityOverrides,\n iconButtonDensityOverrides,\n switchDensityOverrides,\n} from '../tokens/density-overrides';\nimport { densityFontSize, resolveDensityFactor } from '../tokens/density';\nimport { resolveFieldHeight } from '../tokens/field-height.core';\nimport { fieldOverrides, mergeMuiComponents } from '../tokens/field-height';\nimport { fieldRadius } from '../tokens/field-radius';\nimport { accentFor } from '../tokens/scales';\nimport {\n FONT_WEIGHTS,\n TYPE_SIZES,\n WEB_FONT_FAMILY,\n WEB_MONOSPACE_FONT_FAMILY,\n type UiHeadingStep,\n type UiPaletteColor,\n type UiTheme,\n} from '../tokens/theme';\nimport { HEADING_LEVELS, headingMetrics, type HeadingLevel } from '../tokens/typography';\n\n/**\n * THE TWO DIRECTIONS BETWEEN MUI'S THEME AND OURS. Web only.\n *\n * `uiThemeFromMui` is how a web component — or a shared style resolver such\n * as `box-layout.ts` — reads the host's MUI theme in the neutral shape the\n * native renderer reads natively. `muiThemeOptionsFrom` is the reverse, for\n * a host that has a `UiTheme` and no MUI theme yet: `UiProvider` on the web is\n * a MUI `ThemeProvider` fed by it.\n *\n * Both are field-by-field on purpose. A spread would carry MUI's extra keys\n * across and the native side would silently depend on one.\n */\n\nconst slot = (color: PaletteColor): UiPaletteColor => ({\n main: color.main,\n light: color.light,\n dark: color.dark,\n contrastText: color.contrastText,\n});\n\nfunction headingSteps(theme: Theme): Record<HeadingLevel, UiHeadingStep> {\n return Object.fromEntries(\n HEADING_LEVELS.map((level) => {\n const metrics = headingMetrics(theme, level);\n return [\n level,\n {\n fontSize: cssLengthToPx(metrics.fontSize, 16),\n lineHeight: metrics.lineHeight,\n letterSpacing: cssTrackingToEm(metrics.letterSpacing),\n normalWeight: metrics.normalWeight,\n },\n ];\n }),\n ) as Record<HeadingLevel, UiHeadingStep>;\n}\n\n/** The host's MUI theme in the shape the native renderer reads. */\nexport function uiThemeFromMui(theme: Theme): UiTheme {\n const { palette } = theme;\n const unit = cssLengthToPx(theme.spacing(1), 8);\n const md = cssLengthToPx(theme.shape.borderRadius, 4);\n\n return {\n mode: palette.mode,\n palette: {\n mode: palette.mode,\n primary: slot(palette.primary),\n secondary: slot(palette.secondary),\n success: slot(palette.success),\n warning: slot(palette.warning),\n info: slot(palette.info),\n danger: slot(palette.error),\n neutral: accentFor(theme, 'neutral'),\n text: {\n primary: palette.text.primary,\n secondary: palette.text.secondary,\n disabled: palette.text.disabled,\n },\n background: { default: palette.background.default, paper: palette.background.paper },\n divider: palette.divider,\n action: {\n active: palette.action.active,\n hover: palette.action.hover,\n selected: palette.action.selected,\n disabled: palette.action.disabled,\n disabledBackground: palette.action.disabledBackground,\n focus: palette.action.focus,\n },\n grey: {\n 50: palette.grey[50],\n 100: palette.grey[100],\n 200: palette.grey[200],\n 300: palette.grey[300],\n 400: palette.grey[400],\n 500: palette.grey[500],\n 600: palette.grey[600],\n 700: palette.grey[700],\n 800: palette.grey[800],\n 900: palette.grey[900],\n },\n },\n spacing: (units: number) => units * unit,\n spacingUnit: unit,\n radius: { sm: md / 2, md, lg: md * 2, xl: md * 4, full: 9999, field: fieldRadius(theme) },\n fieldHeight: resolveFieldHeight(theme.fieldHeight),\n // A bare MUI theme (never built through `createUiTheme`/`muiThemeOptionsFrom`)\n // carries no `theme.density` — read back as `'normal'`, factor `1`.\n density: theme.density ?? resolveDensityFactor(),\n typography: {\n fontFamily: theme.typography.fontFamily ?? WEB_FONT_FAMILY,\n monospaceFontFamily: WEB_MONOSPACE_FONT_FAMILY,\n sizes: TYPE_SIZES,\n weights: FONT_WEIGHTS,\n heading: headingSteps(theme),\n },\n zIndex: {\n appBar: theme.zIndex.appBar,\n drawer: theme.zIndex.drawer,\n modal: theme.zIndex.modal,\n snackbar: theme.zIndex.snackbar,\n tooltip: theme.zIndex.tooltip,\n },\n };\n}\n\n/** A `UiTheme` as the options MUI's `createTheme` builds the same palette from. */\nexport function muiThemeOptionsFrom(ui: UiTheme): ThemeOptions {\n const { palette } = ui;\n return {\n palette: {\n mode: palette.mode,\n primary: { ...palette.primary },\n secondary: { ...palette.secondary },\n success: { ...palette.success },\n warning: { ...palette.warning },\n info: { ...palette.info },\n error: { ...palette.danger },\n text: { ...palette.text },\n background: { ...palette.background },\n divider: palette.divider,\n action: { ...palette.action },\n grey: { ...palette.grey },\n },\n shape: { borderRadius: ui.radius.md },\n fieldRadius: ui.radius.field,\n fieldHeight: ui.fieldHeight,\n // Additive: child 4 (FUT-2768) adds one more source here as its own\n // geometry overrides land — FUT-2766 added IconButton's and Chip's, this\n // PR (FUT-2767) adds Checkbox/Radio's and Switch's.\n components: mergeMuiComponents(\n fieldOverrides(ui.radius.field, ui.fieldHeight),\n iconButtonDensityOverrides(),\n chipDensityOverrides(),\n checkboxRadioDensityOverrides(),\n switchDensityOverrides(),\n ),\n spacing: ui.spacingUnit,\n density: ui.density,\n typography: {\n fontFamily: ui.typography.fontFamily ?? WEB_FONT_FAMILY,\n // MUI multiplies every `pxToRem` size by `fontSize / 14` — the lever a\n // density mode moves (`./tokens/relative.ts`). `htmlFontSize` stays\n // untouched: that is a reader's own zoom/accessibility setting, not this.\n fontSize: densityFontSize(ui.density.factor),\n },\n zIndex: { ...ui.zIndex },\n };\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tokens/density.ts"],"sourcesContent":["import { useTheme } from '@mui/material/styles/index.js';\nimport type { ThemeOptions } from '@mui/material/styles/index.js';\n\nimport {\n densityFieldHeight,\n densityFontSize,\n densitySpacingUnit,\n resolveDensityFactor,\n type DensityLevel,\n type ResolvedDensity,\n} from './density.core';\nimport {\n checkboxRadioDensityOverrides,\n chipDensityOverrides,\n iconButtonDensityOverrides,\n switchDensityOverrides,\n} from './density-overrides';\nimport { fieldOverrides, mergeMuiComponents } from './field-height';\nimport { DEFAULT_FIELD_RADIUS } from './field-radius.core';\n\n/**\n * DENSITY ON THE WEB: the MUI theme channel, the reader, and the standalone\n * entry point for a host that never calls `createUiTheme`/`UiProvider`.\n *\n * The argument for one density knob, the factor table and its precedence are\n * in `./density.core.ts`.\n */\n\nexport {\n DEFAULT_DENSITY,\n DENSITY_FACTOR,\n densityFieldHeight,\n densityFontSize,\n densitySpacingUnit,\n resolveDensityFactor,\n type DensityLevel,\n type ResolvedDensity,\n} from './density.core';\n\ndeclare module '@mui/material/styles' {\n interface Theme {\n /** The density this theme renders at. See `@12-apps/ui/tokens`' `useDensity`. */\n density?: ResolvedDensity;\n }\n interface ThemeOptions {\n /** The density this theme renders at. See `@12-apps/ui/tokens`' `useDensity`. */\n density?: ResolvedDensity;\n }\n}\n\n/**\n * The theme's resolved density — a plain theme read, not a step-shifting\n * resolver (`size` stays hierarchy; see `./density.core.ts`). A `styleOverrides`\n * callback already gets `{ theme }` and can read `theme.density` directly;\n * this is for a component that needs the level in its own render logic\n * (`Table`/`DataGrid`/`DataViews` each read it once to source their own\n * `density` prop's default).\n *\n * Falls back to `resolveDensityFactor()` (`'normal'`, factor `1`) for a bare\n * MUI theme built without `createUiTheme`/`muiThemeOptionsFrom`.\n */\nexport function useDensity(): ResolvedDensity {\n return useTheme().density ?? resolveDensityFactor();\n}\n\n/**\n * The density factor as a MUI `ThemeOptions` fragment, for a host that builds\n * `createTheme()` directly and never calls `createUiTheme`/`UiProvider` — the\n * same precedence `resolveDensityFactor` gives `createUiTheme`, so the two\n * consumption paths agree on `typography`/`spacing`/`fieldHeight`/`components`\n * (FUT-2764's Design section), not just the first two. `fieldHeight` matters\n * on its own: `Input`/`Select`/`Button` each read `theme.fieldHeight` directly\n * (`Input.tsx`, `Select.tsx`, `Button.styles.ts`'s `buttonSize`), so a fragment\n * that carried only `typography`/`spacing` left every field standing at the\n * DEFAULT height (2.5) at every density on this path — the two paths would\n * agree on the type scale and disagree on the one number three components key\n * their own layout off.\n *\n * `components` is the matching MUI-native override (`fieldOverrides`, plus\n * FUT-2766's `iconButtonDensityOverrides`/`chipDensityOverrides` and\n * FUT-2767's `checkboxRadioDensityOverrides`/`switchDensityOverrides`) for a\n * HOST's own bare `TextField`/`Select`/`IconButton`/`Chip`/`Checkbox`/\n * `Radio`/`Switch`, mirroring `muiThemeOptionsFrom`'s own `components:\n * mergeMuiComponents(...)`. It carries ONLY the overrides this function knows\n * about (`MuiOutlinedInput`'s `root`, `input` and `notchedOutline`;\n * `MuiInputLabel`'s `outlined`; `MuiIconButton`'s `root`/`sizeSmall`/\n * `sizeLarge`; `MuiChip`'s `root`/`sizeSmall`/`label`/`labelSmall`;\n * `MuiCheckbox`'s and `MuiRadio`'s `root`; `MuiSwitch`'s\n * `root`/`switchBase`/`thumb`/`sizeSmall`) — a host with ITS OWN overrides for\n * OTHER components merges them in with\n * `mergeMuiComponents(densityThemeOptions(density).components, hostOverrides)`,\n * which keeps a component only ONE side touches untouched. For a component\n * BOTH sides style, the merge is by INNER key (`root`/`input`/…): a key only\n * one side sets survives from that side, but a key BOTH set is replaced\n * WHOLESALE by whichever source is passed LAST — not deep-merged — so a host\n * wanting to ADD to, say, `MuiOutlinedInput`'s `root` alongside the radius\n * override needs to write that one key's object out in full itself.\n *\n * `fieldRadius` (3rd argument, optional) exists because density does NOT touch\n * the field's CORNER — this is only for a host that already draws its OWN,\n * non-default radius and wants `components` to match it instead of clashing;\n * it defaults\n * to the same {@link DEFAULT_FIELD_RADIUS} `createUiTheme` itself falls back\n * to when a host names no `fieldRadius`, so the two paths still agree with no\n * argument passed at all — the existing 2-argument call keeps working\n * unchanged.\n *\n * **Where to spread it — the first `createTheme()` call, not a later layering\n * one.** `createTheme(options, ...args)` (`createThemeNoVars.js`) only runs\n * `createSpacing`/`createTypography` on `options`, the FIRST argument; every\n * later argument is deep-merged onto the theme those two already built, with\n * no such reprocessing. So a host with a base theme and a SECOND, layering\n * `createTheme()` call on top of it — exactly the shape a two-theme host uses,\n * `createTheme(outer, { palette: { ... } })` — must apply density at the\n * FIRST call (where the base itself is built), never spread onto `outer` in\n * the second one:\n *\n * ```ts\n * // RIGHT — density goes into the base's OWN construction. The second,\n * // layering call is unaffected: it never restates spacing/typography/\n * // fieldHeight/components itself, so `theme.spacing`/`pxToRem`/`fieldHeight`\n * // carry over from `base` UNCHANGED, already correctly scaled.\n * const base = createTheme({ palette: { primary: { main }, ... }, ...densityThemeOptions('compact') });\n * const themed = createTheme(base, { palette: { primary: { main: brand } } });\n *\n * // WRONG — a second, layering argument onto an ALREADY-BUILT theme is\n * // deepmerged with no reprocessing: `spacing`/`typography.fontSize` would\n * // overwrite the already-resolved `theme.spacing` function/`pxToRem` ratio\n * // instead of rescaling them.\n * createTheme(outer, { ...densityThemeOptions('compact') });\n * ```\n */\nexport function densityThemeOptions(\n density: DensityLevel | number,\n factors?: Partial<Record<DensityLevel, number>>,\n fieldRadius: number = DEFAULT_FIELD_RADIUS,\n): Pick<ThemeOptions, 'typography' | 'spacing' | 'fieldHeight' | 'components'> {\n const { factor } = resolveDensityFactor(density, factors);\n const fieldHeight = densityFieldHeight(factor);\n return {\n typography: { fontSize: densityFontSize(factor) },\n spacing: densitySpacingUnit(factor),\n fieldHeight,\n components: mergeMuiComponents(\n fieldOverrides(fieldRadius, fieldHeight),\n iconButtonDensityOverrides(),\n chipDensityOverrides(),\n checkboxRadioDensityOverrides(),\n switchDensityOverrides(),\n ),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,gBAAgB;AA6DlB,SAAS,aAA8B;AAC5C,SAAO,SAAS,EAAE,WAAW,qBAAqB;AACpD;AAqEO,SAAS,oBACd,SACA,SACA,cAAsB,sBACuD;AAC7E,QAAM,EAAE,OAAO,IAAI,qBAAqB,SAAS,OAAO;AACxD,QAAM,cAAc,mBAAmB,MAAM;AAC7C,SAAO;AAAA,IACL,YAAY,EAAE,UAAU,gBAAgB,MAAM,EAAE;AAAA,IAChD,SAAS,mBAAmB,MAAM;AAAA,IAClC;AAAA,IACA,YAAY;AAAA,MACV,eAAe,aAAa,WAAW;AAAA,MACvC,2BAA2B;AAAA,MAC3B,qBAAqB;AAAA,MACrB,8BAA8B;AAAA,MAC9B,uBAAuB;AAAA,IACzB;AAAA,EACF;AACF;","names":[]}