@12-apps/ui 6.32.0 → 6.33.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 (309) hide show
  1. package/components-guidelines.md +38 -2
  2. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +6 -6
  3. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +5 -5
  4. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +5 -5
  5. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -3
  6. package/dist/_internal/components/data-display/Carousel/Carousel.js +7 -6
  7. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +3 -2
  8. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +3 -2
  9. package/dist/_internal/components/data-display/Chart/Chart.js +6 -5
  10. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -6
  11. package/dist/_internal/components/data-display/Chart/chart-context.js +4 -3
  12. package/dist/_internal/components/data-display/Chart/chart-internals.js +3 -2
  13. package/dist/_internal/components/data-display/Chart/chart-renderers.js +5 -4
  14. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  15. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +21 -21
  16. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +34 -34
  17. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  18. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +7 -7
  19. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
  20. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +6 -6
  21. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +9 -9
  22. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +4 -4
  23. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +20 -20
  24. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +8 -8
  25. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +1 -1
  26. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +1 -1
  27. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +3 -3
  28. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +10 -10
  29. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +2 -2
  30. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  31. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  32. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +8 -8
  33. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +4 -4
  34. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +15 -14
  35. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +3 -3
  36. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  37. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
  38. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
  39. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
  40. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
  41. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
  42. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  43. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +3 -3
  44. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  45. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +2 -1
  46. package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -3
  47. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +3 -2
  48. package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
  49. package/dist/_internal/components/data-display/Table/Table.js +2 -2
  50. package/dist/_internal/components/data-display/index.js +43 -42
  51. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +2 -2
  52. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  53. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +2 -2
  54. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  55. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +2 -2
  56. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +2 -2
  57. package/dist/_internal/components/feedback/index.js +12 -12
  58. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
  59. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +5 -5
  60. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +2 -2
  61. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +2 -2
  62. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +4 -4
  63. package/dist/_internal/components/form/Command/Command.js +5 -4
  64. package/dist/_internal/components/form/Command/Command.styles.js +3 -2
  65. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +3 -3
  66. package/dist/_internal/components/form/Label/Label.js +4 -3
  67. package/dist/_internal/components/form/Label/Label.styles.js +3 -2
  68. package/dist/_internal/components/form/Menubar/Menubar.item.js +4 -3
  69. package/dist/_internal/components/form/Menubar/Menubar.js +6 -5
  70. package/dist/_internal/components/form/Menubar/Menubar.styles.js +3 -2
  71. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +5 -4
  72. package/dist/_internal/components/form/PhoneInput/PhoneInput.hooks.js +2 -2
  73. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +3 -3
  74. package/dist/_internal/components/form/index.js +24 -23
  75. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +5 -5
  76. package/dist/_internal/components/form/total-form/Fields/index.js +9 -9
  77. package/dist/_internal/components/index.js +87 -86
  78. package/dist/_internal/components/layout/Box/Box.js +5 -4
  79. package/dist/_internal/components/layout/Skeleton/Skeleton.js +2 -2
  80. package/dist/_internal/components/layout/Stack/Stack.js +6 -5
  81. package/dist/_internal/components/layout/index.js +5 -5
  82. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +7 -6
  83. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +3 -2
  84. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +2 -2
  85. package/dist/_internal/components/navigation/index.js +10 -9
  86. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +2 -2
  87. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
  88. package/dist/_internal/components/utility/index.js +4 -4
  89. package/dist/_internal/icons/Icon.js +5 -4
  90. package/dist/_internal/provider/UiProvider.js +4 -3
  91. package/dist/_internal/provider/mui-bridge.js +3 -2
  92. package/dist/_internal/provider/use-ui-theme.js +4 -3
  93. package/dist/_internal/tokens/relative.js +16 -0
  94. package/dist/_internal/tokens/relative.js.map +1 -0
  95. package/dist/charts.js +7 -6
  96. package/dist/{chunk-WQSL6MCA.js → chunk-23FCBIUN.js} +4 -4
  97. package/dist/{chunk-HTZYFGYE.js → chunk-25R3ITGZ.js} +5 -5
  98. package/dist/{chunk-HZXCTLNI.js → chunk-3IYB3XY2.js} +2 -2
  99. package/dist/{chunk-EIGELK2H.js → chunk-3P4THDBM.js} +4 -4
  100. package/dist/{chunk-SJIBPRPB.js → chunk-3T2I6BYA.js} +4 -4
  101. package/dist/{chunk-OP6F3NXX.js → chunk-4IVOHL32.js} +2 -2
  102. package/dist/{chunk-NFLY5JMP.js → chunk-4LMY5I5E.js} +2 -2
  103. package/dist/{chunk-ZOUWHGV3.js → chunk-4MGFUPQT.js} +4 -4
  104. package/dist/{chunk-2W4GTZDP.js → chunk-4V7FNB7R.js} +2 -2
  105. package/dist/{chunk-A2QZXV2K.js → chunk-4YMIQ5DM.js} +2 -2
  106. package/dist/{chunk-YCNKH5P6.js → chunk-56MKBXSH.js} +3 -3
  107. package/dist/{chunk-MSXNA3UH.js → chunk-57C636A6.js} +3 -3
  108. package/dist/{chunk-KG4VNCNO.js → chunk-5SCZZFZR.js} +4 -4
  109. package/dist/{chunk-OOGKAFBU.js → chunk-6ANWFGLL.js} +4 -4
  110. package/dist/{chunk-BM4LH7VQ.js → chunk-7N4V3ARN.js} +4 -4
  111. package/dist/{chunk-YD77RANW.js → chunk-7VN7LFBA.js} +5 -5
  112. package/dist/{chunk-VI7YYAXV.js → chunk-AJVYJZHI.js} +3 -3
  113. package/dist/{chunk-EZOVSZ5B.js → chunk-ANNDLY3M.js} +4 -4
  114. package/dist/{chunk-PXH24VIP.js → chunk-B6IURHSZ.js} +4 -4
  115. package/dist/{chunk-TCLBB7U4.js → chunk-BM4CGQED.js} +3 -3
  116. package/dist/{chunk-JAYWTSXX.js → chunk-C423YJGN.js} +7 -7
  117. package/dist/{chunk-E6D2Y5EK.js → chunk-CMN26J5Y.js} +2 -2
  118. package/dist/{chunk-RP3W6IQO.js → chunk-CPNSVIIB.js} +5 -5
  119. package/dist/{chunk-O4C5LUTJ.js → chunk-EDJDASXE.js} +4 -4
  120. package/dist/{chunk-ENUWZ3HW.js → chunk-EEAQBPOW.js} +2 -2
  121. package/dist/{chunk-R2I3LUUH.js → chunk-FTCCYWF4.js} +2 -2
  122. package/dist/{chunk-IYSQRTIX.js → chunk-G73SDZ3T.js} +2 -2
  123. package/dist/{chunk-YZKA7UJK.js → chunk-GCWF5AQE.js} +2 -2
  124. package/dist/{chunk-X4GALW6I.js → chunk-GJKBWVU2.js} +2 -2
  125. package/dist/{chunk-WROCSDVL.js → chunk-GSFNH4C5.js} +5 -5
  126. package/dist/{chunk-AZUFGKMQ.js → chunk-HJOABXKN.js} +4 -4
  127. package/dist/{chunk-3AOOI2NR.js → chunk-HR7YTBR7.js} +4 -4
  128. package/dist/{chunk-56S7A2XT.js → chunk-IFAEKIT2.js} +5 -5
  129. package/dist/{chunk-MGP5LLEK.js → chunk-IGO5DC7D.js} +4 -4
  130. package/dist/{chunk-NLBIG5LU.js → chunk-IZBDSPTW.js} +2 -2
  131. package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
  132. package/dist/{chunk-Q2GZMDZL.js → chunk-JO5GSRYQ.js} +3 -3
  133. package/dist/{chunk-DZXN3QCX.js → chunk-JRHZZTVV.js} +5 -5
  134. package/dist/{chunk-DVEYD27F.js → chunk-JXNT5TUP.js} +2 -2
  135. package/dist/{chunk-M7HX3HKW.js → chunk-K2XK45HG.js} +6 -6
  136. package/dist/{chunk-C6R4LVUX.js → chunk-KBOTNPYL.js} +2 -2
  137. package/dist/{chunk-2DJIS2WQ.js → chunk-KCBAPMLH.js} +2 -2
  138. package/dist/{chunk-HQZRWOSS.js → chunk-KJHQYPKT.js} +2 -2
  139. package/dist/{chunk-DAQ2ZDU2.js → chunk-LE7IHEU4.js} +2 -2
  140. package/dist/{chunk-3Z23QTCP.js → chunk-LLR42S6B.js} +5 -5
  141. package/dist/{chunk-7MM2I34E.js → chunk-LVRH5CGR.js} +3 -3
  142. package/dist/{chunk-B4BU5CS6.js → chunk-LZHXF66R.js} +2 -2
  143. package/dist/{chunk-C5WSPGMP.js → chunk-MDR4WJOV.js} +2 -2
  144. package/dist/{chunk-U3ON6YW3.js → chunk-NNAACCN2.js} +2 -2
  145. package/dist/{chunk-5KZR3RXL.js → chunk-OFVYNUYV.js} +2 -2
  146. package/dist/{chunk-BUXSHLQM.js → chunk-PCRKQ2M7.js} +3 -3
  147. package/dist/{chunk-DDTPMZOB.js → chunk-PI5G6N6Q.js} +3 -3
  148. package/dist/{chunk-IGAXQRRZ.js → chunk-PLEZDLVU.js} +2 -2
  149. package/dist/{chunk-XY6KOMRN.js → chunk-PPTF5X7K.js} +6 -6
  150. package/dist/{chunk-XO27IMBE.js → chunk-QWCMLOYC.js} +2 -2
  151. package/dist/{chunk-NBBFFPTA.js → chunk-R2G4MVPY.js} +2 -2
  152. package/dist/{chunk-6ZZNV2PA.js → chunk-R5XB2SCN.js} +2 -2
  153. package/dist/{chunk-KCFCEWF7.js → chunk-RJXRZW66.js} +2 -2
  154. package/dist/{chunk-3CN2GBIK.js → chunk-RPMAWM6F.js} +2 -2
  155. package/dist/{chunk-HEVST4CS.js → chunk-SGGDMTKP.js} +2 -2
  156. package/dist/{chunk-4D7YIU34.js → chunk-THM3HCMU.js} +7 -7
  157. package/dist/{chunk-H4NWU2ZN.js → chunk-TK36COCP.js} +2 -2
  158. package/dist/{chunk-5NH24MF5.js → chunk-TUYN6XZI.js} +5 -5
  159. package/dist/{chunk-BGYLL467.js → chunk-TXHJX2NG.js} +4 -4
  160. package/dist/{chunk-X4HGBK4G.js → chunk-U7Q2Y6WG.js} +2 -2
  161. package/dist/{chunk-GSWDQ3ZX.js → chunk-UMQN3BVV.js} +2 -2
  162. package/dist/{chunk-3NA7AO6H.js → chunk-URWNRC2P.js} +5 -5
  163. package/dist/{chunk-AZ2KKHID.js → chunk-VF2XC76U.js} +2 -2
  164. package/dist/{chunk-T5MOGJ56.js → chunk-VQBINZB7.js} +2 -2
  165. package/dist/{chunk-V3WWNKHU.js → chunk-W7HSGZGW.js} +6 -6
  166. package/dist/{chunk-T53L42XW.js → chunk-WJH743NG.js} +8 -8
  167. package/dist/{chunk-7NFRTAEU.js → chunk-X2QLWUND.js} +2 -2
  168. package/dist/{chunk-3DO5MFXA.js → chunk-XCP5L665.js} +1 -1
  169. package/dist/chunk-XCP5L665.js.map +1 -0
  170. package/dist/{chunk-TN55JKIU.js → chunk-XI2BXMBX.js} +2 -2
  171. package/dist/{chunk-TTW4MAOJ.js → chunk-XPOQZI5X.js} +4 -4
  172. package/dist/{chunk-H3TNIGMI.js → chunk-XYXTEGIM.js} +2 -2
  173. package/dist/{chunk-5U4SJ2DA.js → chunk-Y6JDIPV7.js} +4 -4
  174. package/dist/{chunk-D6HDJVQW.js → chunk-YANLN6HP.js} +5 -5
  175. package/dist/{chunk-GLWW2XCP.js → chunk-YJ4HM25H.js} +2 -2
  176. package/dist/chunk-YKCAJ2TN.js +47 -0
  177. package/dist/chunk-YKCAJ2TN.js.map +1 -0
  178. package/dist/{chunk-2UYR2OOE.js → chunk-YRUCIKPO.js} +4 -4
  179. package/dist/{chunk-5SBJO37T.js → chunk-ZA4U5GDU.js} +3 -3
  180. package/dist/{chunk-XM6WEANW.js → chunk-ZNJ4RLZT.js} +4 -4
  181. package/dist/data-display/AsyncStateContainer.js +6 -6
  182. package/dist/data-display/CardKit.js +10 -10
  183. package/dist/data-display/Carousel.js +7 -6
  184. package/dist/data-display/Chart.js +7 -6
  185. package/dist/data-display/DataGrid.js +2 -2
  186. package/dist/data-display/DataViews.js +37 -37
  187. package/dist/data-display/EmptyState.js +2 -2
  188. package/dist/data-display/FleetMap.js +15 -14
  189. package/dist/data-display/InteractiveTooltip.js +2 -2
  190. package/dist/data-display/LazyImage.js +3 -3
  191. package/dist/data-display/Lightbox.js +5 -5
  192. package/dist/data-display/LoadingState.js +3 -3
  193. package/dist/data-display/MapPreview.js +3 -3
  194. package/dist/data-display/SectionOnboarding.js +3 -3
  195. package/dist/data-display/Sheet.js +4 -3
  196. package/dist/data-display/StatCard.js +3 -3
  197. package/dist/data-display/Table.js +2 -2
  198. package/dist/feedback/ConfirmAction.js +6 -6
  199. package/dist/feedback/Dialog.js +2 -2
  200. package/dist/feedback/NotificationStatusNotice.js +2 -2
  201. package/dist/feedback/StackedModal.js +2 -2
  202. package/dist/form/AddressAutocomplete.js +5 -5
  203. package/dist/form/CategorySelect.js +4 -4
  204. package/dist/form/Command.js +5 -4
  205. package/dist/form/DateRangePicker.js +5 -5
  206. package/dist/form/Label.js +4 -3
  207. package/dist/form/Menubar.js +6 -5
  208. package/dist/form/PhoneInput.js +3 -3
  209. package/dist/form/total-form.js +10 -10
  210. package/dist/icons.js +5 -4
  211. package/dist/layout/Box.js +5 -4
  212. package/dist/layout/ContentToolbar.js +3 -3
  213. package/dist/layout/Skeleton.js +2 -2
  214. package/dist/layout/Stack.js +6 -5
  215. package/dist/navigation/AppHeader.js +8 -7
  216. package/dist/navigation/CommandPalette.js +2 -2
  217. package/dist/provider.js +5 -4
  218. package/dist/tokens.js +14 -2
  219. package/dist/types/tokens/relative.d.ts +55 -0
  220. package/dist/types/tokens/relative.d.ts.map +1 -0
  221. package/dist/types/tokens/scales.d.ts +1 -0
  222. package/dist/types/tokens/scales.d.ts.map +1 -1
  223. package/dist/utility/InfiniteScroll.js +2 -2
  224. package/dist/utility/InstallPrompt.js +2 -2
  225. package/package.json +1 -1
  226. package/src/tokens/relative.ts +107 -0
  227. package/src/tokens/scales.ts +2 -0
  228. package/dist/chunk-3DO5MFXA.js.map +0 -1
  229. /package/dist/{chunk-WQSL6MCA.js.map → chunk-23FCBIUN.js.map} +0 -0
  230. /package/dist/{chunk-HTZYFGYE.js.map → chunk-25R3ITGZ.js.map} +0 -0
  231. /package/dist/{chunk-HZXCTLNI.js.map → chunk-3IYB3XY2.js.map} +0 -0
  232. /package/dist/{chunk-EIGELK2H.js.map → chunk-3P4THDBM.js.map} +0 -0
  233. /package/dist/{chunk-SJIBPRPB.js.map → chunk-3T2I6BYA.js.map} +0 -0
  234. /package/dist/{chunk-OP6F3NXX.js.map → chunk-4IVOHL32.js.map} +0 -0
  235. /package/dist/{chunk-NFLY5JMP.js.map → chunk-4LMY5I5E.js.map} +0 -0
  236. /package/dist/{chunk-ZOUWHGV3.js.map → chunk-4MGFUPQT.js.map} +0 -0
  237. /package/dist/{chunk-2W4GTZDP.js.map → chunk-4V7FNB7R.js.map} +0 -0
  238. /package/dist/{chunk-A2QZXV2K.js.map → chunk-4YMIQ5DM.js.map} +0 -0
  239. /package/dist/{chunk-YCNKH5P6.js.map → chunk-56MKBXSH.js.map} +0 -0
  240. /package/dist/{chunk-MSXNA3UH.js.map → chunk-57C636A6.js.map} +0 -0
  241. /package/dist/{chunk-KG4VNCNO.js.map → chunk-5SCZZFZR.js.map} +0 -0
  242. /package/dist/{chunk-OOGKAFBU.js.map → chunk-6ANWFGLL.js.map} +0 -0
  243. /package/dist/{chunk-BM4LH7VQ.js.map → chunk-7N4V3ARN.js.map} +0 -0
  244. /package/dist/{chunk-YD77RANW.js.map → chunk-7VN7LFBA.js.map} +0 -0
  245. /package/dist/{chunk-VI7YYAXV.js.map → chunk-AJVYJZHI.js.map} +0 -0
  246. /package/dist/{chunk-EZOVSZ5B.js.map → chunk-ANNDLY3M.js.map} +0 -0
  247. /package/dist/{chunk-PXH24VIP.js.map → chunk-B6IURHSZ.js.map} +0 -0
  248. /package/dist/{chunk-TCLBB7U4.js.map → chunk-BM4CGQED.js.map} +0 -0
  249. /package/dist/{chunk-JAYWTSXX.js.map → chunk-C423YJGN.js.map} +0 -0
  250. /package/dist/{chunk-E6D2Y5EK.js.map → chunk-CMN26J5Y.js.map} +0 -0
  251. /package/dist/{chunk-RP3W6IQO.js.map → chunk-CPNSVIIB.js.map} +0 -0
  252. /package/dist/{chunk-O4C5LUTJ.js.map → chunk-EDJDASXE.js.map} +0 -0
  253. /package/dist/{chunk-ENUWZ3HW.js.map → chunk-EEAQBPOW.js.map} +0 -0
  254. /package/dist/{chunk-R2I3LUUH.js.map → chunk-FTCCYWF4.js.map} +0 -0
  255. /package/dist/{chunk-IYSQRTIX.js.map → chunk-G73SDZ3T.js.map} +0 -0
  256. /package/dist/{chunk-YZKA7UJK.js.map → chunk-GCWF5AQE.js.map} +0 -0
  257. /package/dist/{chunk-X4GALW6I.js.map → chunk-GJKBWVU2.js.map} +0 -0
  258. /package/dist/{chunk-WROCSDVL.js.map → chunk-GSFNH4C5.js.map} +0 -0
  259. /package/dist/{chunk-AZUFGKMQ.js.map → chunk-HJOABXKN.js.map} +0 -0
  260. /package/dist/{chunk-3AOOI2NR.js.map → chunk-HR7YTBR7.js.map} +0 -0
  261. /package/dist/{chunk-56S7A2XT.js.map → chunk-IFAEKIT2.js.map} +0 -0
  262. /package/dist/{chunk-MGP5LLEK.js.map → chunk-IGO5DC7D.js.map} +0 -0
  263. /package/dist/{chunk-NLBIG5LU.js.map → chunk-IZBDSPTW.js.map} +0 -0
  264. /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
  265. /package/dist/{chunk-Q2GZMDZL.js.map → chunk-JO5GSRYQ.js.map} +0 -0
  266. /package/dist/{chunk-DZXN3QCX.js.map → chunk-JRHZZTVV.js.map} +0 -0
  267. /package/dist/{chunk-DVEYD27F.js.map → chunk-JXNT5TUP.js.map} +0 -0
  268. /package/dist/{chunk-M7HX3HKW.js.map → chunk-K2XK45HG.js.map} +0 -0
  269. /package/dist/{chunk-C6R4LVUX.js.map → chunk-KBOTNPYL.js.map} +0 -0
  270. /package/dist/{chunk-2DJIS2WQ.js.map → chunk-KCBAPMLH.js.map} +0 -0
  271. /package/dist/{chunk-HQZRWOSS.js.map → chunk-KJHQYPKT.js.map} +0 -0
  272. /package/dist/{chunk-DAQ2ZDU2.js.map → chunk-LE7IHEU4.js.map} +0 -0
  273. /package/dist/{chunk-3Z23QTCP.js.map → chunk-LLR42S6B.js.map} +0 -0
  274. /package/dist/{chunk-7MM2I34E.js.map → chunk-LVRH5CGR.js.map} +0 -0
  275. /package/dist/{chunk-B4BU5CS6.js.map → chunk-LZHXF66R.js.map} +0 -0
  276. /package/dist/{chunk-C5WSPGMP.js.map → chunk-MDR4WJOV.js.map} +0 -0
  277. /package/dist/{chunk-U3ON6YW3.js.map → chunk-NNAACCN2.js.map} +0 -0
  278. /package/dist/{chunk-5KZR3RXL.js.map → chunk-OFVYNUYV.js.map} +0 -0
  279. /package/dist/{chunk-BUXSHLQM.js.map → chunk-PCRKQ2M7.js.map} +0 -0
  280. /package/dist/{chunk-DDTPMZOB.js.map → chunk-PI5G6N6Q.js.map} +0 -0
  281. /package/dist/{chunk-IGAXQRRZ.js.map → chunk-PLEZDLVU.js.map} +0 -0
  282. /package/dist/{chunk-XY6KOMRN.js.map → chunk-PPTF5X7K.js.map} +0 -0
  283. /package/dist/{chunk-XO27IMBE.js.map → chunk-QWCMLOYC.js.map} +0 -0
  284. /package/dist/{chunk-NBBFFPTA.js.map → chunk-R2G4MVPY.js.map} +0 -0
  285. /package/dist/{chunk-6ZZNV2PA.js.map → chunk-R5XB2SCN.js.map} +0 -0
  286. /package/dist/{chunk-KCFCEWF7.js.map → chunk-RJXRZW66.js.map} +0 -0
  287. /package/dist/{chunk-3CN2GBIK.js.map → chunk-RPMAWM6F.js.map} +0 -0
  288. /package/dist/{chunk-HEVST4CS.js.map → chunk-SGGDMTKP.js.map} +0 -0
  289. /package/dist/{chunk-4D7YIU34.js.map → chunk-THM3HCMU.js.map} +0 -0
  290. /package/dist/{chunk-H4NWU2ZN.js.map → chunk-TK36COCP.js.map} +0 -0
  291. /package/dist/{chunk-5NH24MF5.js.map → chunk-TUYN6XZI.js.map} +0 -0
  292. /package/dist/{chunk-BGYLL467.js.map → chunk-TXHJX2NG.js.map} +0 -0
  293. /package/dist/{chunk-X4HGBK4G.js.map → chunk-U7Q2Y6WG.js.map} +0 -0
  294. /package/dist/{chunk-GSWDQ3ZX.js.map → chunk-UMQN3BVV.js.map} +0 -0
  295. /package/dist/{chunk-3NA7AO6H.js.map → chunk-URWNRC2P.js.map} +0 -0
  296. /package/dist/{chunk-AZ2KKHID.js.map → chunk-VF2XC76U.js.map} +0 -0
  297. /package/dist/{chunk-T5MOGJ56.js.map → chunk-VQBINZB7.js.map} +0 -0
  298. /package/dist/{chunk-V3WWNKHU.js.map → chunk-W7HSGZGW.js.map} +0 -0
  299. /package/dist/{chunk-T53L42XW.js.map → chunk-WJH743NG.js.map} +0 -0
  300. /package/dist/{chunk-7NFRTAEU.js.map → chunk-X2QLWUND.js.map} +0 -0
  301. /package/dist/{chunk-TN55JKIU.js.map → chunk-XI2BXMBX.js.map} +0 -0
  302. /package/dist/{chunk-TTW4MAOJ.js.map → chunk-XPOQZI5X.js.map} +0 -0
  303. /package/dist/{chunk-H3TNIGMI.js.map → chunk-XYXTEGIM.js.map} +0 -0
  304. /package/dist/{chunk-5U4SJ2DA.js.map → chunk-Y6JDIPV7.js.map} +0 -0
  305. /package/dist/{chunk-D6HDJVQW.js.map → chunk-YANLN6HP.js.map} +0 -0
  306. /package/dist/{chunk-GLWW2XCP.js.map → chunk-YJ4HM25H.js.map} +0 -0
  307. /package/dist/{chunk-2UYR2OOE.js.map → chunk-YRUCIKPO.js.map} +0 -0
  308. /package/dist/{chunk-5SBJO37T.js.map → chunk-ZA4U5GDU.js.map} +0 -0
  309. /package/dist/{chunk-XM6WEANW.js.map → chunk-ZNJ4RLZT.js.map} +0 -0
@@ -2,16 +2,17 @@ import "../chunk-XLUADX33.js";
2
2
  import {
3
3
  Menubar,
4
4
  MenubarGroup
5
- } from "../chunk-TCLBB7U4.js";
6
- import "../chunk-NFLY5JMP.js";
5
+ } from "../chunk-BM4CGQED.js";
6
+ import "../chunk-4LMY5I5E.js";
7
7
  import {
8
8
  MenubarSeparator
9
9
  } from "../chunk-YMGHTZA6.js";
10
- import "../chunk-KCFCEWF7.js";
11
- import "../chunk-HQZRWOSS.js";
10
+ import "../chunk-RJXRZW66.js";
11
+ import "../chunk-KJHQYPKT.js";
12
12
  import "../chunk-42VH7N5L.js";
13
13
  import "../chunk-HPK33ACY.js";
14
- import "../chunk-3DO5MFXA.js";
14
+ import "../chunk-XCP5L665.js";
15
+ import "../chunk-YKCAJ2TN.js";
15
16
  import "../chunk-7ZPUN7TV.js";
16
17
  import "../chunk-PT6TCWIW.js";
17
18
  import "../chunk-CGO452DC.js";
@@ -1,10 +1,10 @@
1
1
  import "../chunk-GQ6WEQCZ.js";
2
2
  import {
3
3
  PhoneInput
4
- } from "../chunk-HEVST4CS.js";
5
- import "../chunk-BGYLL467.js";
6
- import "../chunk-5P6OV64V.js";
4
+ } from "../chunk-SGGDMTKP.js";
5
+ import "../chunk-TXHJX2NG.js";
7
6
  import "../chunk-3JDP5OUR.js";
7
+ import "../chunk-5P6OV64V.js";
8
8
  import "../chunk-CGO452DC.js";
9
9
  import "../chunk-GDN2LUTZ.js";
10
10
  import "../chunk-7FDU3FIN.js";
@@ -1,3 +1,6 @@
1
+ import {
2
+ SubmitButton
3
+ } from "../chunk-JPXG7IFW.js";
1
4
  import {
2
5
  FormErrorSnackbar
3
6
  } from "../chunk-XJUEHG72.js";
@@ -6,10 +9,11 @@ import {
6
9
  } from "../chunk-E6OILRUU.js";
7
10
  import {
8
11
  Fields_exports
9
- } from "../chunk-5NH24MF5.js";
12
+ } from "../chunk-TUYN6XZI.js";
13
+ import "../chunk-2SKNSQCP.js";
10
14
  import {
11
15
  CategoryField
12
- } from "../chunk-DAQ2ZDU2.js";
16
+ } from "../chunk-LE7IHEU4.js";
13
17
  import "../chunk-KAPKMVKR.js";
14
18
  import {
15
19
  TextField
@@ -17,10 +21,6 @@ import {
17
21
  import {
18
22
  SelectField
19
23
  } from "../chunk-65JHGT5F.js";
20
- import "../chunk-2SKNSQCP.js";
21
- import {
22
- SubmitButton
23
- } from "../chunk-JPXG7IFW.js";
24
24
  import {
25
25
  FormContext,
26
26
  useFormContext
@@ -35,21 +35,21 @@ import "../chunk-JXUWWPZR.js";
35
35
  import "../chunk-6XLMTOJ3.js";
36
36
  import "../chunk-5FA5S2YN.js";
37
37
  import "../chunk-N5ZWC6CB.js";
38
- import "../chunk-3NA7AO6H.js";
38
+ import "../chunk-URWNRC2P.js";
39
39
  import "../chunk-LMXWI3DD.js";
40
- import "../chunk-MGP5LLEK.js";
40
+ import "../chunk-IGO5DC7D.js";
41
+ import "../chunk-V6Z4XS3I.js";
41
42
  import "../chunk-NU3EQX2L.js";
42
43
  import "../chunk-MQZDTGGJ.js";
43
44
  import "../chunk-67N6TH6E.js";
45
+ import "../chunk-XHHR6G35.js";
44
46
  import "../chunk-PH5XJGKJ.js";
45
47
  import "../chunk-KMUSTQA6.js";
46
48
  import "../chunk-DMNZD3Q7.js";
47
49
  import "../chunk-LGLHU55A.js";
48
- import "../chunk-V6Z4XS3I.js";
49
50
  import "../chunk-RZVUY2MO.js";
50
51
  import "../chunk-USJPZ5Q7.js";
51
52
  import "../chunk-R2AZOWEZ.js";
52
- import "../chunk-XHHR6G35.js";
53
53
  import "../chunk-PN4HVM43.js";
54
54
  import "../chunk-QYKDY4EI.js";
55
55
  import "../chunk-P3L42CBB.js";
package/dist/icons.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Icon
3
- } from "./chunk-NLBIG5LU.js";
3
+ } from "./chunk-IZBDSPTW.js";
4
4
  import {
5
5
  ICON_NAMES,
6
6
  ICON_PATHS
@@ -10,10 +10,11 @@ import {
10
10
  ICON_SIZES,
11
11
  iconSize
12
12
  } from "./chunk-RTSK5OZT.js";
13
- import "./chunk-H4NWU2ZN.js";
14
- import "./chunk-2DJIS2WQ.js";
13
+ import "./chunk-TK36COCP.js";
14
+ import "./chunk-KCBAPMLH.js";
15
15
  import "./chunk-TYJR4GOF.js";
16
- import "./chunk-3DO5MFXA.js";
16
+ import "./chunk-XCP5L665.js";
17
+ import "./chunk-YKCAJ2TN.js";
17
18
  import "./chunk-7ZPUN7TV.js";
18
19
  import "./chunk-PT6TCWIW.js";
19
20
  import "./chunk-CGO452DC.js";
@@ -1,14 +1,15 @@
1
1
  import {
2
2
  Box
3
- } from "../chunk-YZKA7UJK.js";
3
+ } from "../chunk-GCWF5AQE.js";
4
4
  import {
5
5
  resolveBoxLayout
6
6
  } from "../chunk-7V6ZRQYW.js";
7
7
  import "../chunk-OCUVKI63.js";
8
- import "../chunk-H4NWU2ZN.js";
9
- import "../chunk-2DJIS2WQ.js";
8
+ import "../chunk-TK36COCP.js";
9
+ import "../chunk-KCBAPMLH.js";
10
10
  import "../chunk-TYJR4GOF.js";
11
- import "../chunk-3DO5MFXA.js";
11
+ import "../chunk-XCP5L665.js";
12
+ import "../chunk-YKCAJ2TN.js";
12
13
  import "../chunk-7ZPUN7TV.js";
13
14
  import "../chunk-PT6TCWIW.js";
14
15
  import "../chunk-CGO452DC.js";
@@ -1,4 +1,7 @@
1
1
  import "../chunk-MOLQGQEQ.js";
2
+ import {
3
+ ContentToolbar
4
+ } from "../chunk-SZB2Z6QN.js";
2
5
  import {
3
6
  ColumnsMenu
4
7
  } from "../chunk-MMPJ2MCE.js";
@@ -18,9 +21,6 @@ import "../chunk-VNHLYDTX.js";
18
21
  import {
19
22
  FilterTrigger
20
23
  } from "../chunk-JLWAYBOP.js";
21
- import {
22
- ContentToolbar
23
- } from "../chunk-SZB2Z6QN.js";
24
24
  import "../chunk-CGO452DC.js";
25
25
  import "../chunk-GDN2LUTZ.js";
26
26
  import "../chunk-7FDU3FIN.js";
@@ -1,10 +1,10 @@
1
1
  import "../chunk-724ZONOL.js";
2
2
  import {
3
3
  Skeleton
4
- } from "../chunk-YD77RANW.js";
4
+ } from "../chunk-7VN7LFBA.js";
5
+ import "../chunk-7WDPC46N.js";
5
6
  import "../chunk-ZOW2CCMO.js";
6
7
  import "../chunk-BRMGHMYB.js";
7
- import "../chunk-7WDPC46N.js";
8
8
  import "../chunk-TYJR4GOF.js";
9
9
  import "../chunk-PZ5AY32C.js";
10
10
  export {
@@ -1,14 +1,15 @@
1
1
  import {
2
2
  Stack
3
- } from "../chunk-U3ON6YW3.js";
3
+ } from "../chunk-NNAACCN2.js";
4
4
  import "../chunk-4GGH6ZQ7.js";
5
- import "../chunk-YZKA7UJK.js";
5
+ import "../chunk-GCWF5AQE.js";
6
6
  import "../chunk-7V6ZRQYW.js";
7
7
  import "../chunk-OCUVKI63.js";
8
- import "../chunk-H4NWU2ZN.js";
9
- import "../chunk-2DJIS2WQ.js";
8
+ import "../chunk-TK36COCP.js";
9
+ import "../chunk-KCBAPMLH.js";
10
10
  import "../chunk-TYJR4GOF.js";
11
- import "../chunk-3DO5MFXA.js";
11
+ import "../chunk-XCP5L665.js";
12
+ import "../chunk-YKCAJ2TN.js";
12
13
  import "../chunk-7ZPUN7TV.js";
13
14
  import "../chunk-PT6TCWIW.js";
14
15
  import "../chunk-CGO452DC.js";
@@ -6,10 +6,10 @@ import {
6
6
  import {
7
7
  AppHeaderIdentity,
8
8
  AppHeaderStatus
9
- } from "../chunk-R2I3LUUH.js";
9
+ } from "../chunk-FTCCYWF4.js";
10
10
  import {
11
11
  AppHeaderDetails
12
- } from "../chunk-5U4SJ2DA.js";
12
+ } from "../chunk-Y6JDIPV7.js";
13
13
  import {
14
14
  AppHeaderBrand
15
15
  } from "../chunk-H37GIAAM.js";
@@ -18,17 +18,17 @@ import {
18
18
  highlightOf,
19
19
  initialsOf
20
20
  } from "../chunk-IQU4HKND.js";
21
- import "../chunk-B4BU5CS6.js";
22
- import "../chunk-AZ2KKHID.js";
21
+ import "../chunk-LZHXF66R.js";
22
+ import "../chunk-VF2XC76U.js";
23
23
  import "../chunk-OLZTGVBT.js";
24
24
  import "../chunk-CRN4KKNI.js";
25
25
  import "../chunk-JBMBFYFA.js";
26
26
  import "../chunk-U437KFDI.js";
27
27
  import "../chunk-F52N6ACD.js";
28
- import "../chunk-D6HDJVQW.js";
29
- import "../chunk-GYXUCS37.js";
28
+ import "../chunk-YANLN6HP.js";
30
29
  import "../chunk-5KEMPCW4.js";
31
30
  import "../chunk-VM3HRSAU.js";
31
+ import "../chunk-GYXUCS37.js";
32
32
  import "../chunk-73BEVJCS.js";
33
33
  import "../chunk-6MDBMCFK.js";
34
34
  import "../chunk-QRUCR4YZ.js";
@@ -37,7 +37,8 @@ import "../chunk-TAMIZE4Q.js";
37
37
  import "../chunk-TYJR4GOF.js";
38
38
  import "../chunk-AKZWDZCZ.js";
39
39
  import "../chunk-HPK33ACY.js";
40
- import "../chunk-3DO5MFXA.js";
40
+ import "../chunk-XCP5L665.js";
41
+ import "../chunk-YKCAJ2TN.js";
41
42
  import "../chunk-7ZPUN7TV.js";
42
43
  import "../chunk-PT6TCWIW.js";
43
44
  import "../chunk-CGO452DC.js";
@@ -1,11 +1,11 @@
1
1
  import "../chunk-P5WJUR7X.js";
2
2
  import {
3
3
  CommandPalette
4
- } from "../chunk-PXH24VIP.js";
4
+ } from "../chunk-B6IURHSZ.js";
5
5
  import "../chunk-SQSFMZTF.js";
6
+ import "../chunk-5EIW2FZY.js";
6
7
  import "../chunk-SUZXPDUQ.js";
7
8
  import "../chunk-4VRDFZ4G.js";
8
- import "../chunk-5EIW2FZY.js";
9
9
  import "../chunk-PZ5AY32C.js";
10
10
  export {
11
11
  CommandPalette
package/dist/provider.js CHANGED
@@ -1,15 +1,16 @@
1
1
  import {
2
2
  UiProvider
3
- } from "./chunk-5KZR3RXL.js";
3
+ } from "./chunk-OFVYNUYV.js";
4
4
  import "./chunk-XZTRZ3HO.js";
5
5
  import {
6
6
  useUiTheme
7
- } from "./chunk-H4NWU2ZN.js";
7
+ } from "./chunk-TK36COCP.js";
8
8
  import {
9
9
  muiThemeOptionsFrom,
10
10
  uiThemeFromMui
11
- } from "./chunk-2DJIS2WQ.js";
12
- import "./chunk-3DO5MFXA.js";
11
+ } from "./chunk-KCBAPMLH.js";
12
+ import "./chunk-XCP5L665.js";
13
+ import "./chunk-YKCAJ2TN.js";
13
14
  import "./chunk-7ZPUN7TV.js";
14
15
  import "./chunk-PT6TCWIW.js";
15
16
  import "./chunk-CGO452DC.js";
package/dist/tokens.js CHANGED
@@ -1,6 +1,13 @@
1
1
  import {
2
2
  accentFor
3
- } from "./chunk-3DO5MFXA.js";
3
+ } from "./chunk-XCP5L665.js";
4
+ import {
5
+ rem,
6
+ remPx,
7
+ rems,
8
+ resetRootFontCache,
9
+ sxRem
10
+ } from "./chunk-YKCAJ2TN.js";
4
11
  import {
5
12
  COLOR_VALUES,
6
13
  SIZE_VALUES,
@@ -122,6 +129,11 @@ export {
122
129
  muiSize,
123
130
  paletteKey,
124
131
  px,
125
- recomposeColor
132
+ recomposeColor,
133
+ rem,
134
+ remPx,
135
+ rems,
136
+ resetRootFontCache,
137
+ sxRem
126
138
  };
127
139
  //# sourceMappingURL=tokens.js.map
@@ -0,0 +1,55 @@
1
+ import type { Theme } from '@mui/material/styles/index.js';
2
+ /**
3
+ * THE ONE WAY A COMPONENT WRITES A SIZE (FUT-2585).
4
+ *
5
+ * A density mode — a compact admin, a roomy kiosk — is one decision taken in
6
+ * the theme, and it only works if every size a component draws is RELATIVE to
7
+ * something the theme owns. Before this file the package said the same number
8
+ * four ways: `'14px'`, `'0.875rem'`, `fontSize: 14` and `px(14)` from a
9
+ * `*.metrics.ts` table, and none of the four moved with the theme. The audit
10
+ * that opened FUT-2585 counted 1,269 `NNpx` literals, 246 hand-typed `rem`
11
+ * literals and 24 reads of `theme.typography`.
12
+ *
13
+ * So there is one vocabulary: the px a design was drawn at, handed to the
14
+ * theme's own type scale. `rem(theme, 14)` is `theme.typography.pxToRem(14)` —
15
+ * `0.875rem` at MUI's defaults, which is what the origin host's theme
16
+ * runs on, so converting a literal changes nothing on screen. A host that sets
17
+ * `typography.fontSize` scales every size written through it (MUI multiplies
18
+ * by `fontSize / 14`), and so does a reader who raises the browser's base font
19
+ * — the rule the field height already follows (`./field-height.core.ts`).
20
+ * `htmlFontSize` is not a knob: it DECLARES what the root already is. Values
21
+ * that are relative another way stay so — `sx` spacing units and
22
+ * `theme.spacing()` follow the spacing unit — so a density mode sets the type
23
+ * scale, the spacing unit and `fieldHeight` together.
24
+ *
25
+ * Everything goes through it — font sizes, heights, widths, padding, offsets,
26
+ * radii, shadow offsets, blurs and keyframe distances — because a density mode
27
+ * that shrinks the box but not its shadow, or the text but not the gap beside
28
+ * it, is visibly half-applied. The one literal left is the 1px hairline
29
+ * border, which must stay one device pixel (`FIELD_BORDER_WIDTH`).
30
+ *
31
+ * `scripts/ui-tokens-gate.mjs` refuses a raw size or colour in a component, so
32
+ * this is enforced rather than hoped for.
33
+ */
34
+ /** A size drawn at `px` in the design, as rem through the theme's type scale. */
35
+ export declare function rem(theme: Theme, px: number): string;
36
+ /**
37
+ * {@link rem} as an `sx` value: `sx={{ width: sxRem(40) }}`.
38
+ *
39
+ * `sx` reads a NUMBER on `width` as pixels and on `padding` as spacing units,
40
+ * so a bare number there is never density-safe; a theme callback is.
41
+ */
42
+ export declare function sxRem(px: number): (theme: Theme) => string;
43
+ /** A length list (`'0 8px 32px'`-shaped) with every entry through {@link rem}. */
44
+ export declare function rems(theme: Theme, ...px: number[]): string;
45
+ /** Forget the measured root font size — for a test, or a host that changes it at runtime. */
46
+ export declare function resetRootFontCache(): void;
47
+ /**
48
+ * The pixels `rem(theme, px)` renders at, for layout that is computed in
49
+ * JavaScript — a virtualiser's row height, an overflow cost table, a cell size.
50
+ *
51
+ * CSS and JS have to agree: a virtualiser that still assumes 52px rows while
52
+ * the rows it positions have shrunk to 45 leaves a gap under every one of them.
53
+ */
54
+ export declare function remPx(theme: Theme, px: number): number;
55
+ //# sourceMappingURL=relative.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relative.d.ts","sourceRoot":"","sources":["../../../src/tokens/relative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,iFAAiF;AACjF,wBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAE1D;AAED,kFAAkF;AAClF,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,CAE1D;AAMD,6FAA6F;AAC7F,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAmCD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -10,6 +10,7 @@ export * from './vocabulary';
10
10
  export { headingMetrics } from './typography';
11
11
  export * from './theme';
12
12
  export * from './color';
13
+ export { rem, rems, remPx, resetRootFontCache, sxRem } from './relative';
13
14
  export { DEFAULT_FIELD_RADIUS, fieldRadius, fieldRadiusOverrides, fieldRadiusPx, fieldRootStyles } from './field-radius';
14
15
  export { asFieldSize, DEFAULT_FIELD_HEIGHT, FIELD_BORDER_WIDTH, FIELD_HEIGHT_SCALE, fieldBorder, fieldControlStyles, fieldHeight, fieldHeightOverrides, fieldHeightPx, fieldHeightRem, fieldOverrides, fieldTextFieldStyles, } from './field-height';
15
16
  export interface Accent {
@@ -1 +1 @@
1
- {"version":3,"file":"scales.d.ts","sourceRoot":"","sources":["../../../src/tokens/scales.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,cAAc,CAAC;AAEzD;;;;;GAKG;AACH,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzH,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAmBjE"}
1
+ {"version":3,"file":"scales.d.ts","sourceRoot":"","sources":["../../../src/tokens/scales.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,cAAc,CAAC;AAEzD;;;;;GAKG;AACH,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzH,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAmBjE"}
@@ -1,9 +1,9 @@
1
1
  import "../chunk-H7NA4TXY.js";
2
2
  import {
3
3
  InfiniteScroll
4
- } from "../chunk-WROCSDVL.js";
5
- import "../chunk-QF6LTUCE.js";
4
+ } from "../chunk-GSFNH4C5.js";
6
5
  import "../chunk-ATSHKSSD.js";
6
+ import "../chunk-QF6LTUCE.js";
7
7
  import "../chunk-PZ5AY32C.js";
8
8
  export {
9
9
  InfiniteScroll
@@ -1,11 +1,11 @@
1
1
  import "../chunk-3QQVEYOR.js";
2
2
  import {
3
3
  InstallPrompt
4
- } from "../chunk-5ZOJLYD2.js";
5
- import "../chunk-GY62N32G.js";
4
+ } from "../chunk-JE6RZ5L6.js";
6
5
  import {
7
6
  usePwaInstall
8
7
  } from "../chunk-5GMHJ7Y5.js";
8
+ import "../chunk-GY62N32G.js";
9
9
  import "../chunk-WXYLH3QZ.js";
10
10
  import {
11
11
  PWA_INSTALL_AVAILABLE_EVENT,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.32.0",
3
+ "version": "6.33.0",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -0,0 +1,107 @@
1
+ import type { Theme } from '@mui/material/styles/index.js';
2
+
3
+ /**
4
+ * THE ONE WAY A COMPONENT WRITES A SIZE (FUT-2585).
5
+ *
6
+ * A density mode — a compact admin, a roomy kiosk — is one decision taken in
7
+ * the theme, and it only works if every size a component draws is RELATIVE to
8
+ * something the theme owns. Before this file the package said the same number
9
+ * four ways: `'14px'`, `'0.875rem'`, `fontSize: 14` and `px(14)` from a
10
+ * `*.metrics.ts` table, and none of the four moved with the theme. The audit
11
+ * that opened FUT-2585 counted 1,269 `NNpx` literals, 246 hand-typed `rem`
12
+ * literals and 24 reads of `theme.typography`.
13
+ *
14
+ * So there is one vocabulary: the px a design was drawn at, handed to the
15
+ * theme's own type scale. `rem(theme, 14)` is `theme.typography.pxToRem(14)` —
16
+ * `0.875rem` at MUI's defaults, which is what the origin host's theme
17
+ * runs on, so converting a literal changes nothing on screen. A host that sets
18
+ * `typography.fontSize` scales every size written through it (MUI multiplies
19
+ * by `fontSize / 14`), and so does a reader who raises the browser's base font
20
+ * — the rule the field height already follows (`./field-height.core.ts`).
21
+ * `htmlFontSize` is not a knob: it DECLARES what the root already is. Values
22
+ * that are relative another way stay so — `sx` spacing units and
23
+ * `theme.spacing()` follow the spacing unit — so a density mode sets the type
24
+ * scale, the spacing unit and `fieldHeight` together.
25
+ *
26
+ * Everything goes through it — font sizes, heights, widths, padding, offsets,
27
+ * radii, shadow offsets, blurs and keyframe distances — because a density mode
28
+ * that shrinks the box but not its shadow, or the text but not the gap beside
29
+ * it, is visibly half-applied. The one literal left is the 1px hairline
30
+ * border, which must stay one device pixel (`FIELD_BORDER_WIDTH`).
31
+ *
32
+ * `scripts/ui-tokens-gate.mjs` refuses a raw size or colour in a component, so
33
+ * this is enforced rather than hoped for.
34
+ */
35
+
36
+ /** A size drawn at `px` in the design, as rem through the theme's type scale. */
37
+ export function rem(theme: Theme, px: number): string {
38
+ return theme.typography.pxToRem(px);
39
+ }
40
+
41
+ /**
42
+ * {@link rem} as an `sx` value: `sx={{ width: sxRem(40) }}`.
43
+ *
44
+ * `sx` reads a NUMBER on `width` as pixels and on `padding` as spacing units,
45
+ * so a bare number there is never density-safe; a theme callback is.
46
+ */
47
+ export function sxRem(px: number): (theme: Theme) => string {
48
+ return (theme) => rem(theme, px);
49
+ }
50
+
51
+ /** A length list (`'0 8px 32px'`-shaped) with every entry through {@link rem}. */
52
+ export function rems(theme: Theme, ...px: number[]): string {
53
+ return px.map((value) => (value === 0 ? '0' : rem(theme, value))).join(' ');
54
+ }
55
+
56
+ const FALLBACK_ROOT_PX = 16;
57
+ let rootPxCache: number | null = null;
58
+ let watchingRoot = false;
59
+
60
+ /** Forget the measured root font size — for a test, or a host that changes it at runtime. */
61
+ export function resetRootFontCache(): void {
62
+ rootPxCache = null;
63
+ }
64
+
65
+ /**
66
+ * Drop the cache whenever the root's own style or class changes (a host
67
+ * toggling `html { font-size }` for a density) or the window resizes (a
68
+ * viewport-relative root). A browser-setting change is not observable from the
69
+ * page; it takes a reload, as it does for everything else measured in px.
70
+ */
71
+ function watchRoot(): void {
72
+ if (watchingRoot || typeof MutationObserver === 'undefined') return;
73
+ watchingRoot = true;
74
+ new MutationObserver(resetRootFontCache).observe(document.documentElement, {
75
+ attributes: true,
76
+ attributeFilter: ['style', 'class'],
77
+ });
78
+ if (typeof window !== 'undefined') window.addEventListener('resize', resetRootFontCache);
79
+ }
80
+
81
+ /**
82
+ * The document's root font size in px — what `1rem` actually renders at.
83
+ * Without a document (server render) it is the theme's declared
84
+ * `htmlFontSize`; a failed measurement is not cached, so a later call can
85
+ * still measure.
86
+ */
87
+ function rootFontPx(theme: Theme): number {
88
+ if (rootPxCache !== null) return rootPxCache;
89
+ const fallback = theme.typography.htmlFontSize ?? FALLBACK_ROOT_PX;
90
+ if (typeof document === 'undefined' || typeof getComputedStyle !== 'function') return fallback;
91
+ const measured = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
92
+ if (!(Number.isFinite(measured) && measured > 0)) return fallback;
93
+ rootPxCache = measured;
94
+ watchRoot();
95
+ return measured;
96
+ }
97
+
98
+ /**
99
+ * The pixels `rem(theme, px)` renders at, for layout that is computed in
100
+ * JavaScript — a virtualiser's row height, an overflow cost table, a cell size.
101
+ *
102
+ * CSS and JS have to agree: a virtualiser that still assumes 52px rows while
103
+ * the rows it positions have shrunk to 45 leaves a gap under every one of them.
104
+ */
105
+ export function remPx(theme: Theme, px: number): number {
106
+ return Number.parseFloat(rem(theme, px)) * rootFontPx(theme);
107
+ }
@@ -14,6 +14,8 @@ export { headingMetrics } from './typography';
14
14
  // host can build a `UiTheme` from the same module path a native one does.
15
15
  export * from './theme';
16
16
  export * from './color';
17
+ // The relative-size vocabulary every component writes its sizes in (FUT-2585).
18
+ export { rem, rems, remPx, resetRootFontCache, sxRem } from './relative';
17
19
  export { DEFAULT_FIELD_RADIUS, fieldRadius, fieldRadiusOverrides, fieldRadiusPx, fieldRootStyles } from './field-radius';
18
20
  export {
19
21
  asFieldSize,
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tokens/scales.ts"],"sourcesContent":["import type { Theme } from '@mui/material/styles/index.js';\n\nimport type { ColorValue, MuiColor } from './vocabulary';\n\n/**\n * `@12-apps/ui/tokens` keeps its whole surface here. The vocabulary itself —\n * the size and colour unions and their runtime lists — lives in\n * `./vocabulary`, which imports nothing, so the native renderer can read it\n * without this file's MUI `Theme` import following it into `dist/types-native`.\n */\nexport * from './vocabulary';\nexport { headingMetrics } from './typography';\n// The renderer-neutral theme and the colour arithmetic behind it, so a web\n// host can build a `UiTheme` from the same module path a native one does.\nexport * from './theme';\nexport * from './color';\nexport { DEFAULT_FIELD_RADIUS, fieldRadius, fieldRadiusOverrides, fieldRadiusPx, fieldRootStyles } from './field-radius';\nexport {\n asFieldSize,\n DEFAULT_FIELD_HEIGHT,\n FIELD_BORDER_WIDTH,\n FIELD_HEIGHT_SCALE,\n fieldBorder,\n fieldControlStyles,\n fieldHeight,\n fieldHeightOverrides,\n fieldHeightPx,\n fieldHeightRem,\n fieldOverrides,\n fieldTextFieldStyles,\n} from './field-height';\n\nexport interface Accent {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\n\nexport function accentFor(theme: Theme, color: ColorValue): Accent {\n if (color === 'neutral') {\n const grey = theme.palette.grey;\n return {\n // Explicit fallbacks: the ramp is indexed, and under\n // `noUncheckedIndexedAccess` every stop is `string | undefined`.\n main: grey[600] ?? '#757575',\n light: grey[400] ?? '#bdbdbd',\n dark: grey[800] ?? '#424242',\n // Grey 600 carries white text in both themes.\n contrastText: '#fff',\n };\n }\n // Past the `neutral` return, `paletteKey` can only produce a `MuiColor` — but\n // its signature still admits `'grey'`, and TS cannot narrow a return type by\n // the argument. Naming the key here keeps the accent branch honestly typed\n // instead of casting the hole shut.\n const key: MuiColor = color === 'danger' ? 'error' : color;\n return theme.palette[key];\n}\n"],"mappings":";AAuCO,SAAS,UAAU,OAAc,OAA2B;AACjE,MAAI,UAAU,WAAW;AACvB,UAAM,OAAO,MAAM,QAAQ;AAC3B,WAAO;AAAA;AAAA;AAAA,MAGL,MAAM,KAAK,GAAG,KAAK;AAAA,MACnB,OAAO,KAAK,GAAG,KAAK;AAAA,MACpB,MAAM,KAAK,GAAG,KAAK;AAAA;AAAA,MAEnB,cAAc;AAAA,IAChB;AAAA,EACF;AAKA,QAAM,MAAgB,UAAU,WAAW,UAAU;AACrD,SAAO,MAAM,QAAQ,GAAG;AAC1B;","names":[]}