@womp/kookie-ui 0.17.0 → 0.18.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 (569) hide show
  1. package/components.css +1397 -2626
  2. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  3. package/dist/cjs/components/_internal/base-button.js +1 -1
  4. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  5. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +1 -1
  6. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  7. package/dist/cjs/components/_internal/base-checkbox.props.js.map +2 -2
  8. package/dist/cjs/components/_internal/base-radio.props.d.ts +1 -1
  9. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  10. package/dist/cjs/components/_internal/base-radio.props.js.map +2 -2
  11. package/dist/cjs/components/_internal/pane-chrome.js +1 -1
  12. package/dist/cjs/components/_internal/pane-chrome.js.map +3 -3
  13. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  14. package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
  15. package/dist/cjs/components/accordion.d.ts.map +1 -1
  16. package/dist/cjs/components/accordion.js +1 -1
  17. package/dist/cjs/components/accordion.js.map +4 -4
  18. package/dist/cjs/components/alert-dialog.js +1 -1
  19. package/dist/cjs/components/alert-dialog.js.map +4 -4
  20. package/dist/cjs/components/badge.js +1 -1
  21. package/dist/cjs/components/badge.js.map +4 -4
  22. package/dist/cjs/components/badge.props.d.ts +1 -1
  23. package/dist/cjs/components/badge.props.js +1 -1
  24. package/dist/cjs/components/badge.props.js.map +1 -1
  25. package/dist/cjs/components/button.js +2 -2
  26. package/dist/cjs/components/button.js.map +4 -4
  27. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  28. package/dist/cjs/components/chatbar.js +2 -2
  29. package/dist/cjs/components/chatbar.js.map +4 -4
  30. package/dist/cjs/components/checkbox-cards.js +1 -1
  31. package/dist/cjs/components/checkbox-cards.js.map +2 -2
  32. package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
  33. package/dist/cjs/components/checkbox-group.js +1 -1
  34. package/dist/cjs/components/checkbox-group.js.map +4 -4
  35. package/dist/cjs/components/checkbox-group.props.d.ts +1 -1
  36. package/dist/cjs/components/checkbox-group.props.js +1 -1
  37. package/dist/cjs/components/checkbox-group.props.js.map +2 -2
  38. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  39. package/dist/cjs/components/checkbox.js +1 -1
  40. package/dist/cjs/components/checkbox.js.map +4 -4
  41. package/dist/cjs/components/checkbox.props.js +1 -1
  42. package/dist/cjs/components/checkbox.props.js.map +2 -2
  43. package/dist/cjs/components/combobox.d.ts.map +1 -1
  44. package/dist/cjs/components/combobox.js +1 -1
  45. package/dist/cjs/components/combobox.js.map +4 -4
  46. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  47. package/dist/cjs/components/context-menu.js +1 -1
  48. package/dist/cjs/components/context-menu.js.map +4 -4
  49. package/dist/cjs/components/data-list.d.ts.map +1 -1
  50. package/dist/cjs/components/data-list.js +1 -1
  51. package/dist/cjs/components/data-list.js.map +4 -4
  52. package/dist/cjs/components/dialog.js +1 -1
  53. package/dist/cjs/components/dialog.js.map +4 -4
  54. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  55. package/dist/cjs/components/dropdown-menu.js +1 -1
  56. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  57. package/dist/cjs/components/hover-card.d.ts.map +1 -1
  58. package/dist/cjs/components/hover-card.js +1 -1
  59. package/dist/cjs/components/hover-card.js.map +4 -4
  60. package/dist/cjs/components/icon-button.js +2 -2
  61. package/dist/cjs/components/icon-button.js.map +4 -4
  62. package/dist/cjs/components/index.js +5 -5
  63. package/dist/cjs/components/index.js.map +4 -4
  64. package/dist/cjs/components/message-scroller.js +2 -2
  65. package/dist/cjs/components/message-scroller.js.map +4 -4
  66. package/dist/cjs/components/navbar.d.ts.map +1 -1
  67. package/dist/cjs/components/navbar.js +1 -1
  68. package/dist/cjs/components/navbar.js.map +4 -4
  69. package/dist/cjs/components/notice.d.ts +1 -1
  70. package/dist/cjs/components/notice.d.ts.map +1 -1
  71. package/dist/cjs/components/notice.js +2 -2
  72. package/dist/cjs/components/notice.js.map +4 -4
  73. package/dist/cjs/components/popover.d.ts.map +1 -1
  74. package/dist/cjs/components/popover.js +1 -1
  75. package/dist/cjs/components/popover.js.map +4 -4
  76. package/dist/cjs/components/progress.js +1 -1
  77. package/dist/cjs/components/progress.js.map +3 -3
  78. package/dist/cjs/components/progress.props.d.ts +0 -7
  79. package/dist/cjs/components/progress.props.d.ts.map +1 -1
  80. package/dist/cjs/components/progress.props.js +1 -1
  81. package/dist/cjs/components/progress.props.js.map +3 -3
  82. package/dist/cjs/components/radio-group.d.ts.map +1 -1
  83. package/dist/cjs/components/radio-group.js +1 -1
  84. package/dist/cjs/components/radio-group.js.map +4 -4
  85. package/dist/cjs/components/radio-group.props.d.ts +1 -1
  86. package/dist/cjs/components/radio-group.props.js +1 -1
  87. package/dist/cjs/components/radio-group.props.js.map +2 -2
  88. package/dist/cjs/components/radio.d.ts.map +1 -1
  89. package/dist/cjs/components/radio.js +1 -1
  90. package/dist/cjs/components/radio.js.map +4 -4
  91. package/dist/cjs/components/radio.props.js +1 -1
  92. package/dist/cjs/components/radio.props.js.map +2 -2
  93. package/dist/cjs/components/scroll-area.d.ts.map +1 -1
  94. package/dist/cjs/components/scroll-area.js +1 -1
  95. package/dist/cjs/components/scroll-area.js.map +3 -3
  96. package/dist/cjs/components/scroll-area.props.d.ts +0 -7
  97. package/dist/cjs/components/scroll-area.props.d.ts.map +1 -1
  98. package/dist/cjs/components/scroll-area.props.js +1 -1
  99. package/dist/cjs/components/scroll-area.props.js.map +3 -3
  100. package/dist/cjs/components/segmented-control.d.ts.map +1 -1
  101. package/dist/cjs/components/segmented-control.js +1 -1
  102. package/dist/cjs/components/segmented-control.js.map +4 -4
  103. package/dist/cjs/components/select.d.ts.map +1 -1
  104. package/dist/cjs/components/select.js +1 -1
  105. package/dist/cjs/components/select.js.map +4 -4
  106. package/dist/cjs/components/separator.js +1 -1
  107. package/dist/cjs/components/separator.js.map +3 -3
  108. package/dist/cjs/components/separator.props.d.ts +0 -7
  109. package/dist/cjs/components/separator.props.d.ts.map +1 -1
  110. package/dist/cjs/components/separator.props.js +1 -1
  111. package/dist/cjs/components/separator.props.js.map +3 -3
  112. package/dist/cjs/components/sheet.js +1 -1
  113. package/dist/cjs/components/sheet.js.map +4 -4
  114. package/dist/cjs/components/shell.d.ts +1 -1
  115. package/dist/cjs/components/shell.d.ts.map +1 -1
  116. package/dist/cjs/components/shell.js +1 -1
  117. package/dist/cjs/components/shell.js.map +4 -4
  118. package/dist/cjs/components/sidebar.js +1 -1
  119. package/dist/cjs/components/sidebar.js.map +4 -4
  120. package/dist/cjs/components/slider.d.ts.map +1 -1
  121. package/dist/cjs/components/slider.js +1 -1
  122. package/dist/cjs/components/slider.js.map +4 -4
  123. package/dist/cjs/components/spinner.js +1 -1
  124. package/dist/cjs/components/spinner.js.map +3 -3
  125. package/dist/cjs/components/spinner.props.d.ts +0 -7
  126. package/dist/cjs/components/spinner.props.d.ts.map +1 -1
  127. package/dist/cjs/components/spinner.props.js +1 -1
  128. package/dist/cjs/components/spinner.props.js.map +3 -3
  129. package/dist/cjs/components/switch.d.ts.map +1 -1
  130. package/dist/cjs/components/switch.js +1 -1
  131. package/dist/cjs/components/switch.js.map +4 -4
  132. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  133. package/dist/cjs/components/tab-nav.js +1 -1
  134. package/dist/cjs/components/tab-nav.js.map +4 -4
  135. package/dist/cjs/components/table.d.ts.map +1 -1
  136. package/dist/cjs/components/table.js +1 -1
  137. package/dist/cjs/components/table.js.map +4 -4
  138. package/dist/cjs/components/table.props.d.ts +1 -1
  139. package/dist/cjs/components/table.props.js +1 -1
  140. package/dist/cjs/components/table.props.js.map +2 -2
  141. package/dist/cjs/components/tabs.d.ts.map +1 -1
  142. package/dist/cjs/components/tabs.js +1 -1
  143. package/dist/cjs/components/tabs.js.map +4 -4
  144. package/dist/cjs/components/text-area.d.ts.map +1 -1
  145. package/dist/cjs/components/text-area.js +1 -1
  146. package/dist/cjs/components/text-area.js.map +4 -4
  147. package/dist/cjs/components/text-field.d.ts.map +1 -1
  148. package/dist/cjs/components/text-field.js +2 -2
  149. package/dist/cjs/components/text-field.js.map +4 -4
  150. package/dist/cjs/components/theme-panel.js +3 -3
  151. package/dist/cjs/components/theme-panel.js.map +4 -4
  152. package/dist/cjs/components/theme.d.ts +3 -0
  153. package/dist/cjs/components/theme.d.ts.map +1 -1
  154. package/dist/cjs/components/theme.js +1 -1
  155. package/dist/cjs/components/theme.js.map +4 -4
  156. package/dist/cjs/components/theme.props.d.ts +12 -0
  157. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  158. package/dist/cjs/components/theme.props.js +1 -1
  159. package/dist/cjs/components/theme.props.js.map +3 -3
  160. package/dist/cjs/components/toggle-button.js +3 -3
  161. package/dist/cjs/components/toggle-button.js.map +4 -4
  162. package/dist/cjs/components/toggle-icon-button.js +3 -3
  163. package/dist/cjs/components/toggle-icon-button.js.map +4 -4
  164. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  165. package/dist/cjs/components/toolbar.js +2 -2
  166. package/dist/cjs/components/toolbar.js.map +4 -4
  167. package/dist/cjs/components/tooltip.js +1 -1
  168. package/dist/cjs/components/tooltip.js.map +4 -4
  169. package/dist/cjs/helpers/index.d.ts +1 -0
  170. package/dist/cjs/helpers/index.d.ts.map +1 -1
  171. package/dist/cjs/helpers/index.js +3 -3
  172. package/dist/cjs/helpers/index.js.map +4 -4
  173. package/dist/cjs/helpers/map-prop-values.d.ts +1 -4
  174. package/dist/cjs/helpers/map-prop-values.d.ts.map +1 -1
  175. package/dist/cjs/helpers/map-prop-values.js +1 -1
  176. package/dist/cjs/helpers/map-prop-values.js.map +3 -3
  177. package/dist/cjs/helpers/theme-size.d.ts +41 -0
  178. package/dist/cjs/helpers/theme-size.d.ts.map +1 -0
  179. package/dist/cjs/helpers/theme-size.js +2 -0
  180. package/dist/cjs/helpers/theme-size.js.map +7 -0
  181. package/dist/cjs/index.js +7 -7
  182. package/dist/cjs/index.js.map +4 -4
  183. package/dist/cjs/props/index.js +1 -1
  184. package/dist/cjs/props/index.js.map +3 -3
  185. package/dist/esm/{chunk-XZ5XZS5O.js → chunk-35HNDWWM.js} +2 -2
  186. package/dist/esm/chunk-3YLYGKFB.js +2 -0
  187. package/dist/esm/chunk-3YLYGKFB.js.map +7 -0
  188. package/dist/esm/chunk-4DE3ONED.js +2 -0
  189. package/dist/esm/chunk-4DE3ONED.js.map +7 -0
  190. package/dist/esm/chunk-4M55YJMR.js +2 -0
  191. package/dist/esm/chunk-4M55YJMR.js.map +7 -0
  192. package/dist/esm/chunk-4YQXYWDQ.js +2 -0
  193. package/dist/esm/chunk-4YQXYWDQ.js.map +7 -0
  194. package/dist/esm/chunk-54KMG7NX.js +2 -0
  195. package/dist/esm/chunk-54KMG7NX.js.map +7 -0
  196. package/dist/esm/chunk-5R2WX2FU.js +2 -0
  197. package/dist/esm/chunk-5R2WX2FU.js.map +7 -0
  198. package/dist/esm/chunk-5VBJT2VY.js +2 -0
  199. package/dist/esm/chunk-5VBJT2VY.js.map +7 -0
  200. package/dist/esm/chunk-6AZV4VFW.js +2 -0
  201. package/dist/esm/chunk-6AZV4VFW.js.map +7 -0
  202. package/dist/esm/{chunk-YDRFILTX.js → chunk-6YWDEANN.js} +2 -2
  203. package/dist/esm/{chunk-MZQDDG5K.js → chunk-7FZPCM7W.js} +2 -2
  204. package/dist/esm/chunk-7J2QS2UT.js +5 -0
  205. package/dist/esm/chunk-7J2QS2UT.js.map +7 -0
  206. package/dist/esm/chunk-ABS275QZ.js +2 -0
  207. package/dist/esm/chunk-AKPAHQYE.js +2 -0
  208. package/dist/esm/chunk-AKPAHQYE.js.map +7 -0
  209. package/dist/esm/chunk-BN24ZBO7.js +2 -0
  210. package/dist/esm/chunk-BN24ZBO7.js.map +7 -0
  211. package/dist/esm/chunk-BZ6YBP2S.js +2 -0
  212. package/dist/esm/chunk-BZ6YBP2S.js.map +7 -0
  213. package/dist/esm/chunk-CHPZ3LNC.js +2 -0
  214. package/dist/esm/chunk-CHPZ3LNC.js.map +7 -0
  215. package/dist/esm/chunk-CRK34MWY.js +2 -0
  216. package/dist/esm/chunk-CRK34MWY.js.map +7 -0
  217. package/dist/esm/{chunk-YZABQ4LS.js → chunk-DFSW4QR4.js} +2 -2
  218. package/dist/esm/{chunk-SM27AC7E.js → chunk-DJFTDR6Y.js} +2 -2
  219. package/dist/esm/chunk-EA2XSEFH.js +2 -0
  220. package/dist/esm/chunk-EA2XSEFH.js.map +7 -0
  221. package/dist/esm/{chunk-CRYT55SY.js → chunk-EHUSLPWN.js} +2 -2
  222. package/dist/esm/chunk-ENSDQ3XQ.js +2 -0
  223. package/dist/esm/chunk-ENSDQ3XQ.js.map +7 -0
  224. package/dist/esm/chunk-F3XBIUXB.js +2 -0
  225. package/dist/esm/chunk-F3XBIUXB.js.map +7 -0
  226. package/dist/esm/chunk-GHD3TKCA.js +2 -0
  227. package/dist/esm/chunk-GHD3TKCA.js.map +7 -0
  228. package/dist/esm/chunk-GQBQHGEF.js +2 -0
  229. package/dist/esm/chunk-GQBQHGEF.js.map +7 -0
  230. package/dist/esm/{chunk-6XHM724Y.js → chunk-GTVFQXLJ.js} +2 -2
  231. package/dist/esm/chunk-HIEGLLY7.js +2 -0
  232. package/dist/esm/chunk-HIEGLLY7.js.map +7 -0
  233. package/dist/esm/chunk-HZYE46V2.js +2 -0
  234. package/dist/esm/chunk-HZYE46V2.js.map +7 -0
  235. package/dist/esm/chunk-IWT3Q2PD.js +2 -0
  236. package/dist/esm/chunk-IWT3Q2PD.js.map +7 -0
  237. package/dist/esm/chunk-JCRBBT4X.js +2 -0
  238. package/dist/esm/chunk-JCRBBT4X.js.map +7 -0
  239. package/dist/esm/chunk-KFQ4B5YC.js +2 -0
  240. package/dist/esm/chunk-KFQ4B5YC.js.map +7 -0
  241. package/dist/esm/{chunk-6HRBG5H2.js → chunk-KPPIW4OJ.js} +2 -2
  242. package/dist/esm/{chunk-6WFEMPCF.js → chunk-KRXCFIRK.js} +2 -2
  243. package/dist/esm/{chunk-5SQL4ZRC.js → chunk-KSZOVI57.js} +2 -2
  244. package/dist/esm/{chunk-5SQL4ZRC.js.map → chunk-KSZOVI57.js.map} +1 -1
  245. package/dist/esm/{chunk-COSHAOEK.js → chunk-MJEYJI5G.js} +2 -2
  246. package/dist/esm/chunk-MLXHD7YF.js +2 -0
  247. package/dist/esm/chunk-MLXHD7YF.js.map +7 -0
  248. package/dist/esm/{chunk-CG54MBMW.js → chunk-MPN33CKR.js} +2 -2
  249. package/dist/esm/chunk-MQDZBF4J.js +2 -0
  250. package/dist/esm/chunk-MQDZBF4J.js.map +7 -0
  251. package/dist/esm/{chunk-IGBEDJBC.js → chunk-NFVOEHZS.js} +2 -2
  252. package/dist/esm/{chunk-ORMCQAPS.js → chunk-PAQS6C2A.js} +2 -2
  253. package/dist/esm/chunk-PUVZFRTQ.js +2 -0
  254. package/dist/esm/chunk-PUVZFRTQ.js.map +7 -0
  255. package/dist/esm/chunk-QAUYOVVL.js +2 -0
  256. package/dist/esm/chunk-QAUYOVVL.js.map +7 -0
  257. package/dist/esm/chunk-RC7TBVLO.js +2 -0
  258. package/dist/esm/chunk-RC7TBVLO.js.map +7 -0
  259. package/dist/esm/chunk-STMTXK7U.js +2 -0
  260. package/dist/esm/chunk-STMTXK7U.js.map +7 -0
  261. package/dist/esm/chunk-U7PDXTRX.js +2 -0
  262. package/dist/esm/chunk-U7PDXTRX.js.map +7 -0
  263. package/dist/esm/chunk-UNRG6Z5I.js +2 -0
  264. package/dist/esm/chunk-UNRG6Z5I.js.map +7 -0
  265. package/dist/esm/chunk-UONSKZQT.js +2 -0
  266. package/dist/esm/chunk-UONSKZQT.js.map +7 -0
  267. package/dist/esm/{chunk-2IPVLV6B.js → chunk-UQZHW3EJ.js} +2 -2
  268. package/dist/esm/chunk-VIDXAECE.js +2 -0
  269. package/dist/esm/chunk-VIDXAECE.js.map +7 -0
  270. package/dist/esm/chunk-VLLJ7A6P.js +2 -0
  271. package/dist/esm/chunk-VLLJ7A6P.js.map +7 -0
  272. package/dist/esm/{chunk-DP3OWU5T.js → chunk-VT4AAF7Q.js} +2 -2
  273. package/dist/esm/chunk-XVKFQSLI.js +2 -0
  274. package/dist/esm/chunk-XVKFQSLI.js.map +7 -0
  275. package/dist/esm/{chunk-RFURPE7W.js → chunk-YF3MFME4.js} +2 -2
  276. package/dist/esm/{chunk-4STOJSJZ.js → chunk-YVMQWSHA.js} +2 -2
  277. package/dist/esm/{chunk-4STOJSJZ.js.map → chunk-YVMQWSHA.js.map} +2 -2
  278. package/dist/esm/chunk-ZCAI2PRH.js +2 -0
  279. package/dist/esm/chunk-ZCAI2PRH.js.map +7 -0
  280. package/dist/esm/{chunk-S53ZQNHK.js → chunk-ZFBLPW3X.js} +2 -2
  281. package/dist/esm/chunk-ZH2B7WEH.js +2 -0
  282. package/dist/esm/chunk-ZH2B7WEH.js.map +7 -0
  283. package/dist/esm/chunk-ZJZIV2JH.js +2 -0
  284. package/dist/esm/chunk-ZJZIV2JH.js.map +7 -0
  285. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  286. package/dist/esm/components/_internal/base-button.js +1 -1
  287. package/dist/esm/components/_internal/base-checkbox.props.d.ts +1 -1
  288. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  289. package/dist/esm/components/_internal/base-radio.props.d.ts +1 -1
  290. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  291. package/dist/esm/components/_internal/pane-chrome.js +1 -1
  292. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  293. package/dist/esm/components/accordion.d.ts.map +1 -1
  294. package/dist/esm/components/accordion.js +1 -1
  295. package/dist/esm/components/alert-dialog.js +1 -1
  296. package/dist/esm/components/badge.js +1 -1
  297. package/dist/esm/components/badge.props.d.ts +1 -1
  298. package/dist/esm/components/badge.props.js +1 -1
  299. package/dist/esm/components/button.js +1 -1
  300. package/dist/esm/components/chatbar.d.ts.map +1 -1
  301. package/dist/esm/components/chatbar.js +1 -1
  302. package/dist/esm/components/checkbox-cards.js +1 -1
  303. package/dist/esm/components/checkbox-group.d.ts.map +1 -1
  304. package/dist/esm/components/checkbox-group.js +1 -1
  305. package/dist/esm/components/checkbox-group.props.d.ts +1 -1
  306. package/dist/esm/components/checkbox-group.props.js +1 -1
  307. package/dist/esm/components/checkbox.d.ts.map +1 -1
  308. package/dist/esm/components/checkbox.js +1 -1
  309. package/dist/esm/components/checkbox.props.js +1 -1
  310. package/dist/esm/components/combobox.d.ts.map +1 -1
  311. package/dist/esm/components/combobox.js +1 -1
  312. package/dist/esm/components/context-menu.d.ts.map +1 -1
  313. package/dist/esm/components/context-menu.js +1 -1
  314. package/dist/esm/components/data-list.d.ts.map +1 -1
  315. package/dist/esm/components/data-list.js +1 -1
  316. package/dist/esm/components/dialog.js +1 -1
  317. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  318. package/dist/esm/components/dropdown-menu.js +1 -1
  319. package/dist/esm/components/hover-card.d.ts.map +1 -1
  320. package/dist/esm/components/hover-card.js +1 -1
  321. package/dist/esm/components/icon-button.js +1 -1
  322. package/dist/esm/components/index.js +1 -1
  323. package/dist/esm/components/message-scroller.js +1 -1
  324. package/dist/esm/components/navbar.d.ts.map +1 -1
  325. package/dist/esm/components/navbar.js +1 -1
  326. package/dist/esm/components/notice.d.ts +1 -1
  327. package/dist/esm/components/notice.d.ts.map +1 -1
  328. package/dist/esm/components/notice.js +1 -1
  329. package/dist/esm/components/popover.d.ts.map +1 -1
  330. package/dist/esm/components/popover.js +1 -1
  331. package/dist/esm/components/progress.js +1 -1
  332. package/dist/esm/components/progress.props.d.ts +0 -7
  333. package/dist/esm/components/progress.props.d.ts.map +1 -1
  334. package/dist/esm/components/progress.props.js +1 -1
  335. package/dist/esm/components/radio-group.d.ts.map +1 -1
  336. package/dist/esm/components/radio-group.js +1 -1
  337. package/dist/esm/components/radio-group.props.d.ts +1 -1
  338. package/dist/esm/components/radio-group.props.js +1 -1
  339. package/dist/esm/components/radio.d.ts.map +1 -1
  340. package/dist/esm/components/radio.js +1 -1
  341. package/dist/esm/components/radio.props.js +1 -1
  342. package/dist/esm/components/scroll-area.d.ts.map +1 -1
  343. package/dist/esm/components/scroll-area.js +1 -1
  344. package/dist/esm/components/scroll-area.props.d.ts +0 -7
  345. package/dist/esm/components/scroll-area.props.d.ts.map +1 -1
  346. package/dist/esm/components/scroll-area.props.js +1 -1
  347. package/dist/esm/components/segmented-control.d.ts.map +1 -1
  348. package/dist/esm/components/segmented-control.js +1 -1
  349. package/dist/esm/components/select.d.ts.map +1 -1
  350. package/dist/esm/components/select.js +1 -1
  351. package/dist/esm/components/separator.js +1 -1
  352. package/dist/esm/components/separator.props.d.ts +0 -7
  353. package/dist/esm/components/separator.props.d.ts.map +1 -1
  354. package/dist/esm/components/separator.props.js +1 -1
  355. package/dist/esm/components/sheet.js +1 -1
  356. package/dist/esm/components/shell.d.ts +1 -1
  357. package/dist/esm/components/shell.d.ts.map +1 -1
  358. package/dist/esm/components/shell.js +1 -1
  359. package/dist/esm/components/sidebar.js +1 -1
  360. package/dist/esm/components/slider.d.ts.map +1 -1
  361. package/dist/esm/components/slider.js +1 -1
  362. package/dist/esm/components/spinner.js +1 -1
  363. package/dist/esm/components/spinner.props.d.ts +0 -7
  364. package/dist/esm/components/spinner.props.d.ts.map +1 -1
  365. package/dist/esm/components/spinner.props.js +1 -1
  366. package/dist/esm/components/switch.d.ts.map +1 -1
  367. package/dist/esm/components/switch.js +1 -1
  368. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  369. package/dist/esm/components/tab-nav.js +1 -1
  370. package/dist/esm/components/table.d.ts.map +1 -1
  371. package/dist/esm/components/table.js +1 -1
  372. package/dist/esm/components/table.props.d.ts +1 -1
  373. package/dist/esm/components/table.props.js +1 -1
  374. package/dist/esm/components/tabs.d.ts.map +1 -1
  375. package/dist/esm/components/tabs.js +1 -1
  376. package/dist/esm/components/text-area.d.ts.map +1 -1
  377. package/dist/esm/components/text-area.js +1 -1
  378. package/dist/esm/components/text-field.d.ts.map +1 -1
  379. package/dist/esm/components/text-field.js +1 -1
  380. package/dist/esm/components/theme-panel.js +1 -1
  381. package/dist/esm/components/theme.d.ts +3 -0
  382. package/dist/esm/components/theme.d.ts.map +1 -1
  383. package/dist/esm/components/theme.js +1 -1
  384. package/dist/esm/components/theme.props.d.ts +12 -0
  385. package/dist/esm/components/theme.props.d.ts.map +1 -1
  386. package/dist/esm/components/theme.props.js +1 -1
  387. package/dist/esm/components/toggle-button.js +1 -1
  388. package/dist/esm/components/toggle-icon-button.js +1 -1
  389. package/dist/esm/components/toolbar.d.ts.map +1 -1
  390. package/dist/esm/components/toolbar.js +1 -1
  391. package/dist/esm/components/tooltip.js +1 -1
  392. package/dist/esm/helpers/index.d.ts +1 -0
  393. package/dist/esm/helpers/index.d.ts.map +1 -1
  394. package/dist/esm/helpers/index.js +1 -1
  395. package/dist/esm/helpers/map-prop-values.d.ts +1 -4
  396. package/dist/esm/helpers/map-prop-values.d.ts.map +1 -1
  397. package/dist/esm/helpers/map-prop-values.js +1 -1
  398. package/dist/esm/helpers/theme-size.d.ts +41 -0
  399. package/dist/esm/helpers/theme-size.d.ts.map +1 -0
  400. package/dist/esm/helpers/theme-size.js +2 -0
  401. package/dist/esm/helpers/theme-size.js.map +7 -0
  402. package/dist/esm/index.js +1 -1
  403. package/dist/esm/props/index.js +1 -1
  404. package/layout/tokens.css +14 -0
  405. package/layout.css +14 -0
  406. package/package.json +1 -1
  407. package/src/components/_internal/base-button.css +114 -78
  408. package/src/components/_internal/base-button.tsx +48 -9
  409. package/src/components/_internal/base-checkbox.css +91 -8
  410. package/src/components/_internal/base-checkbox.props.ts +1 -1
  411. package/src/components/_internal/base-radio.css +68 -6
  412. package/src/components/_internal/base-radio.props.ts +1 -1
  413. package/src/components/_internal/base-tab-list.css +33 -25
  414. package/src/components/accordion.tsx +3 -1
  415. package/src/components/avatar.css +21 -15
  416. package/src/components/badge.css +14 -23
  417. package/src/components/badge.props.tsx +1 -1
  418. package/src/components/button.css +5 -175
  419. package/src/components/chatbar.tsx +9 -4
  420. package/src/components/checkbox-group.css +6 -11
  421. package/src/components/checkbox-group.tsx +3 -1
  422. package/src/components/checkbox.css +6 -11
  423. package/src/components/checkbox.tsx +3 -1
  424. package/src/components/combobox.tsx +3 -1
  425. package/src/components/context-menu.tsx +3 -1
  426. package/src/components/data-list.tsx +3 -1
  427. package/src/components/dropdown-menu.tsx +3 -1
  428. package/src/components/hover-card.tsx +3 -1
  429. package/src/components/icon-button.css +4 -152
  430. package/src/components/message-scroller.tsx +1 -1
  431. package/src/components/navbar.tsx +3 -1
  432. package/src/components/notice.tsx +7 -3
  433. package/src/components/popover.tsx +3 -1
  434. package/src/components/progress.css +4 -37
  435. package/src/components/progress.props.tsx +0 -3
  436. package/src/components/radio-group.props.tsx +1 -1
  437. package/src/components/radio-group.tsx +3 -1
  438. package/src/components/radio.tsx +3 -1
  439. package/src/components/scroll-area.css +2 -23
  440. package/src/components/scroll-area.props.tsx +0 -3
  441. package/src/components/scroll-area.tsx +2 -18
  442. package/src/components/segmented-control.css +34 -27
  443. package/src/components/segmented-control.tsx +3 -1
  444. package/src/components/select.css +76 -74
  445. package/src/components/select.tsx +4 -2
  446. package/src/components/separator.css +2 -23
  447. package/src/components/separator.props.tsx +0 -3
  448. package/src/components/shell.tsx +8 -2
  449. package/src/components/slider.css +19 -11
  450. package/src/components/slider.tsx +3 -1
  451. package/src/components/spinner.css +2 -23
  452. package/src/components/spinner.props.tsx +0 -4
  453. package/src/components/switch.css +51 -17
  454. package/src/components/switch.tsx +3 -1
  455. package/src/components/tab-nav.tsx +3 -1
  456. package/src/components/table.props.tsx +1 -1
  457. package/src/components/table.tsx +3 -1
  458. package/src/components/tabs.css +2 -1
  459. package/src/components/tabs.tsx +3 -1
  460. package/src/components/text-area.css +55 -107
  461. package/src/components/text-area.tsx +8 -6
  462. package/src/components/text-field.css +129 -127
  463. package/src/components/text-field.tsx +8 -6
  464. package/src/components/theme.props.tsx +10 -0
  465. package/src/components/theme.tsx +86 -71
  466. package/src/components/toolbar.tsx +3 -1
  467. package/src/helpers/index.ts +1 -0
  468. package/src/helpers/map-prop-values.ts +1 -18
  469. package/src/helpers/theme-size.ts +73 -0
  470. package/src/styles/tokens/constants.css +4 -0
  471. package/src/styles/tokens/space.css +16 -0
  472. package/styles.css +1428 -2641
  473. package/tokens/base.css +14 -0
  474. package/tokens.css +16 -0
  475. package/dist/esm/chunk-2HUAVZZL.js +0 -2
  476. package/dist/esm/chunk-2HUAVZZL.js.map +0 -7
  477. package/dist/esm/chunk-2XSRO44Q.js +0 -2
  478. package/dist/esm/chunk-2XSRO44Q.js.map +0 -7
  479. package/dist/esm/chunk-3KB2XWBE.js +0 -2
  480. package/dist/esm/chunk-3KB2XWBE.js.map +0 -7
  481. package/dist/esm/chunk-4D7OU2UA.js +0 -2
  482. package/dist/esm/chunk-4D7OU2UA.js.map +0 -7
  483. package/dist/esm/chunk-5GYIQIPW.js +0 -2
  484. package/dist/esm/chunk-5GYIQIPW.js.map +0 -7
  485. package/dist/esm/chunk-655TAWHX.js +0 -2
  486. package/dist/esm/chunk-655TAWHX.js.map +0 -7
  487. package/dist/esm/chunk-6VPYP3VN.js +0 -2
  488. package/dist/esm/chunk-6VPYP3VN.js.map +0 -7
  489. package/dist/esm/chunk-7BE6N3KY.js +0 -2
  490. package/dist/esm/chunk-7BE6N3KY.js.map +0 -7
  491. package/dist/esm/chunk-AHOUZS3V.js +0 -2
  492. package/dist/esm/chunk-AHOUZS3V.js.map +0 -7
  493. package/dist/esm/chunk-BALS3AVM.js +0 -2
  494. package/dist/esm/chunk-BALS3AVM.js.map +0 -7
  495. package/dist/esm/chunk-BOLRYGFQ.js +0 -2
  496. package/dist/esm/chunk-BOLRYGFQ.js.map +0 -7
  497. package/dist/esm/chunk-BUEYZEAY.js +0 -2
  498. package/dist/esm/chunk-BUEYZEAY.js.map +0 -7
  499. package/dist/esm/chunk-DKALDTCN.js +0 -2
  500. package/dist/esm/chunk-DKALDTCN.js.map +0 -7
  501. package/dist/esm/chunk-EJOVE3JH.js +0 -2
  502. package/dist/esm/chunk-EJOVE3JH.js.map +0 -7
  503. package/dist/esm/chunk-FPDLBLO3.js +0 -2
  504. package/dist/esm/chunk-FPDLBLO3.js.map +0 -7
  505. package/dist/esm/chunk-GOYI2U6F.js +0 -2
  506. package/dist/esm/chunk-GOYI2U6F.js.map +0 -7
  507. package/dist/esm/chunk-HKRQ3E3I.js +0 -2
  508. package/dist/esm/chunk-HKRQ3E3I.js.map +0 -7
  509. package/dist/esm/chunk-HSFQO4QM.js +0 -2
  510. package/dist/esm/chunk-HSFQO4QM.js.map +0 -7
  511. package/dist/esm/chunk-HVQ3SLQC.js +0 -2
  512. package/dist/esm/chunk-HVQ3SLQC.js.map +0 -7
  513. package/dist/esm/chunk-JCOALADA.js +0 -5
  514. package/dist/esm/chunk-JCOALADA.js.map +0 -7
  515. package/dist/esm/chunk-K7J23OPW.js +0 -2
  516. package/dist/esm/chunk-K7J23OPW.js.map +0 -7
  517. package/dist/esm/chunk-M55KFXYV.js +0 -2
  518. package/dist/esm/chunk-M55KFXYV.js.map +0 -7
  519. package/dist/esm/chunk-MGSHX5N5.js +0 -2
  520. package/dist/esm/chunk-MGSHX5N5.js.map +0 -7
  521. package/dist/esm/chunk-MJC4NKYG.js +0 -2
  522. package/dist/esm/chunk-MJC4NKYG.js.map +0 -7
  523. package/dist/esm/chunk-MOYLXCMW.js +0 -2
  524. package/dist/esm/chunk-MOYLXCMW.js.map +0 -7
  525. package/dist/esm/chunk-MVW2SY4F.js +0 -2
  526. package/dist/esm/chunk-MVW2SY4F.js.map +0 -7
  527. package/dist/esm/chunk-NOSR2XWD.js +0 -2
  528. package/dist/esm/chunk-NOSR2XWD.js.map +0 -7
  529. package/dist/esm/chunk-OMUUPPJO.js +0 -2
  530. package/dist/esm/chunk-OMUUPPJO.js.map +0 -7
  531. package/dist/esm/chunk-PNIVUG5D.js +0 -2
  532. package/dist/esm/chunk-PNIVUG5D.js.map +0 -7
  533. package/dist/esm/chunk-PSS45RHX.js +0 -2
  534. package/dist/esm/chunk-PSS45RHX.js.map +0 -7
  535. package/dist/esm/chunk-PYYI64XK.js +0 -2
  536. package/dist/esm/chunk-PYYI64XK.js.map +0 -7
  537. package/dist/esm/chunk-QJFAGWBO.js +0 -2
  538. package/dist/esm/chunk-QJFAGWBO.js.map +0 -7
  539. package/dist/esm/chunk-QWFFYUFH.js +0 -2
  540. package/dist/esm/chunk-QWFFYUFH.js.map +0 -7
  541. package/dist/esm/chunk-RVHKSNMJ.js +0 -2
  542. package/dist/esm/chunk-RVHKSNMJ.js.map +0 -7
  543. package/dist/esm/chunk-RYURXQLJ.js +0 -2
  544. package/dist/esm/chunk-RYURXQLJ.js.map +0 -7
  545. package/dist/esm/chunk-UA6FP7HS.js +0 -2
  546. package/dist/esm/chunk-V7UP4SLZ.js +0 -2
  547. package/dist/esm/chunk-V7UP4SLZ.js.map +0 -7
  548. package/dist/esm/chunk-X5KCVLKG.js +0 -2
  549. package/dist/esm/chunk-X5KCVLKG.js.map +0 -7
  550. package/dist/esm/chunk-XPRPYCII.js +0 -2
  551. package/dist/esm/chunk-XPRPYCII.js.map +0 -7
  552. /package/dist/esm/{chunk-XZ5XZS5O.js.map → chunk-35HNDWWM.js.map} +0 -0
  553. /package/dist/esm/{chunk-YDRFILTX.js.map → chunk-6YWDEANN.js.map} +0 -0
  554. /package/dist/esm/{chunk-MZQDDG5K.js.map → chunk-7FZPCM7W.js.map} +0 -0
  555. /package/dist/esm/{chunk-UA6FP7HS.js.map → chunk-ABS275QZ.js.map} +0 -0
  556. /package/dist/esm/{chunk-YZABQ4LS.js.map → chunk-DFSW4QR4.js.map} +0 -0
  557. /package/dist/esm/{chunk-SM27AC7E.js.map → chunk-DJFTDR6Y.js.map} +0 -0
  558. /package/dist/esm/{chunk-CRYT55SY.js.map → chunk-EHUSLPWN.js.map} +0 -0
  559. /package/dist/esm/{chunk-6XHM724Y.js.map → chunk-GTVFQXLJ.js.map} +0 -0
  560. /package/dist/esm/{chunk-6HRBG5H2.js.map → chunk-KPPIW4OJ.js.map} +0 -0
  561. /package/dist/esm/{chunk-6WFEMPCF.js.map → chunk-KRXCFIRK.js.map} +0 -0
  562. /package/dist/esm/{chunk-COSHAOEK.js.map → chunk-MJEYJI5G.js.map} +0 -0
  563. /package/dist/esm/{chunk-CG54MBMW.js.map → chunk-MPN33CKR.js.map} +0 -0
  564. /package/dist/esm/{chunk-IGBEDJBC.js.map → chunk-NFVOEHZS.js.map} +0 -0
  565. /package/dist/esm/{chunk-ORMCQAPS.js.map → chunk-PAQS6C2A.js.map} +0 -0
  566. /package/dist/esm/{chunk-2IPVLV6B.js.map → chunk-UQZHW3EJ.js.map} +0 -0
  567. /package/dist/esm/{chunk-DP3OWU5T.js.map → chunk-VT4AAF7Q.js.map} +0 -0
  568. /package/dist/esm/{chunk-RFURPE7W.js.map → chunk-YF3MFME4.js.map} +0 -0
  569. /package/dist/esm/{chunk-S53ZQNHK.js.map → chunk-ZFBLPW3X.js.map} +0 -0
@@ -6,6 +6,7 @@ import { Direction, Slot, Tooltip as TooltipPrimitive } from 'radix-ui';
6
6
  import { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';
7
7
 
8
8
  import { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';
9
+ import { ThemeSizeContext } from '../helpers/theme-size.js';
9
10
  import { usePropSyncedState } from '../hooks/use-prop-synced-state.js';
10
11
  import { themePropDefs } from './theme.props.js';
11
12
 
@@ -19,6 +20,7 @@ type ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];
19
20
  type ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];
20
21
  type ThemeRadius = (typeof themePropDefs.radius.values)[number];
21
22
  type ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];
23
+ type ThemeSize = (typeof themePropDefs.size.values)[number];
22
24
  // Headings follow the body font until something sets this, so `undefined` is a
23
25
  // meaningful value here rather than a missing one.
24
26
  type ThemeHeadingFontFamily = ThemeFontFamily | undefined;
@@ -30,6 +32,7 @@ interface ThemeChangeHandlers {
30
32
  onRadiusChange: (radius: ThemeRadius) => void;
31
33
  onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;
32
34
  onHeadingFontFamilyChange: (headingFontFamily: ThemeHeadingFontFamily) => void;
35
+ onSizeChange: (size: ThemeSize) => void;
33
36
  }
34
37
 
35
38
  interface ThemeContextValue extends ThemeChangeHandlers {
@@ -40,6 +43,7 @@ interface ThemeContextValue extends ThemeChangeHandlers {
40
43
  radius: ThemeRadius;
41
44
  fontFamily: ThemeFontFamily;
42
45
  headingFontFamily: ThemeHeadingFontFamily;
46
+ size: ThemeSize;
43
47
  }
44
48
  // Default theme values used when components render outside a Theme provider
45
49
  const defaultThemeContext: ThemeContextValue = {
@@ -50,12 +54,14 @@ const defaultThemeContext: ThemeContextValue = {
50
54
  radius: themePropDefs.radius.default,
51
55
  fontFamily: themePropDefs.fontFamily.default,
52
56
  headingFontFamily: undefined,
57
+ size: themePropDefs.size.default,
53
58
  onAppearanceChange: noop,
54
59
  onAccentColorChange: noop,
55
60
  onGrayColorChange: noop,
56
61
  onRadiusChange: noop,
57
62
  onFontFamilyChange: noop,
58
63
  onHeadingFontFamilyChange: noop,
64
+ onSizeChange: noop,
59
65
  };
60
66
 
61
67
  const ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);
@@ -86,61 +92,61 @@ const Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRe
86
92
  });
87
93
  Theme.displayName = 'Theme';
88
94
 
89
- const ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>(
90
- (props, forwardedRef) => {
91
- const {
92
- appearance: appearanceProp = themePropDefs.appearance.default,
93
- accentColor: accentColorProp = themePropDefs.accentColor.default,
94
- grayColor: grayColorProp = themePropDefs.grayColor.default,
95
- radius: radiusProp = themePropDefs.radius.default,
96
- fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,
97
- headingFontFamily: headingFontFamilyProp,
98
- hasBackground = themePropDefs.hasBackground.default,
99
- ...rootProps
100
- } = props;
95
+ const ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>((props, forwardedRef) => {
96
+ const {
97
+ appearance: appearanceProp = themePropDefs.appearance.default,
98
+ accentColor: accentColorProp = themePropDefs.accentColor.default,
99
+ grayColor: grayColorProp = themePropDefs.grayColor.default,
100
+ radius: radiusProp = themePropDefs.radius.default,
101
+ fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,
102
+ headingFontFamily: headingFontFamilyProp,
103
+ size: sizeProp = themePropDefs.size.default,
104
+ hasBackground = themePropDefs.hasBackground.default,
105
+ ...rootProps
106
+ } = props;
101
107
 
102
- // Each of these follows its prop but stays independently settable, so
103
- // `ThemePanel` can change the theme at runtime. Syncing during render
104
- // rather than in an effect matters here: an effect would commit the old
105
- // theme first and re-render every consumer of the context a second time.
106
- const [appearance, setAppearance] = usePropSyncedState(appearanceProp);
107
- const [accentColor, setAccentColor] = usePropSyncedState(accentColorProp);
108
- const [grayColor, setGrayColor] = usePropSyncedState(grayColorProp);
109
- const [radius, setRadius] = usePropSyncedState(radiusProp);
110
- const [fontFamily, setFontFamily] = usePropSyncedState(fontFamilyProp);
111
- const [headingFontFamily, setHeadingFontFamily] = usePropSyncedState(headingFontFamilyProp);
108
+ // Each of these follows its prop but stays independently settable, so
109
+ // `ThemePanel` can change the theme at runtime. Syncing during render
110
+ // rather than in an effect matters here: an effect would commit the old
111
+ // theme first and re-render every consumer of the context a second time.
112
+ const [appearance, setAppearance] = usePropSyncedState(appearanceProp);
113
+ const [accentColor, setAccentColor] = usePropSyncedState(accentColorProp);
114
+ const [grayColor, setGrayColor] = usePropSyncedState(grayColorProp);
115
+ const [radius, setRadius] = usePropSyncedState(radiusProp);
116
+ const [fontFamily, setFontFamily] = usePropSyncedState(fontFamilyProp);
117
+ const [headingFontFamily, setHeadingFontFamily] = usePropSyncedState(headingFontFamilyProp);
118
+ const [size, setSize] = usePropSyncedState(sizeProp);
112
119
 
113
- return (
114
- <ThemeImpl
115
- {...rootProps}
116
- ref={forwardedRef}
117
- isRoot
118
- hasBackground={hasBackground}
119
- //
120
- appearance={appearance}
121
- accentColor={accentColor}
122
- grayColor={grayColor}
123
- radius={radius}
124
- fontFamily={fontFamily}
125
- headingFontFamily={headingFontFamily}
126
- //
127
- onAppearanceChange={setAppearance}
128
- onAccentColorChange={setAccentColor}
129
- onGrayColorChange={setGrayColor}
130
- onRadiusChange={setRadius}
131
- onFontFamilyChange={setFontFamily}
132
- onHeadingFontFamilyChange={setHeadingFontFamily}
133
- />
134
- );
135
- },
136
- );
120
+ return (
121
+ <ThemeImpl
122
+ {...rootProps}
123
+ ref={forwardedRef}
124
+ isRoot
125
+ hasBackground={hasBackground}
126
+ //
127
+ appearance={appearance}
128
+ accentColor={accentColor}
129
+ grayColor={grayColor}
130
+ radius={radius}
131
+ fontFamily={fontFamily}
132
+ headingFontFamily={headingFontFamily}
133
+ size={size}
134
+ //
135
+ onAppearanceChange={setAppearance}
136
+ onAccentColorChange={setAccentColor}
137
+ onGrayColorChange={setGrayColor}
138
+ onRadiusChange={setRadius}
139
+ onFontFamilyChange={setFontFamily}
140
+ onHeadingFontFamilyChange={setHeadingFontFamily}
141
+ onSizeChange={setSize}
142
+ />
143
+ );
144
+ });
137
145
  ThemeRoot.displayName = 'ThemeRoot';
138
146
 
139
147
  type ThemeImplElement = React.ElementRef<'div'>;
140
148
  interface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}
141
- interface ThemeImplPublicProps
142
- extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,
143
- ThemeOwnProps {}
149
+ interface ThemeImplPublicProps extends ComponentPropsWithout<'div', RemovedProps | 'dir'>, ThemeOwnProps {}
144
150
  interface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {
145
151
  isRoot?: boolean;
146
152
  }
@@ -166,6 +172,7 @@ const ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, for
166
172
  radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,
167
173
  fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,
168
174
  headingFontFamily = props.headingFontFamily ?? context?.headingFontFamily,
175
+ size = props.size ?? context?.size ?? themePropDefs.size.default,
169
176
  //
170
177
  onAppearanceChange = noop,
171
178
  onAccentColorChange = noop,
@@ -173,14 +180,14 @@ const ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, for
173
180
  onRadiusChange = noop,
174
181
  onFontFamilyChange = noop,
175
182
  onHeadingFontFamilyChange = noop,
183
+ onSizeChange = noop,
176
184
  //
177
185
  ...themeProps
178
186
  } = props;
179
187
  const Comp = asChild ? Slot.Root : 'div';
180
188
  const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;
181
189
  const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';
182
- const hasBackground =
183
- hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;
190
+ const hasBackground = hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;
184
191
 
185
192
  // `data-os` can only be resolved on the client. Writing it straight to the
186
193
  // DOM keeps it out of the server markup — so hydration still matches — without
@@ -212,6 +219,7 @@ const ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, for
212
219
  radius,
213
220
  fontFamily,
214
221
  headingFontFamily,
222
+ size,
215
223
  //
216
224
  onAppearanceChange,
217
225
  onAccentColorChange,
@@ -219,6 +227,7 @@ const ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, for
219
227
  onRadiusChange,
220
228
  onFontFamilyChange,
221
229
  onHeadingFontFamilyChange,
230
+ onSizeChange,
222
231
  }),
223
232
  [
224
233
  appearance,
@@ -228,6 +237,7 @@ const ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, for
228
237
  radius,
229
238
  fontFamily,
230
239
  headingFontFamily,
240
+ size,
231
241
  //
232
242
  onAppearanceChange,
233
243
  onAccentColorChange,
@@ -235,29 +245,34 @@ const ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, for
235
245
  onRadiusChange,
236
246
  onFontFamilyChange,
237
247
  onHeadingFontFamilyChange,
248
+ onSizeChange,
238
249
  ],
239
250
  )}
240
251
  >
241
- <Comp
242
- data-is-root-theme={isRoot ? 'true' : 'false'}
243
- data-accent-color={accentColor}
244
- data-gray-color={resolvedGrayColor}
245
- // for nested `Theme` background
246
- data-has-background={hasBackground ? 'true' : 'false'}
247
- data-radius={radius}
248
- data-font-family={fontFamily}
249
- data-heading-font-family={headingFontFamily}
250
- ref={composedRef}
251
- {...themeProps}
252
- className={classNames(
253
- 'radix-themes',
254
- {
255
- light: appearance === 'light',
256
- dark: appearance === 'dark',
257
- },
258
- themeProps.className,
259
- )}
260
- />
252
+ {/* Size travels on its own context as a bare string, so the components
253
+ that read it do not re-render when another theme value changes. */}
254
+ <ThemeSizeContext.Provider value={size}>
255
+ <Comp
256
+ data-is-root-theme={isRoot ? 'true' : 'false'}
257
+ data-accent-color={accentColor}
258
+ data-gray-color={resolvedGrayColor}
259
+ // for nested `Theme` background
260
+ data-has-background={hasBackground ? 'true' : 'false'}
261
+ data-radius={radius}
262
+ data-font-family={fontFamily}
263
+ data-heading-font-family={headingFontFamily}
264
+ ref={composedRef}
265
+ {...themeProps}
266
+ className={classNames(
267
+ 'radix-themes',
268
+ {
269
+ light: appearance === 'light',
270
+ dark: appearance === 'dark',
271
+ },
272
+ themeProps.className,
273
+ )}
274
+ />
275
+ </ThemeSizeContext.Provider>
261
276
  </ThemeContext.Provider>
262
277
  );
263
278
  });
@@ -9,6 +9,7 @@ import { Button } from './button.js';
9
9
  import { IconButton } from './icon-button.js';
10
10
  import { Text } from './text.js';
11
11
  import { extractProps } from '../helpers/extract-props.js';
12
+ import { useThemeSize } from '../helpers/theme-size.js';
12
13
  import { marginPropDefs } from '../props/margin.props.js';
13
14
  import { usePaneBandSize } from './_internal/pane-chrome.js';
14
15
 
@@ -91,7 +92,8 @@ interface ToolbarProps
91
92
  const ToolbarRoot = React.forwardRef<HTMLDivElement, ToolbarProps>((props, forwardedRef) => {
92
93
  // In a Shell pane's header or footer, a toolbar with no size rests one step above the Shell's.
93
94
  const band = usePaneBandSize();
94
- const size: ToolbarSize = props.size ?? band ?? toolbarRootPropDefs.size.default;
95
+ // Elsewhere it takes the nearest Theme's size.
96
+ const size: ToolbarSize = useThemeSize(props.size ?? band ?? undefined, toolbarRootPropDefs.size);
95
97
  const orientation: ToolbarOrientation = props.orientation ?? toolbarRootPropDefs.orientation.default;
96
98
  const { className, orientation: _orientation, backdrop = false, children, ...rootProps } = extractProps(
97
99
  { ...props, size },
@@ -13,3 +13,4 @@ export * from './map-prop-values.js';
13
13
  export * from './merge-styles.js';
14
14
  export * from './normalize-to-px.js';
15
15
  export * from './require-react-element.js';
16
+ export * from './theme-size.js';
@@ -1,5 +1,3 @@
1
- import type { baseButtonPropDefs } from '../components/_internal/base-button.props.js';
2
- import type { spinnerPropDefs } from '../components/spinner.props.js';
3
1
  import type { textPropDefs } from '../components/text.props.js';
4
2
  import type { Responsive } from '../props/prop-def.js';
5
3
 
@@ -16,19 +14,4 @@ function mapResponsiveProp<Input extends string, Output>(
16
14
  );
17
15
  }
18
16
 
19
-
20
- function mapButtonSizeToSpinnerSize(
21
- size: (typeof baseButtonPropDefs.size.values)[number]
22
- ): (typeof spinnerPropDefs.size.values)[number] {
23
- switch (size) {
24
- case '1':
25
- return '1';
26
- case '2':
27
- case '3':
28
- return '2';
29
- case '4':
30
- return '3';
31
- }
32
- }
33
-
34
- export { mapResponsiveProp, mapButtonSizeToSpinnerSize };
17
+ export { mapResponsiveProp };
@@ -0,0 +1,73 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+
5
+ type ThemeSize = '1' | '2' | '3' | '4';
6
+
7
+ /** The rest of the 1-4 index when no Theme states a size. */
8
+ const THEME_SIZE_DEFAULT: ThemeSize = '2';
9
+
10
+ /**
11
+ * The app-wide size index, provided by `Theme` beside `ThemeContext`.
12
+ *
13
+ * It is its own context, holding one string, so a component that only needs
14
+ * the size does not re-render when the accent colour or appearance changes.
15
+ */
16
+ const ThemeSizeContext = React.createContext<ThemeSize>(THEME_SIZE_DEFAULT);
17
+ ThemeSizeContext.displayName = 'ThemeSizeContext';
18
+
19
+ interface SizePropDef {
20
+ values: readonly string[];
21
+ default?: string;
22
+ }
23
+
24
+ /**
25
+ * Maps the theme size onto a component's own range: the value itself when the
26
+ * component has it, otherwise the nearest end of the range (`4` on a 1-3 scale
27
+ * is `3`, on a 1-2 scale it is `2`).
28
+ */
29
+ function clampSize(size: ThemeSize, values: readonly string[]): string {
30
+ if (values.includes(size)) return size;
31
+ const n = Number(size);
32
+ let nearest = values[0];
33
+ let distance = Infinity;
34
+ for (let i = 0; i < values.length; i++) {
35
+ const d = Math.abs(Number(values[i]) - n);
36
+ if (d < distance) {
37
+ distance = d;
38
+ nearest = values[i];
39
+ }
40
+ }
41
+ return nearest;
42
+ }
43
+
44
+ /**
45
+ * The size a component on the 1-4 index takes: what the caller said, else the
46
+ * nearest Theme's size, mapped into the component's range.
47
+ */
48
+ function useThemeSize<V>(explicit: V | undefined, propDef: SizePropDef): V {
49
+ const themeSize = React.useContext(ThemeSizeContext);
50
+ if (explicit !== undefined) return explicit;
51
+ // The clamped value is one of `propDef.values`, which is what `V` ranges over.
52
+ return clampSize(themeSize, propDef.values) as V;
53
+ }
54
+
55
+ /**
56
+ * Fills `size` from the nearest Theme when the caller left it unset, so the
57
+ * result can go straight into `extractProps`. An explicit size, responsive
58
+ * object included, wins.
59
+ *
60
+ * Returns the same props object when there is nothing to fill: when a size is
61
+ * set, or when the theme size resolves to the prop def's own default (the
62
+ * common case, a Theme with no size), so `extractProps` applies it as before.
63
+ */
64
+ function useThemeSizeProps<P extends { size?: unknown }>(props: P, propDef: SizePropDef): P {
65
+ const themeSize = React.useContext(ThemeSizeContext);
66
+ if (props.size !== undefined) return props;
67
+ const size = clampSize(themeSize, propDef.values);
68
+ if (size === propDef.default) return props;
69
+ return { ...props, size };
70
+ }
71
+
72
+ export { ThemeSizeContext, THEME_SIZE_DEFAULT, clampSize, useThemeSize, useThemeSizeProps };
73
+ export type { ThemeSize };
@@ -4,6 +4,10 @@
4
4
  /* Standard border width constants */
5
5
  --border-width-standard: 1px;
6
6
 
7
+ /* One focus ring: outline var(--focus-ring-width) solid var(--focus-8), offset var(--focus-ring-offset) */
8
+ --focus-ring-width: 2px;
9
+ --focus-ring-offset: 2px;
10
+
7
11
  /* Raised variant 3D effect constants - simplified for button-like components */
8
12
  --raised-elevation-offset: -0.02em;
9
13
  --raised-active-padding-offset-1: 0.5px;
@@ -86,6 +86,22 @@
86
86
  --slot-inset-3: calc(4px * var(--scale));
87
87
  --slot-inset-4: calc(4px * var(--scale));
88
88
 
89
+ /* Marks: the box of a checkbox or radio by index, and the switch and slider tracks. */
90
+ --mark-1: calc(16px * var(--scale));
91
+ --mark-2: calc(20px * var(--scale));
92
+ --mark-3: calc(24px * var(--scale));
93
+ --mark-4: calc(26px * var(--scale));
94
+ --mark-5: calc(28px * var(--scale));
95
+ --switch-w-1: calc(34px * var(--scale));
96
+ --switch-w-2: calc(40px * var(--scale));
97
+ --switch-w-3: calc(44px * var(--scale));
98
+ --switch-w-4: calc(48px * var(--scale));
99
+ --switch-inset: calc(2px * var(--scale));
100
+ --slider-track-1: calc(4px * var(--scale));
101
+ --slider-track-2: calc(5px * var(--scale));
102
+ --slider-track-3: calc(6px * var(--scale));
103
+ --slider-track-4: calc(7px * var(--scale));
104
+
89
105
  /* Overlay widths by index. */
90
106
  --overlay-w-1: calc(360px * var(--scale));
91
107
  --overlay-w-2: calc(440px * var(--scale));