@sanity/ui 3.0.0-static.18 → 3.0.0-static.19

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 (542) hide show
  1. package/dist/_chunks-cjs/_visual-editing.cjs +137 -136
  2. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
  3. package/dist/_chunks-cjs/buildCommand.cjs +21 -22
  4. package/dist/_chunks-cjs/buildCommand.cjs.map +1 -1
  5. package/dist/_chunks-es/_visual-editing.js +138 -137
  6. package/dist/_chunks-es/_visual-editing.js.map +1 -1
  7. package/dist/_visual-editing.d.cts +12 -22
  8. package/dist/_visual-editing.d.ts +12 -22
  9. package/dist/cli.cjs +1 -1
  10. package/dist/css.cjs +1589 -2017
  11. package/dist/css.cjs.map +1 -1
  12. package/dist/css.d.cts +9423 -874
  13. package/dist/css.d.ts +9423 -874
  14. package/dist/css.js +1591 -2019
  15. package/dist/css.js.map +1 -1
  16. package/dist/index.cjs +28 -40
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +23 -21
  19. package/dist/index.d.ts +23 -21
  20. package/dist/index.js +30 -42
  21. package/dist/index.js.map +1 -1
  22. package/dist/theme.cjs +2749 -2756
  23. package/dist/theme.cjs.map +1 -1
  24. package/dist/theme.d.cts +242 -161
  25. package/dist/theme.d.ts +242 -161
  26. package/dist/theme.js +2750 -2757
  27. package/dist/theme.js.map +1 -1
  28. package/dist/ui-system.css +15719 -16097
  29. package/dist/ui-system.min.css +1 -1
  30. package/dist/ui-theme.css +850 -4568
  31. package/dist/ui-theme.min.css +1 -1
  32. package/dist/ui.css +16569 -20772
  33. package/dist/ui.min.css +1 -1
  34. package/package.json +10 -15
  35. package/src/cli/buildCommand.ts +13 -30
  36. package/src/core/StyleTags.tsx +4 -12
  37. package/src/core/_compat/styles/_responsive.ts +1 -1
  38. package/src/core/_compat/theme/theme.test.tsx +4 -5
  39. package/src/core/_compat/theme/themeColorProvider.tsx +2 -2
  40. package/src/core/_compat/theme/themeContext.ts +2 -2
  41. package/src/core/_compat/theme/themeProvider.tsx +2 -2
  42. package/src/core/_compat/theme/types.ts +1 -1
  43. package/src/core/_compat/theme/useRootTheme.ts +1 -1
  44. package/src/core/_compat/theme/useTheme.ts +1 -1
  45. package/src/core/components/autocomplete/__workshop__/async.tsx +2 -2
  46. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
  47. package/src/core/components/autocomplete/__workshop__/custom.tsx +11 -11
  48. package/src/core/components/autocomplete/__workshop__/example.tsx +6 -7
  49. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +2 -2
  50. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -1
  51. package/src/core/components/autocomplete/autocomplete.tsx +5 -5
  52. package/src/core/components/autocomplete/autocompleteOption.tsx +1 -1
  53. package/src/core/components/autocomplete/autocompleteReducer.ts +1 -1
  54. package/src/core/components/autocomplete/constants.ts +1 -1
  55. package/src/core/components/autocomplete/types.ts +1 -1
  56. package/src/core/components/breadcrumbs/__workshop__/example.tsx +1 -1
  57. package/src/core/components/breadcrumbs/breadcrumbs.tsx +7 -7
  58. package/src/core/components/dialog/__workshop__/activate.tsx +4 -4
  59. package/src/core/components/dialog/__workshop__/position.tsx +1 -1
  60. package/src/core/components/dialog/__workshop__/props.tsx +1 -1
  61. package/src/core/components/dialog/__workshop__/wrapped.tsx +2 -2
  62. package/src/core/components/dialog/dialog.tsx +15 -8
  63. package/src/core/components/dialog/dialogCard.tsx +18 -3
  64. package/src/core/components/dialog/dialogContext.ts +1 -1
  65. package/src/core/components/dialog/dialogProvider.tsx +3 -3
  66. package/src/core/components/dialog/useDialog.ts +1 -1
  67. package/src/core/components/hotkeys/hotkeys.tsx +4 -4
  68. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +5 -4
  69. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +2 -2
  70. package/src/core/components/menu/__workshop__/customMenuItem.tsx +3 -3
  71. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  72. package/src/core/components/menu/__workshop__/groups.tsx +2 -2
  73. package/src/core/components/menu/__workshop__/menuButton.tsx +1 -1
  74. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  75. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  76. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +13 -4
  77. package/src/core/components/menu/__workshop__/selectedItem.tsx +2 -2
  78. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  79. package/src/core/components/menu/menu.test.tsx +6 -7
  80. package/src/core/components/menu/menu.tsx +2 -2
  81. package/src/core/components/menu/menuButton.tsx +9 -9
  82. package/src/core/components/menu/menuContext.ts +1 -1
  83. package/src/core/components/menu/menuDivider.tsx +3 -3
  84. package/src/core/components/menu/menuGroup.tsx +9 -9
  85. package/src/core/components/menu/menuItem.tsx +9 -6
  86. package/src/core/components/menu/useMenu.ts +1 -1
  87. package/src/core/components/menu/useMenuController.ts +4 -4
  88. package/src/core/components/skeleton/__workshop__/delay.tsx +1 -1
  89. package/src/core/components/skeleton/__workshop__/skeleton.tsx +2 -2
  90. package/src/core/components/skeleton/codeSkeleton.tsx +5 -5
  91. package/src/core/components/skeleton/headingSkeleton.tsx +5 -5
  92. package/src/core/components/skeleton/labelSkeleton.tsx +5 -5
  93. package/src/core/components/skeleton/skeleton.tsx +4 -4
  94. package/src/core/components/skeleton/textSkeleton.tsx +5 -5
  95. package/src/core/components/tab/__workshop__/example.tsx +1 -1
  96. package/src/core/components/tab/tab.tsx +7 -7
  97. package/src/core/components/tab/tabList.tsx +14 -7
  98. package/src/core/components/tab/tabPanel.tsx +10 -7
  99. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  100. package/src/core/components/toast/toast.test.tsx +5 -5
  101. package/src/core/components/toast/toast.tsx +6 -7
  102. package/src/core/components/toast/toastContext.ts +1 -1
  103. package/src/core/components/toast/toastLayer.tsx +2 -2
  104. package/src/core/components/toast/toastProvider.tsx +1 -1
  105. package/src/core/components/toast/types.ts +1 -1
  106. package/src/core/components/toast/useToast.ts +1 -1
  107. package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
  108. package/src/core/components/tree/__workshop__/basic.tsx +1 -1
  109. package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
  110. package/src/core/components/tree/helpers.ts +1 -1
  111. package/src/core/components/tree/tree.tsx +6 -6
  112. package/src/core/components/tree/treeContext.ts +1 -1
  113. package/src/core/components/tree/treeGroup.tsx +2 -2
  114. package/src/core/components/tree/treeItem.tsx +15 -15
  115. package/src/core/components/tree/types.ts +2 -2
  116. package/src/core/components/tree/useTree.ts +1 -1
  117. package/src/core/hooks/useClickOutside.test.tsx +15 -16
  118. package/src/core/hooks/useClickOutsideEvent.test.tsx +4 -5
  119. package/src/core/hooks/useDelayed.test.ts +6 -7
  120. package/src/core/hooks/useDelayedState.ts +1 -1
  121. package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -1
  122. package/src/core/hooks/useElementSize.ts +1 -1
  123. package/src/core/hooks/useForwardedRef.ts +1 -1
  124. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  125. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +1 -0
  126. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +2 -2
  127. package/src/core/hooks/usePrefersDark.hydration.test.tsx +4 -4
  128. package/src/core/hooks/usePrefersDark.test.tsx +1 -0
  129. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +4 -4
  130. package/src/core/hooks/usePrefersReducedMotion.test.tsx +1 -0
  131. package/src/core/middleware/origin.ts +1 -1
  132. package/src/core/primitives/_selectable/selectable.tsx +3 -3
  133. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +1 -1
  134. package/src/core/primitives/avatar/avatar.tsx +6 -6
  135. package/src/core/primitives/avatar/avatarCounter.tsx +3 -3
  136. package/src/core/primitives/avatar/avatarStack.tsx +7 -7
  137. package/src/core/primitives/avatar/types.ts +1 -3
  138. package/src/core/primitives/badge/badge.test.tsx +2 -3
  139. package/src/core/primitives/badge/badge.tsx +3 -3
  140. package/src/core/primitives/box/__workshop__/responsive.tsx +2 -1
  141. package/src/core/primitives/box/box.tsx +4 -2
  142. package/src/core/primitives/button/__workshop__/custom.tsx +2 -2
  143. package/src/core/primitives/button/__workshop__/customIcons.tsx +3 -3
  144. package/src/core/primitives/button/__workshop__/disabled.tsx +9 -9
  145. package/src/core/primitives/button/__workshop__/props.tsx +3 -4
  146. package/src/core/primitives/button/__workshop__/stacked.tsx +4 -5
  147. package/src/core/primitives/button/button.test.tsx +2 -3
  148. package/src/core/primitives/button/button.tsx +11 -6
  149. package/src/core/primitives/card/__workshop__/asButton.tsx +16 -7
  150. package/src/core/primitives/card/__workshop__/checkered.tsx +1 -1
  151. package/src/core/primitives/card/__workshop__/index.ts +1 -1
  152. package/src/core/primitives/card/__workshop__/interactive.tsx +1 -1
  153. package/src/core/primitives/card/__workshop__/listNavigation.tsx +3 -3
  154. package/src/core/primitives/card/__workshop__/props.tsx +3 -3
  155. package/src/core/primitives/card/__workshop__/selected.tsx +2 -2
  156. package/src/core/primitives/card/__workshop__/{allTones.tsx → tones.tsx} +3 -3
  157. package/src/core/primitives/card/card.tsx +4 -4
  158. package/src/core/primitives/card/cardContext.ts +2 -2
  159. package/src/core/primitives/card/cardProvider.tsx +3 -3
  160. package/src/core/primitives/card/types.ts +2 -2
  161. package/src/core/primitives/card/useCard.ts +2 -1
  162. package/src/core/primitives/checkbox/__workshop__/props.tsx +2 -0
  163. package/src/core/primitives/checkbox/__workshop__/tones.tsx +11 -20
  164. package/src/core/primitives/checkbox/checkbox.tsx +5 -7
  165. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  166. package/src/core/primitives/code/code.tsx +3 -3
  167. package/src/core/primitives/container/container.tsx +4 -4
  168. package/src/core/primitives/flex/flex.tsx +2 -2
  169. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +1 -1
  170. package/src/core/primitives/heading/heading.tsx +2 -2
  171. package/src/core/primitives/inline/__workshop__/plain.tsx +1 -1
  172. package/src/core/primitives/inline/inline.tsx +2 -2
  173. package/src/core/primitives/inline/types.ts +1 -0
  174. package/src/core/primitives/kbd/kbd.tsx +5 -5
  175. package/src/core/primitives/label/label.tsx +5 -5
  176. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +2 -2
  177. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -4
  178. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +4 -4
  179. package/src/core/primitives/popover/__workshop__/TestStory.tsx +2 -3
  180. package/src/core/primitives/popover/constants.ts +1 -1
  181. package/src/core/primitives/popover/floating-ui/size.ts +2 -2
  182. package/src/core/primitives/popover/helpers.ts +1 -1
  183. package/src/core/primitives/popover/popover.tsx +1 -1
  184. package/src/core/primitives/popover/popoverLayer.tsx +4 -4
  185. package/src/core/primitives/popover/types.ts +3 -2
  186. package/src/core/primitives/radio/__workshop__/example.tsx +1 -1
  187. package/src/core/primitives/radio/radio.tsx +5 -5
  188. package/src/core/primitives/select/__workshop__/plain.tsx +15 -3
  189. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  190. package/src/core/primitives/select/select.tsx +4 -10
  191. package/src/core/primitives/spinner/__workshop__/Props.tsx +1 -2
  192. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +3 -3
  193. package/src/core/primitives/spinner/spinner.tsx +3 -3
  194. package/src/core/primitives/stack/__workshop__/plain.tsx +1 -1
  195. package/src/core/primitives/stack/stack.tsx +5 -5
  196. package/src/core/primitives/switch/switch.tsx +3 -3
  197. package/src/core/primitives/text/__workshop__/colored.tsx +5 -5
  198. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  199. package/src/core/primitives/text/text.tsx +6 -6
  200. package/src/core/primitives/textArea/__workshop__/plain.tsx +35 -23
  201. package/src/core/primitives/textArea/textArea.tsx +14 -5
  202. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +1 -1
  203. package/src/core/primitives/textInput/__workshop__/plain.tsx +9 -15
  204. package/src/core/primitives/textInput/__workshop__/states.tsx +4 -4
  205. package/src/core/primitives/textInput/__workshop__/tones.tsx +2 -2
  206. package/src/core/primitives/textInput/textInput.tsx +13 -11
  207. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +2 -2
  208. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +1 -1
  209. package/src/core/primitives/tooltip/__workshop__/props.tsx +5 -4
  210. package/src/core/primitives/tooltip/constants.ts +1 -1
  211. package/src/core/primitives/tooltip/tooltip.test.tsx +61 -60
  212. package/src/core/primitives/tooltip/tooltip.tsx +11 -6
  213. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +1 -1
  214. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +3 -3
  215. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -1
  216. package/src/core/primitives/tooltip/tooltipLayer.tsx +4 -4
  217. package/src/core/primitives/types.ts +15 -24
  218. package/src/core/types/badge.ts +1 -1
  219. package/src/core/types/button.ts +1 -1
  220. package/src/core/types/card.ts +1 -1
  221. package/src/core/types/selectable.ts +1 -1
  222. package/src/core/utils/arrow/arrow.tsx +5 -14
  223. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +5 -5
  224. package/src/core/utils/boundaryElement/boundaryElementContext.ts +1 -1
  225. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +2 -2
  226. package/src/core/utils/boundaryElement/useBoundaryElement.ts +1 -1
  227. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +15 -8
  228. package/src/core/utils/elementQuery/elementQuery.tsx +1 -1
  229. package/src/core/utils/errorBoundary.tsx +4 -4
  230. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +5 -5
  231. package/src/core/utils/layer/__workshop__/nested.tsx +3 -3
  232. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +9 -5
  233. package/src/core/utils/layer/getLayerContext.test.ts +3 -1
  234. package/src/core/utils/layer/getLayerContext.ts +1 -1
  235. package/src/core/utils/layer/layer.test.tsx +5 -5
  236. package/src/core/utils/layer/layer.tsx +2 -2
  237. package/src/core/utils/layer/layerCard.tsx +3 -3
  238. package/src/core/utils/layer/layerContext.ts +1 -1
  239. package/src/core/utils/layer/layerProvider.tsx +10 -2
  240. package/src/core/utils/layer/useLayer.ts +1 -1
  241. package/src/core/utils/portal/__workshop__/named.tsx +3 -3
  242. package/src/core/utils/portal/portal.test.tsx +5 -5
  243. package/src/core/utils/portal/portal.tsx +3 -2
  244. package/src/core/utils/portal/portalContext.ts +1 -1
  245. package/src/core/utils/portal/portalProvider.tsx +2 -2
  246. package/src/core/utils/portal/usePortal.ts +1 -1
  247. package/src/core/utils/srOnly/srOnly.tsx +3 -3
  248. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
  249. package/src/core/utils/virtualList/virtualList.tsx +3 -3
  250. package/src/css/_assign.ts +3 -0
  251. package/src/css/_compileStyle.ts +12 -4
  252. package/src/css/_compileTheme.ts +10 -13
  253. package/src/css/_composeClassNames.ts +12 -0
  254. package/src/css/_fromEntries.ts +3 -0
  255. package/src/css/_getClassNames.ts +9 -0
  256. package/src/css/_hash.ts +9 -0
  257. package/src/css/_mergeStyles.ts +1 -1
  258. package/src/css/_resp.ts +6 -12
  259. package/src/css/_scopeClassName.ts +9 -0
  260. package/src/css/_scopeClassNames.ts +12 -0
  261. package/src/css/_system.style.ts +2 -0
  262. package/src/css/aspects/border/border.style.ts +2 -2
  263. package/src/css/aspects/border/border.ts +3 -3
  264. package/src/css/aspects/border/types.ts +1 -1
  265. package/src/css/aspects/boxSizing/boxSizing.style.ts +10 -0
  266. package/src/css/aspects/boxSizing/boxSizing.ts +8 -0
  267. package/src/css/aspects/boxSizing/index.ts +2 -0
  268. package/src/css/aspects/boxSizing/types.ts +9 -0
  269. package/src/css/aspects/display/display.style.ts +8 -8
  270. package/src/css/aspects/display/display.ts +3 -3
  271. package/src/css/aspects/display/types.ts +1 -1
  272. package/src/css/aspects/flex/flex.ts +3 -3
  273. package/src/css/aspects/flex/types.ts +1 -1
  274. package/src/css/aspects/flexItem/flex.style.ts +1 -1
  275. package/src/css/aspects/flexItem/flexItem.ts +3 -3
  276. package/src/css/aspects/flexItem/types.ts +1 -1
  277. package/src/css/aspects/font/font.style.ts +33 -22
  278. package/src/css/aspects/font/font.ts +3 -3
  279. package/src/css/aspects/font/types.ts +1 -1
  280. package/src/css/aspects/gap/gap.style.ts +2 -2
  281. package/src/css/aspects/gap/gap.ts +3 -3
  282. package/src/css/aspects/gap/types.ts +2 -2
  283. package/src/css/aspects/grid/grid.ts +3 -3
  284. package/src/css/aspects/grid/types.ts +1 -1
  285. package/src/css/aspects/gridItem/gridItem.ts +3 -3
  286. package/src/css/aspects/gridItem/types.ts +1 -1
  287. package/src/css/aspects/height/height.ts +3 -3
  288. package/src/css/aspects/index.ts +1 -0
  289. package/src/css/aspects/inset/inset.ts +3 -3
  290. package/src/css/aspects/inset/types.ts +1 -1
  291. package/src/css/aspects/margin/margin.style.ts +10 -10
  292. package/src/css/aspects/margin/margin.ts +3 -3
  293. package/src/css/aspects/margin/types.ts +1 -1
  294. package/src/css/aspects/maxWidth/maxWidth.style.ts +1 -1
  295. package/src/css/aspects/maxWidth/maxWidth.ts +4 -3
  296. package/src/css/aspects/maxWidth/types.ts +2 -2
  297. package/src/css/aspects/minWidth/minWidth.ts +4 -3
  298. package/src/css/aspects/minWidth/types.ts +1 -1
  299. package/src/css/aspects/overflow/overflow.ts +3 -3
  300. package/src/css/aspects/overflow/types.ts +1 -1
  301. package/src/css/aspects/padding/padding.style.ts +2 -5
  302. package/src/css/aspects/padding/padding.ts +3 -3
  303. package/src/css/aspects/padding/types.ts +2 -2
  304. package/src/css/aspects/pointerEvents/pointerEvents.ts +3 -3
  305. package/src/css/aspects/position/position.ts +3 -3
  306. package/src/css/aspects/position/types.ts +1 -1
  307. package/src/css/aspects/radius/radius.style.ts +1 -1
  308. package/src/css/aspects/radius/radius.ts +3 -3
  309. package/src/css/aspects/radius/types.ts +2 -2
  310. package/src/css/aspects/shadow/shadow.style.ts +7 -7
  311. package/src/css/aspects/shadow/shadow.ts +3 -3
  312. package/src/css/aspects/shadow/types.ts +2 -2
  313. package/src/css/aspects/textAlign/textAlign.style.ts +1 -1
  314. package/src/css/aspects/textAlign/textAlign.ts +3 -3
  315. package/src/css/aspects/textOverflow/textOverflow.ts +3 -3
  316. package/src/css/aspects/width/types.ts +2 -2
  317. package/src/css/aspects/width/width.style.ts +1 -1
  318. package/src/css/aspects/width/width.ts +4 -3
  319. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +1 -1
  320. package/src/css/components/breadcrumbs/breadcrumbs.ts +2 -2
  321. package/src/css/components/dialog/dialog.style.ts +14 -16
  322. package/src/css/components/dialog/dialog.ts +9 -8
  323. package/src/css/components/menu/menu.style.ts +2 -2
  324. package/src/css/components/menu/menu.ts +3 -3
  325. package/src/css/components/skeleton/skeleton.style.ts +24 -17
  326. package/src/css/components/skeleton/skeleton.ts +8 -7
  327. package/src/css/components/skeleton/types.ts +4 -6
  328. package/src/css/components/toast/toast.style.ts +1 -1
  329. package/src/css/components/toast/toast.ts +6 -6
  330. package/src/css/components/tree/tree.style.ts +7 -23
  331. package/src/css/components/tree/tree.ts +2 -2
  332. package/src/css/constants.ts +0 -3
  333. package/src/css/index.ts +3 -5
  334. package/src/css/prefix/constants.ts +6 -0
  335. package/src/css/prefix/types.ts +1 -0
  336. package/src/css/primitives/_arrow/_arrow.style.ts +11 -13
  337. package/src/css/primitives/_arrow/_arrow.ts +5 -5
  338. package/src/css/primitives/_input/_input.style.ts +171 -75
  339. package/src/css/primitives/_input/input.ts +13 -10
  340. package/src/css/primitives/_input/types.ts +3 -3
  341. package/src/css/primitives/_selectable/_selectable.style.ts +5 -6
  342. package/src/css/primitives/_selectable/selectable.ts +4 -3
  343. package/src/css/primitives/_selectable/types.ts +2 -2
  344. package/src/css/primitives/avatar/avatar.style.ts +38 -39
  345. package/src/css/primitives/avatar/avatar.ts +8 -8
  346. package/src/css/primitives/avatar/types.ts +3 -3
  347. package/src/css/primitives/badge/badge.style.ts +2 -3
  348. package/src/css/primitives/badge/badge.ts +7 -3
  349. package/src/css/primitives/badge/types.ts +2 -2
  350. package/src/css/primitives/box/box.style.ts +5 -15
  351. package/src/css/primitives/box/box.ts +7 -9
  352. package/src/css/primitives/box/types.ts +3 -6
  353. package/src/css/primitives/button/button.style.ts +189 -162
  354. package/src/css/primitives/button/button.ts +11 -4
  355. package/src/css/primitives/button/types.ts +1 -1
  356. package/src/css/primitives/card/card.style.ts +102 -68
  357. package/src/css/primitives/card/card.ts +5 -7
  358. package/src/css/primitives/card/types.ts +2 -2
  359. package/src/css/primitives/checkbox/checkbox.style.ts +125 -101
  360. package/src/css/primitives/checkbox/checkbox.ts +3 -3
  361. package/src/css/primitives/code/code.style.ts +24 -26
  362. package/src/css/primitives/code/code.ts +7 -3
  363. package/src/css/primitives/code/types.ts +2 -2
  364. package/src/css/primitives/container/container.style.ts +1 -1
  365. package/src/css/primitives/container/container.ts +4 -3
  366. package/src/css/primitives/container/types.ts +2 -2
  367. package/src/css/primitives/heading/heading.style.ts +31 -23
  368. package/src/css/primitives/heading/heading.ts +10 -8
  369. package/src/css/primitives/heading/types.ts +3 -2
  370. package/src/css/primitives/kbd/kbd.style.ts +7 -7
  371. package/src/css/primitives/kbd/kbd.ts +4 -3
  372. package/src/css/primitives/kbd/types.ts +1 -1
  373. package/src/css/primitives/label/label.style.ts +27 -24
  374. package/src/css/primitives/label/label.ts +5 -8
  375. package/src/css/primitives/label/types.ts +4 -3
  376. package/src/css/primitives/popover/popover.style.ts +6 -2
  377. package/src/css/primitives/popover/popover.ts +3 -3
  378. package/src/css/primitives/radio/radio.style.ts +37 -76
  379. package/src/css/primitives/radio/radio.ts +2 -2
  380. package/src/css/primitives/select/select.style.ts +3 -3
  381. package/src/css/primitives/select/select.ts +5 -5
  382. package/src/css/primitives/select/types.ts +1 -1
  383. package/src/css/primitives/spinner/spinner.style.ts +1 -1
  384. package/src/css/primitives/spinner/spinner.ts +3 -3
  385. package/src/css/primitives/stack/stack.style.ts +6 -2
  386. package/src/css/primitives/stack/stack.ts +2 -2
  387. package/src/css/primitives/switch/switch.style.ts +47 -39
  388. package/src/css/primitives/switch/switch.ts +6 -6
  389. package/src/css/primitives/text/text.style.ts +28 -23
  390. package/src/css/primitives/text/text.ts +5 -8
  391. package/src/css/primitives/text/types.ts +2 -2
  392. package/src/css/primitives/textArea/textArea.style.ts +6 -2
  393. package/src/css/primitives/textArea/textArea.ts +4 -4
  394. package/src/css/primitives/textArea/types.ts +1 -1
  395. package/src/css/primitives/textInput/textInput.style.ts +23 -17
  396. package/src/css/primitives/textInput/textInput.ts +4 -4
  397. package/src/css/primitives/textInput/types.ts +2 -8
  398. package/src/css/primitives/token/token.style.ts +4 -4
  399. package/src/css/primitives/tooltip/tooltip.style.ts +5 -4
  400. package/src/css/primitives/tooltip/tooltip.ts +3 -3
  401. package/src/css/renderColor.ts +31 -0
  402. package/src/css/theme/index.ts +14 -0
  403. package/src/css/theme/lib/contract/buildVarContract.ts +76 -0
  404. package/src/css/theme/lib/contract/index.ts +2 -0
  405. package/src/css/theme/lib/contract/types.ts +15 -0
  406. package/src/css/theme/resolveTheme.ts +852 -0
  407. package/src/css/types.ts +25 -914
  408. package/src/css/utils/srOnly/srOnly.style.ts +1 -1
  409. package/src/css/utils/srOnly/srOnly.ts +3 -3
  410. package/src/theme/getScopedTheme.ts +4 -4
  411. package/src/theme/index.ts +0 -5
  412. package/src/theme/types.ts +4 -4
  413. package/src/theme/v0/color/_generic.ts +1 -1
  414. package/src/theme/v0/color/button.ts +1 -1
  415. package/src/theme/v0/color/card.ts +1 -1
  416. package/src/theme/v0/color/color.ts +11 -11
  417. package/src/theme/v0/color/input.ts +1 -1
  418. package/src/theme/v0/color/muted.ts +1 -1
  419. package/src/theme/v0/color/selectable.ts +1 -1
  420. package/src/theme/v0/color/solid.ts +1 -1
  421. package/src/theme/v0/color/spot.ts +1 -1
  422. package/src/theme/v0/styles.ts +1 -1
  423. package/src/theme/v0/theme.ts +7 -7
  424. package/src/theme/v2/avatar.ts +1 -1
  425. package/src/theme/{build → v2/build}/_deprecated/color/_selectable/createSelectableTones.ts +3 -3
  426. package/src/theme/{build → v2/build}/_deprecated/color/_solid/createSolidTones.ts +2 -2
  427. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonModes.ts +7 -2
  428. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonTones.ts +4 -4
  429. package/src/theme/{build → v2/build}/_deprecated/color/card/createCardStates.ts +3 -3
  430. package/src/theme/{build → v2/build}/_deprecated/color/color.test.ts +1 -1
  431. package/src/theme/{build → v2/build}/_deprecated/color/defaults.ts +1 -1
  432. package/src/theme/{build → v2/build}/_deprecated/color/factory.ts +3 -3
  433. package/src/theme/{build → v2/build}/_deprecated/color/input/createInputModes.ts +7 -2
  434. package/src/theme/{build → v2/build}/_deprecated/color/muted/createMuted.ts +2 -2
  435. package/src/theme/{build → v2/build}/_deprecated/color/spot/createSpot.ts +2 -2
  436. package/src/theme/{build → v2/build}/buildColorTheme.test.ts +3 -1
  437. package/src/theme/{build → v2/build}/buildColorTheme.ts +24 -24
  438. package/src/theme/{build → v2/build}/buildTheme.test.ts +10 -8
  439. package/src/theme/{build → v2/build}/buildTheme.ts +4 -4
  440. package/src/theme/{build → v2/build}/colorToken/colorToken.ts +2 -2
  441. package/src/theme/{build → v2/build}/colorToken/compileColorToken.ts +1 -1
  442. package/src/theme/{build → v2/build}/colorToken/types.ts +2 -2
  443. package/src/theme/{build → v2/build}/lib/color-fns/blend/mix.ts +1 -1
  444. package/src/theme/{build → v2/build}/lib/color-fns/blend/multiply.ts +1 -1
  445. package/src/theme/{build → v2/build}/lib/color-fns/blend/screen.ts +1 -1
  446. package/src/theme/{build → v2/build}/lib/color-fns/color-fns.test.ts +1 -1
  447. package/src/theme/{build → v2/build}/lib/color-fns/contrastRatio.ts +5 -2
  448. package/src/theme/{build → v2/build}/lib/color-fns/convert.ts +1 -1
  449. package/src/theme/{build → v2/build}/lib/color-fns/parse.ts +1 -1
  450. package/src/theme/{build → v2/build}/mixThemeColor.test.ts +2 -0
  451. package/src/theme/{build → v2/build}/mixThemeColor.ts +1 -1
  452. package/src/theme/{build → v2/build}/renderColorTheme.ts +27 -27
  453. package/src/theme/{build → v2/build}/renderColorValue.ts +3 -3
  454. package/src/theme/{build → v2/build}/resolveColorTokens.ts +13 -13
  455. package/src/theme/v2/color/_helpers.ts +2 -2
  456. package/src/theme/v2/color/_system.ts +1 -1
  457. package/src/theme/v2/color/avatar.ts +1 -1
  458. package/src/theme/v2/color/badge.ts +1 -1
  459. package/src/theme/v2/color/button.ts +2 -2
  460. package/src/theme/v2/color/color.ts +7 -7
  461. package/src/theme/v2/color/input.ts +5 -1
  462. package/src/theme/v2/color/selectable.ts +2 -2
  463. package/src/theme/v2/color/state.ts +4 -4
  464. package/src/theme/{config → v2/config}/helpers.ts +6 -13
  465. package/src/theme/{config → v2/config}/system.ts +11 -12
  466. package/src/theme/{config → v2/config}/tokens/color/types.ts +14 -10
  467. package/src/theme/{config → v2/config}/tokens/index.ts +0 -1
  468. package/src/theme/{config → v2/config}/tokens/parseTokenValue.test.ts +2 -0
  469. package/src/theme/{config → v2/config}/tokens/parseTokenValue.ts +2 -2
  470. package/src/theme/{config → v2/config}/tokens/types.ts +3 -3
  471. package/src/theme/{config → v2/config}/types.ts +8 -6
  472. package/src/theme/{defaults → v2/defaults}/colorPalette.ts +1 -1
  473. package/src/theme/{defaults → v2/defaults}/colorTokens.ts +1 -1
  474. package/src/theme/{defaults → v2/defaults}/config.ts +1 -1
  475. package/src/theme/{defaults → v2/defaults}/fonts.ts +1 -1
  476. package/src/theme/v2/index.ts +2 -0
  477. package/src/theme/v2/input.ts +1 -1
  478. package/src/theme/v2/theme.ts +8 -8
  479. package/src/theme/{_constants.ts → v3/_constants.ts} +6 -3
  480. package/src/theme/v3/_parseColorToken.ts +185 -0
  481. package/src/theme/v3/buildTheme_v3.ts +11 -7
  482. package/src/theme/v3/color/_constants.ts +15 -0
  483. package/src/theme/v3/color/avatar.ts +14 -0
  484. package/src/theme/v3/color/card.ts +53 -53
  485. package/src/theme/v3/color/color.ts +66 -68
  486. package/src/theme/v3/color/element.ts +8 -8
  487. package/src/theme/v3/color/index.ts +2 -2
  488. package/src/theme/v3/color/token.ts +18 -4
  489. package/src/theme/v3/color/tokens.ts +2 -2
  490. package/src/theme/v3/defaultTokens.ts +73 -85
  491. package/src/theme/v3/index.ts +3 -0
  492. package/src/theme/v3/palette/index.ts +2 -0
  493. package/src/theme/v3/resolveTokens.ts +65 -65
  494. package/src/theme/v3/tokens.ts +2 -2
  495. package/src/theme/v3/types.ts +61 -7
  496. package/src/theme/versioning/getTheme_v2.ts +3 -3
  497. package/src/theme/versioning/is_v0.ts +2 -2
  498. package/src/theme/versioning/is_v2.ts +2 -2
  499. package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
  500. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
  501. package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
  502. package/src/theme/versioning/v0_v2.ts +3 -3
  503. package/src/theme/versioning/v2_v0.ts +4 -4
  504. package/src/theme/versioning/v3_v2.ts +38 -38
  505. package/dist/ui-palette.css +0 -105
  506. package/dist/ui-palette.min.css +0 -1
  507. package/src/css/_comp.test.ts +0 -7
  508. package/src/css/_comp.ts +0 -11
  509. package/src/css/_compilePalette.ts +0 -32
  510. package/src/css/_compileTheme_v3.ts +0 -440
  511. package/src/css/aspects/flex/flex.style.ts +0 -30
  512. package/src/css/composeClassNames.ts +0 -19
  513. package/src/css/primitives/_selectable/__style.ts +0 -117
  514. package/src/css/primitives/checkbox/__styles.ts +0 -129
  515. package/src/css/scopeClassName.ts +0 -7
  516. package/src/css/varNames.ts +0 -607
  517. package/src/css/vars.ts +0 -520
  518. package/src/theme/_types.ts +0 -41
  519. package/src/theme/build/theme.test.ts +0 -27
  520. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  521. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  522. package/src/theme/v3/buildTheme_v3.test.ts +0 -40
  523. package/src/theme/v3/color/buildColor_v3.ts +0 -226
  524. package/src/theme/v3/color/parseColor.test.ts +0 -79
  525. package/src/theme/v3/color/parseColor.ts +0 -167
  526. package/src/theme/v3/color/renderColor.test.ts +0 -20
  527. package/src/theme/v3/color/renderColor.ts +0 -43
  528. /package/src/{theme/palette → css/prefix}/index.ts +0 -0
  529. /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
  530. /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
  531. /package/src/theme/{build → v2/build}/index.ts +0 -0
  532. /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
  533. /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
  534. /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
  535. /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
  536. /package/src/theme/{build → v2/build}/lib/isRecord.ts +0 -0
  537. /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
  538. /package/src/theme/{build → v2/build}/merge.ts +0 -0
  539. /package/src/theme/{config → v2/config}/index.ts +0 -0
  540. /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
  541. /package/src/theme/{palette → v3/palette}/constants.ts +0 -0
  542. /package/src/theme/{palette → v3/palette}/types.ts +0 -0
package/dist/css.js CHANGED
@@ -1,28 +1,26 @@
1
- import { COLOR_HUES, COLOR_TINTS, color } from "@sanity/color";
2
- import { SPACE, SHADOW, RADIUS, FONT_TEXT_SIZE, FONT_LABEL_SIZE, FONT_HEADING_SIZE, FONT_CODE_SIZE, THEME_COLOR_CARD_TONES, AVATAR_SIZE, THEME_COLOR_STATE_TONES, HUES, TINTS, THEME_COLOR_AVATAR_COLORS, THEME_COLOR_SCHEMES as THEME_COLOR_SCHEMES$1, renderColor } from "@sanity/ui/theme";
3
- const BREAKPOINTS = {
4
- 0: 0,
5
- 1: 360,
6
- 2: 600,
7
- 3: 900,
8
- 4: 1200,
9
- 5: 1800,
10
- 6: 2400
11
- }, PREFIX = "s-";
1
+ import { HUES, TINTS, SPACE, SHADOW, RADIUS, FONT_TEXT_SIZE, FONT_LABEL_SIZE, FONT_HEADING_SIZE, FONT_CODE_SIZE, CONTAINER_SCALE, COLOR_VARIANTS, THEME_COLOR_STATE_TONES, THEME_COLOR_CARD_TONES, AVATAR_COLORS, AVATAR_SIZE, _parseColorToken, buildTheme_v3, THEME_COLOR_SCHEMES } from "@sanity/ui/theme";
2
+ var version = "3.0.0-static.19";
3
+ function _hash(value) {
4
+ let h = 5381;
5
+ for (let index = 0, len = value.length; index < len; index++)
6
+ h = (h << 5) + h + value.charCodeAt(index) >>> 0;
7
+ return h.toString(36);
8
+ }
9
+ const PREFIX = `s${_hash(version).slice(0, 5)}-`;
12
10
  function isRecord(value) {
13
11
  return value !== null && typeof value == "object" && !Array.isArray(value);
14
12
  }
15
13
  function isArray(value) {
16
14
  return Array.isArray(value);
17
15
  }
18
- function rem(value) {
16
+ function rem$1(value) {
19
17
  return value === 0 ? "0" : `${value / 16}rem`;
20
18
  }
21
- function px(value) {
19
+ function px$1(value) {
22
20
  return value === 0 ? "0" : `${value}px`;
23
21
  }
24
- function toBoxShadow(value) {
25
- return value ? value.map((n) => px(n)).join(" ") : "none";
22
+ function toBoxShadow$1(value) {
23
+ return value ? value.map((n) => px$1(n)).join(" ") : "none";
26
24
  }
27
25
  function _compileStyle(style) {
28
26
  let css = "";
@@ -41,7 +39,7 @@ function _compileStyle(style) {
41
39
  }
42
40
  if (style.layers && Object.keys(style.layers).length > 0)
43
41
  for (const [layerName, layerRules] of Object.entries(style.layers))
44
- Object.keys(layerRules).length > 0 && (css += `@layer ${PREFIX}${layerName} {
42
+ Object.keys(layerRules).length > 0 && (css += `@layer ${layerName} {
45
43
  `, css += compileStyleRules(layerRules), css += `}
46
44
 
47
45
  `);
@@ -50,17 +48,17 @@ function _compileStyle(style) {
50
48
  function compileStyleRules(rules2) {
51
49
  let css = "";
52
50
  const mediaMap = /* @__PURE__ */ new Map();
53
- for (const [selector, properties] of Object.entries(rules2))
54
- if (properties) {
55
- if (properties["@media"])
56
- for (const [mediaQuery, mediaProps] of Object.entries(properties["@media"])) {
51
+ for (const [selector, properties2] of Object.entries(rules2))
52
+ if (properties2) {
53
+ if (properties2["@media"])
54
+ for (const [mediaQuery, mediaProps] of Object.entries(properties2["@media"])) {
57
55
  const arr = mediaMap.get(mediaQuery) ?? [];
58
56
  arr.push({
59
57
  selector,
60
58
  props: mediaProps
61
59
  }), mediaMap.set(mediaQuery, arr);
62
60
  }
63
- css += compileStyleRule(selector, properties);
61
+ css += compileStyleRule(selector, properties2);
64
62
  }
65
63
  for (const [mediaQuery, mediaRules] of mediaMap) {
66
64
  css += `@media ${mediaQuery} {
@@ -73,15 +71,15 @@ function compileStyleRules(rules2) {
73
71
  }
74
72
  return css;
75
73
  }
76
- function compileStyleRule(_selector, properties) {
74
+ function compileStyleRule(_selector, properties2) {
77
75
  let css = "";
78
76
  const {
79
77
  _prefix = !0,
80
78
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
81
79
  "@media": _mediaProps,
82
- "@nest": nestedProps,
80
+ nest: nestedProps,
83
81
  ...restProperties
84
- } = properties, selector = _prefix ? `${_selector.replace(/\./g, `.${PREFIX}`)}` : _selector;
82
+ } = properties2, selector = _prefix ? `${_selector.replace(/\./g, `.${PREFIX}`)}` : _selector;
85
83
  if (Object.entries(restProperties).length && (css += `${selector} {
86
84
  `, css += compileProperties(restProperties), css += `}
87
85
 
@@ -98,7 +96,13 @@ function compileStyleRule(_selector, properties) {
98
96
  function compileProperties(props) {
99
97
  let css = "";
100
98
  const propEntries = Object.entries(props);
101
- for (const [key, value] of propEntries)
99
+ for (const [key, value] of propEntries) {
100
+ if (key === "vars") {
101
+ for (const [k, v] of Object.entries(value))
102
+ css += ` ${k}: ${v};
103
+ `;
104
+ continue;
105
+ }
102
106
  if (!key.startsWith("@"))
103
107
  if (isArray(value))
104
108
  for (const item of value)
@@ -107,526 +111,12 @@ function compileProperties(props) {
107
111
  else
108
112
  css += ` ${toSnakeCase(key)}: ${value};
109
113
  `;
114
+ }
110
115
  return css;
111
116
  }
112
117
  function toSnakeCase(str) {
113
118
  return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
114
119
  }
115
- const varNames = {
116
- avatar: {
117
- distance: "--avatar-distance",
118
- focusRing: {
119
- offset: "--avatar-focus-ring-offset",
120
- width: "--avatar-focus-ring-width"
121
- },
122
- size: "--avatar-size",
123
- sizes: AVATAR_SIZE.reduce((acc, size) => ({
124
- ...acc,
125
- [size]: {
126
- distance: `--avatar-${size}-distance`,
127
- size: `--avatar-${size}-size`
128
- }
129
- }), {})
130
- },
131
- button: {
132
- border: {
133
- width: "--button-border-width"
134
- },
135
- focusRing: {
136
- offset: "--button-focus-ring-offset",
137
- width: "--button-focus-ring-width"
138
- }
139
- },
140
- card: {
141
- shadow: {
142
- outline: "--card-shadow-outline"
143
- }
144
- },
145
- color: {
146
- // card scope
147
- avatar: {
148
- bg: "--color-avatar-bg",
149
- fg: "--color-avatar-fg",
150
- gray: {
151
- bg: "--color-avatar-gray-bg",
152
- fg: "--color-avatar-gray-fg"
153
- },
154
- blue: {
155
- bg: "--color-avatar-blue-bg",
156
- fg: "--color-avatar-blue-fg"
157
- },
158
- purple: {
159
- bg: "--color-avatar-purple-bg",
160
- fg: "--color-avatar-purple-fg"
161
- },
162
- magenta: {
163
- bg: "--color-avatar-magenta-bg",
164
- fg: "--color-avatar-magenta-fg"
165
- },
166
- red: {
167
- bg: "--color-avatar-red-bg",
168
- fg: "--color-avatar-red-fg"
169
- },
170
- orange: {
171
- bg: "--color-avatar-orange-bg",
172
- fg: "--color-avatar-gray-fg"
173
- },
174
- yellow: {
175
- bg: "--color-avatar-yellow-bg",
176
- fg: "--color-avatar-yellow-fg"
177
- },
178
- green: {
179
- bg: "--color-avatar-green-bg",
180
- fg: "--color-avatar-green-fg"
181
- },
182
- cyan: {
183
- bg: "--color-avatar-cyan-bg",
184
- fg: "--color-avatar-yellow-fg"
185
- }
186
- },
187
- backdrop: "--color-backdrop",
188
- bg: "--color-bg",
189
- border: "--color-border",
190
- code: {
191
- bg: "--color-code-bg",
192
- fg: "--color-code-fg",
193
- token: {
194
- atrule: "--color-code-token-atrule",
195
- attrName: "--color-code-token-attr-name",
196
- attrValue: "--color-code-token-attr-value",
197
- attribute: "--color-code-token-attribute",
198
- boolean: "--color-code-token-boolean",
199
- builtin: "--color-code-token-builtin",
200
- cdata: "--color-code-token-cdata",
201
- char: "--color-code-token-char",
202
- class: "--color-code-token-class",
203
- className: "--color-code-token-class-name",
204
- comment: "--color-code-token-comment",
205
- constant: "--color-code-token-constant",
206
- deleted: "--color-code-token-deleted",
207
- doctype: "--color-code-token-doctype",
208
- entity: "--color-code-token-entity",
209
- function: "--color-code-token-function",
210
- hexcode: "--color-code-token-hexcode",
211
- id: "--color-code-token-id",
212
- important: "--color-code-token-important",
213
- inserted: "--color-code-token-inserted",
214
- keyword: "--color-code-token-keyword",
215
- number: "--color-code-token-number",
216
- operator: "--color-code-token-operator",
217
- prolog: "--color-code-token-prolog",
218
- property: "--color-code-token-property",
219
- pseudoClass: "--color-code-token-pseudo-class",
220
- pseudoElement: "--color-code-token-pseudo-element",
221
- punctuation: "--color-code-token-punctuation",
222
- regex: "--color-code-token-regex",
223
- selector: "--color-code-token-selector",
224
- string: "--color-code-token-string",
225
- symbol: "--color-code-token-symbol",
226
- tag: "--color-code-token-tag",
227
- unit: "--color-code-token-unit",
228
- url: "--color-code-token-url",
229
- variable: "--color-code-token-variable"
230
- }
231
- },
232
- fg: "--color-fg",
233
- focusRing: "--color-focus-ring",
234
- input: {
235
- bg: "--color-input-bg",
236
- border: "--color-input-border",
237
- fg: "--color-input-fg",
238
- placeholder: "--color-input-placeholder"
239
- },
240
- link: {
241
- fg: "--color-link-fg"
242
- },
243
- muted: {
244
- bg: "--color-muted-bg",
245
- fg: "--color-muted-fg"
246
- },
247
- shadow: {
248
- outline: "--color-shadow-outline",
249
- umbra: "--color-shadow-umbra",
250
- penumbra: "--color-shadow-penumbra",
251
- ambient: "--color-shadow-ambient"
252
- },
253
- skeleton: {
254
- from: "--color-skeleton-from",
255
- to: "--color-skeleton-to"
256
- },
257
- solid: buildColorVariantVarNames({
258
- variant: "solid"
259
- }),
260
- tinted: buildColorVariantVarNames({
261
- variant: "tinted"
262
- }),
263
- // tone scopes
264
- ...THEME_COLOR_CARD_TONES.reduce((acc, tone) => (acc[tone] = buildColorCardVarNames({
265
- tone
266
- }), acc), {}),
267
- // scheme scopes
268
- dark: THEME_COLOR_CARD_TONES.reduce((acc, tone) => (acc[tone] = buildColorCardVarNames({
269
- scheme: "dark",
270
- tone
271
- }), acc), {}),
272
- light: THEME_COLOR_CARD_TONES.reduce((acc, tone) => (acc[tone] = buildColorCardVarNames({
273
- scheme: "light",
274
- tone
275
- }), acc), {})
276
- },
277
- container: {
278
- 0: "--container-0",
279
- 1: "--container-1",
280
- 2: "--container-2",
281
- 3: "--container-3",
282
- 4: "--container-4",
283
- 5: "--container-5"
284
- },
285
- font: {
286
- code: {
287
- family: "--font-code-family",
288
- featureSettings: "--font-code-feature-settings",
289
- sizes: FONT_CODE_SIZE.reduce((acc, size) => ({
290
- ...acc,
291
- [size]: {
292
- fontSize: `--font-code-${size}-size`,
293
- ascenderHeight: `--font-code-${size}-ascender-height`,
294
- descenderHeight: `--font-code-${size}-descender-height`,
295
- lineHeight: `--font-code-${size}-line-height`,
296
- letterSpacing: `--font-code-${size}-letter-spacing`,
297
- iconSize: `--font-code-${size}-icon-size`
298
- }
299
- }), {}),
300
- weights: {
301
- regular: "--font-code-weight-regular",
302
- medium: "--font-code-weight-medium",
303
- semibold: "--font-code-weight-semibold",
304
- bold: "--font-code-weight-bold"
305
- }
306
- },
307
- heading: {
308
- family: "--font-heading-family",
309
- featureSettings: "--font-heading-feature-settings",
310
- sizes: FONT_HEADING_SIZE.reduce((acc, size) => ({
311
- ...acc,
312
- [size]: {
313
- fontSize: `--font-heading-${size}-size`,
314
- ascenderHeight: `--font-heading-${size}-ascender-height`,
315
- descenderHeight: `--font-heading-${size}-descender-height`,
316
- lineHeight: `--font-heading-${size}-line-height`,
317
- letterSpacing: `--font-heading-${size}-letter-spacing`,
318
- iconSize: `--font-heading-${size}-icon-size`
319
- }
320
- }), {}),
321
- weights: {
322
- regular: "--font-heading-weight-regular",
323
- medium: "--font-heading-weight-medium",
324
- semibold: "--font-heading-weight-semibold",
325
- bold: "--font-heading-weight-bold"
326
- }
327
- },
328
- label: {
329
- family: "--font-label-family",
330
- featureSettings: "--font-label-feature-settings",
331
- sizes: FONT_LABEL_SIZE.reduce((acc, size) => ({
332
- ...acc,
333
- [size]: {
334
- fontSize: `--font-label-${size}-size`,
335
- ascenderHeight: `--font-label-${size}-ascender-height`,
336
- descenderHeight: `--font-label-${size}-descender-height`,
337
- lineHeight: `--font-label-${size}-line-height`,
338
- letterSpacing: `--font-label-${size}-letter-spacing`,
339
- iconSize: `--font-label-${size}-icon-size`
340
- }
341
- }), {}),
342
- weights: {
343
- regular: "--font-label-weight-regular",
344
- medium: "--font-label-weight-medium",
345
- semibold: "--font-label-weight-semibold",
346
- bold: "--font-label-weight-bold"
347
- }
348
- },
349
- text: {
350
- family: "--font-text-family",
351
- featureSettings: "--font-text-feature-settings",
352
- sizes: FONT_TEXT_SIZE.reduce((acc, size) => ({
353
- ...acc,
354
- [size]: {
355
- fontSize: `--font-text-${size}-size`,
356
- ascenderHeight: `--font-text-${size}-ascender-height`,
357
- descenderHeight: `--font-text-${size}-descender-height`,
358
- lineHeight: `--font-text-${size}-line-height`,
359
- letterSpacing: `--font-text-${size}-letter-spacing`,
360
- iconSize: `--font-text-${size}-icon-size`
361
- }
362
- }), {}),
363
- weights: {
364
- regular: "--font-text-weight-regular",
365
- medium: "--font-text-weight-medium",
366
- semibold: "--font-text-weight-semibold",
367
- bold: "--font-text-weight-bold"
368
- }
369
- }
370
- },
371
- input: {
372
- border: {
373
- width: "--input-border-width"
374
- },
375
- checkbox: {
376
- focusRing: {
377
- offset: "--input-checkbox-focus-ring-offset",
378
- width: "--input-checkbox-focus-ring-width"
379
- },
380
- size: "--input-checkbox-size"
381
- },
382
- radio: {
383
- focusRing: {
384
- offset: "--input-radio-focus-ring-offset",
385
- width: "--input-radio-focus-ring-width"
386
- },
387
- markSize: "--input-radio-mark-size",
388
- size: "--input-radio-size"
389
- },
390
- select: {
391
- focusRing: {
392
- offset: "--input-select-focus-ring-offset",
393
- width: "--input-select-focus-ring-width"
394
- }
395
- },
396
- switch: {
397
- focusRing: {
398
- offset: "--input-switch-focus-ring-offset",
399
- width: "--input-switch-focus-ring-width"
400
- },
401
- height: "--input-switch-height",
402
- padding: "--input-switch-padding",
403
- transitionDurationMs: "--input-switch-transition-duration-ms",
404
- transitionTimingFunction: "--input-switch-transition-timing-function",
405
- width: "--input-switch-width"
406
- },
407
- text: {
408
- focusRing: {
409
- offset: "--input-text-focus-ring-offset",
410
- width: "--input-text-focus-ring-width"
411
- }
412
- },
413
- fontSize: "--input-font-size",
414
- lineHeight: "--input-line-height",
415
- letterSpacing: "--input-letter-spacing",
416
- ascenderHeight: "--input-ascender-height",
417
- descenderHeight: "--input-descender-height",
418
- gap: "--input-gap",
419
- padding: "--input-padding"
420
- },
421
- radius: Object.fromEntries(RADIUS.map((radius2) => [radius2, `--radius-${radius2}`])),
422
- shadow: Object.fromEntries(SHADOW.map((shadow2) => [shadow2, {
423
- umbra: `--shadow-${shadow2}-umbra`,
424
- penumbra: `--shadow-${shadow2}-penumbra`,
425
- ambient: `--shadow-${shadow2}-ambient`
426
- }])),
427
- space: Object.fromEntries(SPACE.map((space) => [space, `--space-${String(space).replace(".", "_")}`])),
428
- // color
429
- black: "--black",
430
- white: "--white",
431
- ...COLOR_HUES.reduce((acc, hue) => {
432
- const tints = {};
433
- for (const tint of COLOR_TINTS)
434
- tints[tint] = `--${hue}-${tint}`;
435
- return acc[hue] = tints, acc;
436
- }, {})
437
- };
438
- function buildColorCardVarNames(props) {
439
- const {
440
- scheme,
441
- tone
442
- } = props, prefix = scheme ? `--color-${scheme}-${tone}` : `--color-${tone}`;
443
- return {
444
- avatar: {
445
- gray: {
446
- bg: `${prefix}-avatar-gray-bg`,
447
- fg: `${prefix}-avatar-gray-fg`
448
- },
449
- blue: {
450
- bg: `${prefix}-avatar-blue-bg`,
451
- fg: `${prefix}-avatar-blue-fg`
452
- },
453
- purple: {
454
- bg: `${prefix}-avatar-purple-bg`,
455
- fg: `${prefix}-avatar-purple-fg`
456
- },
457
- magenta: {
458
- bg: `${prefix}-avatar-magenta-bg`,
459
- fg: `${prefix}-avatar-magenta-fg`
460
- },
461
- red: {
462
- bg: `${prefix}-avatar-red-bg`,
463
- fg: `${prefix}-avatar-red-fg`
464
- },
465
- orange: {
466
- bg: `${prefix}-avatar-orange-bg`,
467
- fg: `${prefix}-avatar-gray-fg`
468
- },
469
- yellow: {
470
- bg: `${prefix}-avatar-yellow-bg`,
471
- fg: `${prefix}-avatar-yellow-fg`
472
- },
473
- green: {
474
- bg: `${prefix}-avatar-green-bg`,
475
- fg: `${prefix}-avatar-green-fg`
476
- },
477
- cyan: {
478
- bg: `${prefix}-avatar-cyan-bg`,
479
- fg: `${prefix}-avatar-yellow-fg`
480
- }
481
- },
482
- backdrop: `${prefix}-backdrop`,
483
- code: {
484
- bg: `${prefix}-code-bg`,
485
- fg: `${prefix}-code-fg`,
486
- token: {
487
- atrule: `${prefix}-code-token-atrule`,
488
- attrName: `${prefix}-code-token-attr-name`,
489
- attrValue: `${prefix}-code-token-attr-value`,
490
- attribute: `${prefix}-code-token-attribute`,
491
- boolean: `${prefix}-code-token-boolean`,
492
- builtin: `${prefix}-code-token-builtin`,
493
- cdata: `${prefix}-code-token-cdata`,
494
- char: `${prefix}-code-token-char`,
495
- class: `${prefix}-code-token-class`,
496
- className: `${prefix}-code-token-class-name`,
497
- comment: `${prefix}-code-token-comment`,
498
- constant: `${prefix}-code-token-constant`,
499
- deleted: `${prefix}-code-token-deleted`,
500
- doctype: `${prefix}-code-token-doctype`,
501
- entity: `${prefix}-code-token-entity`,
502
- function: `${prefix}-code-token-function`,
503
- hexcode: `${prefix}-code-token-hexcode`,
504
- id: `${prefix}-code-token-id`,
505
- important: `${prefix}-code-token-important`,
506
- inserted: `${prefix}-code-token-inserted`,
507
- keyword: `${prefix}-code-token-keyword`,
508
- number: `${prefix}-code-token-number`,
509
- operator: `${prefix}-code-token-operator`,
510
- prolog: `${prefix}-code-token-prolog`,
511
- property: `${prefix}-code-token-property`,
512
- pseudoClass: `${prefix}-code-token-pseudo-class`,
513
- pseudoElement: `${prefix}-code-token-pseudo-element`,
514
- punctuation: `${prefix}-code-token-punctuation`,
515
- regex: `${prefix}-code-token-regex`,
516
- selector: `${prefix}-code-token-selector`,
517
- string: `${prefix}-code-token-string`,
518
- symbol: `${prefix}-code-token-symbol`,
519
- tag: `${prefix}-code-token-tag`,
520
- unit: `${prefix}-code-token-unit`,
521
- url: `${prefix}-code-token-url`,
522
- variable: `${prefix}-code-token-variable`
523
- }
524
- },
525
- focusRing: `${prefix}-focus-ring`,
526
- link: {
527
- fg: `${prefix}-link-fg`
528
- },
529
- muted: {
530
- bg: `${prefix}-muted-bg`,
531
- fg: `${prefix}-muted-fg`
532
- },
533
- shadow: {
534
- outline: `${prefix}-shadow-outline`,
535
- umbra: `${prefix}-shadow-umbra`,
536
- penumbra: `${prefix}-shadow-penumbra`,
537
- ambient: `${prefix}-shadow-ambient`
538
- },
539
- skeleton: {
540
- from: `${prefix}-skeleton-from`,
541
- to: `${prefix}-skeleton-to`
542
- },
543
- solid: buildColorVariantVarNames({
544
- scheme,
545
- tone,
546
- variant: "solid"
547
- }),
548
- tinted: buildColorVariantVarNames({
549
- scheme,
550
- tone,
551
- variant: "tinted"
552
- })
553
- };
554
- }
555
- function buildColorVariantVarNames(options) {
556
- const {
557
- scheme,
558
- tone,
559
- variant
560
- } = options, prefix = scheme && tone ? `--color-${scheme}-${tone}-${variant}` : tone ? `--color-${tone}-${variant}` : `--color-${variant}`, vars2 = {
561
- bg: {
562
- 0: `${prefix}-bg-0`,
563
- 1: `${prefix}-bg-1`,
564
- 2: `${prefix}-bg-2`,
565
- 3: `${prefix}-bg-3`,
566
- 4: `${prefix}-bg-4`
567
- },
568
- border: {
569
- 0: `${prefix}-border-0`,
570
- 1: `${prefix}-border-1`,
571
- 2: `${prefix}-border-2`,
572
- 3: `${prefix}-border-3`,
573
- 4: `${prefix}-border-4`
574
- },
575
- fg: {
576
- 0: `${prefix}-fg-0`,
577
- 1: `${prefix}-fg-1`,
578
- 2: `${prefix}-fg-2`,
579
- 3: `${prefix}-fg-3`,
580
- 4: `${prefix}-fg-4`
581
- }
582
- };
583
- for (const elementTone of THEME_COLOR_STATE_TONES) {
584
- const _prefix = scheme && tone ? `--color-${scheme}-${tone}-${variant}-${elementTone}` : tone ? `--color-${tone}-${variant}-${elementTone}` : `--color-${variant}-${elementTone}`;
585
- vars2[elementTone] = {
586
- bg: {
587
- 0: `${_prefix}-bg-0`,
588
- 1: `${_prefix}-bg-1`,
589
- 2: `${_prefix}-bg-2`,
590
- 3: `${_prefix}-bg-3`,
591
- 4: `${_prefix}-bg-4`
592
- },
593
- border: {
594
- 0: `${_prefix}-border-0`,
595
- 1: `${_prefix}-border-1`,
596
- 2: `${_prefix}-border-2`,
597
- 3: `${_prefix}-border-3`,
598
- 4: `${_prefix}-border-4`
599
- },
600
- fg: {
601
- 0: `${_prefix}-fg-0`,
602
- 1: `${_prefix}-fg-1`,
603
- 2: `${_prefix}-fg-2`,
604
- 3: `${_prefix}-fg-3`,
605
- 4: `${_prefix}-fg-4`
606
- }
607
- };
608
- }
609
- return vars2;
610
- }
611
- function _compilePalette() {
612
- return _compileStyle({
613
- layers: {
614
- palette: {
615
- ":root": compilePaletteProperties()
616
- }
617
- }
618
- });
619
- }
620
- function compilePaletteProperties() {
621
- const rules2 = {
622
- [varNames.black]: color.black.hex,
623
- [varNames.white]: color.white.hex
624
- };
625
- for (const hue of HUES)
626
- for (const tint of TINTS)
627
- rules2[varNames[hue][tint]] = color[hue][tint].hex;
628
- return rules2;
629
- }
630
120
  function _mergeStyles(styles) {
631
121
  const keyframes2 = {}, layers = {}, rules2 = {};
632
122
  for (const s of styles) {
@@ -641,521 +131,781 @@ function _mergeStyles(styles) {
641
131
  rules: rules2
642
132
  };
643
133
  }
644
- function _responsiveRule(rules2, _name, properties) {
134
+ function _responsiveRule(rules2, _name, properties2) {
645
135
  const name = _name.replace(/\./g, "_");
646
- rules2[`.${name}`] = properties, rules2[`.1\\:${name}`] = {
136
+ rules2[`.${name}`] = properties2, rules2[`.1\\:${name}`] = {
647
137
  "@media": {
648
- "screen and (min-width: 360px)": properties
138
+ "screen and (min-width: 360px)": properties2
649
139
  }
650
140
  }, rules2[`.2\\:${name}`] = {
651
141
  "@media": {
652
- "screen and (min-width: 600px)": properties
142
+ "screen and (min-width: 600px)": properties2
653
143
  }
654
144
  }, rules2[`.3\\:${name}`] = {
655
145
  "@media": {
656
- "screen and (min-width: 900px)": properties
146
+ "screen and (min-width: 900px)": properties2
657
147
  }
658
148
  }, rules2[`.4\\:${name}`] = {
659
149
  "@media": {
660
- "screen and (min-width: 1200px)": properties
150
+ "screen and (min-width: 1200px)": properties2
661
151
  }
662
152
  }, rules2[`.5\\:${name}`] = {
663
153
  "@media": {
664
- "screen and (min-width: 1800px)": properties
154
+ "screen and (min-width: 1800px)": properties2
665
155
  }
666
156
  }, rules2[`.6\\:${name}`] = {
667
157
  "@media": {
668
- "screen and (min-width: 2400px)": properties
158
+ "screen and (min-width: 2400px)": properties2
669
159
  }
670
160
  };
671
161
  }
672
- const darkColorVars = {};
673
- for (const tone of THEME_COLOR_CARD_TONES)
674
- darkColorVars[tone] = buildColorCardVars({
675
- scheme: "dark",
676
- tone
677
- });
678
- const lightColorVars = {};
679
- for (const tone of THEME_COLOR_CARD_TONES)
680
- lightColorVars[tone] = buildColorCardVars({
681
- scheme: "light",
682
- tone
683
- });
684
- const colorVars = {
685
- avatar: {
686
- bg: `var(${varNames.color.avatar.bg})`,
687
- fg: `var(${varNames.color.avatar.fg})`,
688
- gray: {
689
- bg: `var(${varNames.color.avatar.gray.bg})`,
690
- fg: `var(${varNames.color.avatar.gray.fg})`
691
- },
692
- blue: {
693
- bg: `var(${varNames.color.avatar.blue.bg})`,
694
- fg: `var(${varNames.color.avatar.blue.fg})`
695
- },
696
- purple: {
697
- bg: `var(${varNames.color.avatar.purple.bg})`,
698
- fg: `var(${varNames.color.avatar.purple.fg})`
699
- },
700
- magenta: {
701
- bg: `var(${varNames.color.avatar.magenta.bg})`,
702
- fg: `var(${varNames.color.avatar.magenta.fg})`
703
- },
704
- red: {
705
- bg: `var(${varNames.color.avatar.red.bg})`,
706
- fg: `var(${varNames.color.avatar.red.fg})`
707
- },
708
- orange: {
709
- bg: `var(${varNames.color.avatar.orange.bg})`,
710
- fg: `var(${varNames.color.avatar.orange.fg})`
711
- },
712
- yellow: {
713
- bg: `var(${varNames.color.avatar.yellow.bg})`,
714
- fg: `var(${varNames.color.avatar.yellow.fg})`
162
+ function _fromEntries(entries) {
163
+ return Object.fromEntries(entries);
164
+ }
165
+ function buildVarContract(contract, options) {
166
+ return {
167
+ vars: buildVars(contract, options),
168
+ varNames: buildVarNames(contract, options),
169
+ properties: buildProperties(contract, options)
170
+ };
171
+ }
172
+ function buildProperties(contract, options) {
173
+ const _properties = {};
174
+ function walk(c) {
175
+ for (const key in c)
176
+ typeof c[key] == "string" ? _properties[`--${options.prefix}${_hash(`${options.layer}.${c[key]}`)}`] = c[key] : c[key] === null || walk(c[key]);
177
+ }
178
+ return walk(contract), Object.freeze(_properties);
179
+ }
180
+ function buildVars(contract, options, path = "") {
181
+ const _vars = {};
182
+ for (const key in contract)
183
+ typeof contract[key] == "string" ? _vars[key] = `var(--${options.prefix}${_hash(`${options.layer}.${contract[key]}`)})` : contract[key] === null ? _vars[key] = `var(--${options.prefix}${_hash(`${options.layer}.${path}.${key}`)})` : _vars[key] = buildVars(contract[key], options, [path, key].join("."));
184
+ return Object.freeze(_vars);
185
+ }
186
+ function buildVarNames(contract, options, path = "") {
187
+ const _varNames = {};
188
+ for (const key in contract)
189
+ typeof contract[key] == "string" ? _varNames[key] = `--${options.prefix}${_hash(`${options.layer}.${contract[key]}`)}` : contract[key] === null ? _varNames[key] = `--${options.prefix}${_hash(`${options.layer}.${path}.${key}`)}` : _varNames[key] = buildVarNames(contract[key], options, [path, key].join("."));
190
+ return Object.freeze(_varNames);
191
+ }
192
+ function resolveTheme(options) {
193
+ const {
194
+ theme
195
+ } = options, paletteResult = buildVarContract({
196
+ palette: {
197
+ black: theme.palette.black.hex,
198
+ white: theme.palette.white.hex,
199
+ ..._fromEntries(HUES.map((hue) => [hue, _fromEntries(TINTS.map((tint) => [tint, theme.palette.hues[hue][tint].hex]))]))
200
+ }
201
+ }, {
202
+ layer: "palette",
203
+ prefix: "s"
204
+ }), themeResult = buildVarContract({
205
+ arrow: {
206
+ size: null
715
207
  },
716
- green: {
717
- bg: `var(${varNames.color.avatar.green.bg})`,
718
- fg: `var(${varNames.color.avatar.green.fg})`
208
+ avatar: {
209
+ distance: null,
210
+ size: null,
211
+ focusRing: {
212
+ offset: px(theme.avatar.focusRing.offset),
213
+ width: px(theme.avatar.focusRing.width)
214
+ },
215
+ sizes: _fromEntries(AVATAR_SIZE.map((s) => [s, {
216
+ distance: rem(theme.avatar.sizes[s].distance),
217
+ size: rem(theme.avatar.sizes[s].size)
218
+ }]))
719
219
  },
720
- cyan: {
721
- bg: `var(${varNames.color.avatar.cyan.bg})`,
722
- fg: `var(${varNames.color.avatar.cyan.fg})`
723
- }
724
- },
725
- backdrop: `var(${varNames.color.backdrop})`,
726
- bg: `var(${varNames.color.bg})`,
727
- border: `var(${varNames.color.border})`,
728
- code: {
729
- bg: `var(${varNames.color.code.bg})`,
730
- fg: `var(${varNames.color.code.fg})`,
731
- token: {
732
- atrule: `var(${varNames.color.code.token.atrule})`,
733
- attrName: `var(${varNames.color.code.token.attrName})`,
734
- attrValue: `var(${varNames.color.code.token.attrValue})`,
735
- attribute: `var(${varNames.color.code.token.attribute})`,
736
- boolean: `var(${varNames.color.code.token.boolean})`,
737
- builtin: `var(${varNames.color.code.token.builtin})`,
738
- cdata: `var(${varNames.color.code.token.cdata})`,
739
- char: `var(${varNames.color.code.token.char})`,
740
- class: `var(${varNames.color.code.token.class})`,
741
- className: `var(${varNames.color.code.token.className})`,
742
- comment: `var(${varNames.color.code.token.comment})`,
743
- constant: `var(${varNames.color.code.token.constant})`,
744
- deleted: `var(${varNames.color.code.token.deleted})`,
745
- doctype: `var(${varNames.color.code.token.doctype})`,
746
- entity: `var(${varNames.color.code.token.entity})`,
747
- function: `var(${varNames.color.code.token.function})`,
748
- hexcode: `var(${varNames.color.code.token.hexcode})`,
749
- id: `var(${varNames.color.code.token.id})`,
750
- important: `var(${varNames.color.code.token.important})`,
751
- inserted: `var(${varNames.color.code.token.inserted})`,
752
- keyword: `var(${varNames.color.code.token.keyword})`,
753
- number: `var(${varNames.color.code.token.number})`,
754
- operator: `var(${varNames.color.code.token.operator})`,
755
- prolog: `var(${varNames.color.code.token.prolog})`,
756
- property: `var(${varNames.color.code.token.property})`,
757
- pseudoClass: `var(${varNames.color.code.token.pseudoClass})`,
758
- pseudoElement: `var(${varNames.color.code.token.pseudoElement})`,
759
- punctuation: `var(${varNames.color.code.token.punctuation})`,
760
- regex: `var(${varNames.color.code.token.regex})`,
761
- selector: `var(${varNames.color.code.token.selector})`,
762
- string: `var(${varNames.color.code.token.string})`,
763
- symbol: `var(${varNames.color.code.token.symbol})`,
764
- tag: `var(${varNames.color.code.token.tag})`,
765
- unit: `var(${varNames.color.code.token.unit})`,
766
- url: `var(${varNames.color.code.token.url})`,
767
- variable: `var(${varNames.color.code.token.variable})`
768
- }
769
- },
770
- fg: `var(${varNames.color.fg})`,
771
- focusRing: `var(${varNames.color.focusRing})`,
772
- input: {
773
- bg: `var(${varNames.color.input.bg})`,
774
- border: `var(${varNames.color.input.border})`,
775
- fg: `var(${varNames.color.input.fg})`,
776
- placeholder: `var(${varNames.color.input.placeholder})`
777
- },
778
- link: {
779
- fg: `var(${varNames.color.link.fg})`
780
- },
781
- muted: {
782
- bg: `var(${varNames.color.muted.bg})`,
783
- fg: `var(${varNames.color.muted.fg})`
784
- },
785
- shadow: {
786
- outline: `var(${varNames.color.shadow.outline})`,
787
- umbra: `var(${varNames.color.shadow.umbra})`,
788
- penumbra: `var(${varNames.color.shadow.penumbra})`,
789
- ambient: `var(${varNames.color.shadow.ambient})`
790
- },
791
- skeleton: {
792
- from: `var(${varNames.color.skeleton.from})`,
793
- to: `var(${varNames.color.skeleton.to})`
794
- },
795
- solid: buildColorVariantVars({
796
- variant: "solid"
797
- }),
798
- tinted: buildColorVariantVars({
799
- variant: "tinted"
800
- }),
801
- ...THEME_COLOR_CARD_TONES.reduce((acc, tone) => ({
802
- ...acc,
803
- [tone]: buildColorCardVars({
804
- tone
805
- })
806
- }), {}),
807
- dark: darkColorVars,
808
- light: lightColorVars
809
- }, vars = {
810
- avatar: {
811
- distance: `var(${varNames.avatar.distance})`,
812
- size: `var(${varNames.avatar.size})`,
813
- sizes: AVATAR_SIZE.reduce((acc, size) => ({
814
- ...acc,
815
- [size]: {
816
- size: `var(${varNames.avatar.sizes[size].size})`,
817
- distance: `var(${varNames.avatar.sizes[size].distance})`
818
- }
819
- }), {})
820
- },
821
- card: {
822
- shadow: {
823
- outline: `var(${varNames.card.shadow.outline})`
824
- }
825
- },
826
- color: colorVars,
827
- container: {
828
- 0: `var(${varNames.container[0]})`,
829
- 1: `var(${varNames.container[1]})`,
830
- 2: `var(${varNames.container[2]})`,
831
- 3: `var(${varNames.container[3]})`,
832
- 4: `var(${varNames.container[4]})`,
833
- 5: `var(${varNames.container[5]})`
834
- },
835
- font: {
836
- code: {
837
- family: `var(${varNames.font.code.family})`,
838
- sizes: FONT_CODE_SIZE.reduce((acc, size) => ({
839
- ...acc,
840
- [size]: {
841
- fontSize: `var(${varNames.font.code.sizes[size].fontSize})`,
842
- ascenderHeight: `var(${varNames.font.code.sizes[size].ascenderHeight})`,
843
- descenderHeight: `var(${varNames.font.code.sizes[size].descenderHeight})`,
844
- lineHeight: `var(${varNames.font.code.sizes[size].lineHeight})`,
845
- letterSpacing: `var(${varNames.font.code.sizes[size].letterSpacing})`,
846
- iconSize: `var(${varNames.font.code.sizes[size].iconSize})`
847
- }
848
- }), {}),
849
- weight: {
850
- regular: `var(${varNames.font.code.weights.regular})`,
851
- medium: `var(${varNames.font.code.weights.medium})`,
852
- semibold: `var(${varNames.font.code.weights.semibold})`,
853
- bold: `var(${varNames.font.code.weights.bold})`
220
+ button: {
221
+ boxShadow: null,
222
+ focusRing: {
223
+ offset: px(theme.button.focusRing.offset),
224
+ width: px(theme.button.focusRing.width)
225
+ },
226
+ border: {
227
+ width: px(theme.button.border.width)
854
228
  }
855
229
  },
856
- heading: {
857
- family: `var(${varNames.font.heading.family})`,
858
- sizes: FONT_HEADING_SIZE.reduce((acc, size) => ({
859
- ...acc,
860
- [size]: {
861
- fontSize: `var(${varNames.font.heading.sizes[size].fontSize})`,
862
- ascenderHeight: `var(${varNames.font.heading.sizes[size].ascenderHeight})`,
863
- descenderHeight: `var(${varNames.font.heading.sizes[size].descenderHeight})`,
864
- lineHeight: `var(${varNames.font.heading.sizes[size].lineHeight})`,
865
- letterSpacing: `var(${varNames.font.heading.sizes[size].letterSpacing})`,
866
- iconSize: `var(${varNames.font.heading.sizes[size].iconSize})`
867
- }
868
- }), {}),
869
- weight: {
870
- regular: `var(${varNames.font.heading.weights.regular})`,
871
- medium: `var(${varNames.font.heading.weights.medium})`,
872
- semibold: `var(${varNames.font.heading.weights.semibold})`,
873
- bold: `var(${varNames.font.heading.weights.bold})`
230
+ card: {
231
+ shadow: {
232
+ outline: px(theme.card.shadow.outline)
874
233
  }
875
234
  },
876
- label: {
877
- family: `var(${varNames.font.label.family})`,
878
- sizes: FONT_LABEL_SIZE.reduce((acc, size) => ({
879
- ...acc,
880
- [size]: {
881
- fontSize: `var(${varNames.font.label.sizes[size].fontSize})`,
882
- ascenderHeight: `var(${varNames.font.label.sizes[size].ascenderHeight})`,
883
- descenderHeight: `var(${varNames.font.label.sizes[size].descenderHeight})`,
884
- lineHeight: `var(${varNames.font.label.sizes[size].lineHeight})`,
885
- letterSpacing: `var(${varNames.font.label.sizes[size].letterSpacing})`,
886
- iconSize: `var(${varNames.font.label.sizes[size].iconSize})`
235
+ color: {
236
+ backdrop: null,
237
+ bg: null,
238
+ border: null,
239
+ code: {
240
+ bg: null,
241
+ fg: null,
242
+ token: {
243
+ atrule: null,
244
+ attrName: null,
245
+ attrValue: null,
246
+ attribute: null,
247
+ boolean: null,
248
+ builtin: null,
249
+ cdata: null,
250
+ char: null,
251
+ class: null,
252
+ className: null,
253
+ comment: null,
254
+ constant: null,
255
+ deleted: null,
256
+ doctype: null,
257
+ entity: null,
258
+ function: null,
259
+ hexcode: null,
260
+ id: null,
261
+ important: null,
262
+ inserted: null,
263
+ keyword: null,
264
+ number: null,
265
+ operator: null,
266
+ prolog: null,
267
+ property: null,
268
+ pseudoClass: null,
269
+ pseudoElement: null,
270
+ punctuation: null,
271
+ regex: null,
272
+ selector: null,
273
+ string: null,
274
+ symbol: null,
275
+ tag: null,
276
+ unit: null,
277
+ url: null,
278
+ variable: null
887
279
  }
888
- }), {}),
280
+ },
281
+ fg: null,
282
+ focusRing: null,
283
+ link: {
284
+ fg: null
285
+ },
286
+ avatar: {
287
+ bg: null,
288
+ fg: null,
289
+ ..._fromEntries(AVATAR_COLORS.map((c) => [c, {
290
+ bg: null,
291
+ fg: null
292
+ }]))
293
+ },
294
+ button: {},
295
+ input: {
296
+ checkbox: {
297
+ bg: null,
298
+ border: null,
299
+ fg: null
300
+ },
301
+ radio: {
302
+ bg: null,
303
+ border: null,
304
+ fg: null
305
+ },
306
+ text: {
307
+ bg: null,
308
+ fg: null,
309
+ border: null,
310
+ placeholder: null,
311
+ invalid: {
312
+ bg: null,
313
+ border: null,
314
+ fg: null
315
+ }
316
+ },
317
+ switch: {
318
+ bg: null,
319
+ fg: null
320
+ }
321
+ },
322
+ muted: {
323
+ bg: null,
324
+ fg: null
325
+ },
326
+ shadow: {
327
+ outline: null,
328
+ umbra: null,
329
+ penumbra: null,
330
+ ambient: null
331
+ },
332
+ skeleton: {
333
+ from: null,
334
+ to: null
335
+ },
336
+ light: _fromEntries(THEME_COLOR_CARD_TONES.map((t) => [t, buildCardContract({
337
+ theme,
338
+ scheme: "light",
339
+ tone: t
340
+ })])),
341
+ dark: _fromEntries(THEME_COLOR_CARD_TONES.map((t) => [t, buildCardContract({
342
+ theme,
343
+ scheme: "dark",
344
+ tone: t
345
+ })])),
346
+ // tones
347
+ ..._fromEntries(THEME_COLOR_CARD_TONES.map((t) => [t, {
348
+ avatar: {
349
+ ..._fromEntries(AVATAR_COLORS.map((c) => [c, {
350
+ bg: null,
351
+ fg: null
352
+ }]))
353
+ },
354
+ backdrop: null,
355
+ code: {
356
+ bg: null,
357
+ fg: null,
358
+ token: {
359
+ atrule: null,
360
+ attrName: null,
361
+ attrValue: null,
362
+ attribute: null,
363
+ boolean: null,
364
+ builtin: null,
365
+ cdata: null,
366
+ char: null,
367
+ class: null,
368
+ className: null,
369
+ comment: null,
370
+ constant: null,
371
+ deleted: null,
372
+ doctype: null,
373
+ entity: null,
374
+ function: null,
375
+ hexcode: null,
376
+ id: null,
377
+ important: null,
378
+ inserted: null,
379
+ keyword: null,
380
+ number: null,
381
+ operator: null,
382
+ prolog: null,
383
+ property: null,
384
+ pseudoClass: null,
385
+ pseudoElement: null,
386
+ punctuation: null,
387
+ regex: null,
388
+ selector: null,
389
+ string: null,
390
+ symbol: null,
391
+ tag: null,
392
+ unit: null,
393
+ url: null,
394
+ variable: null
395
+ }
396
+ },
397
+ focusRing: null,
398
+ link: {
399
+ fg: null
400
+ },
401
+ shadow: {
402
+ outline: null,
403
+ umbra: null,
404
+ penumbra: null,
405
+ ambient: null
406
+ },
407
+ skeleton: {
408
+ from: null,
409
+ to: null
410
+ },
411
+ ..._fromEntries(COLOR_VARIANTS.map((v) => [v, {
412
+ bg: {
413
+ 0: null,
414
+ 1: null,
415
+ 2: null,
416
+ 3: null,
417
+ 4: null
418
+ },
419
+ fg: {
420
+ 0: null,
421
+ 1: null,
422
+ 2: null,
423
+ 3: null,
424
+ 4: null
425
+ },
426
+ border: {
427
+ 0: null,
428
+ 1: null,
429
+ 2: null,
430
+ 3: null,
431
+ 4: null
432
+ },
433
+ ..._fromEntries(THEME_COLOR_STATE_TONES.map((t2) => [t2, {
434
+ bg: {
435
+ 0: null,
436
+ 1: null,
437
+ 2: null,
438
+ 3: null,
439
+ 4: null
440
+ },
441
+ fg: {
442
+ 0: null,
443
+ 1: null,
444
+ 2: null,
445
+ 3: null,
446
+ 4: null
447
+ },
448
+ border: {
449
+ 0: null,
450
+ 1: null,
451
+ 2: null,
452
+ 3: null,
453
+ 4: null
454
+ }
455
+ }]))
456
+ }]))
457
+ }])),
458
+ ..._fromEntries(COLOR_VARIANTS.map((v) => [v, {
459
+ bg: {
460
+ 0: null,
461
+ 1: null,
462
+ 2: null,
463
+ 3: null,
464
+ 4: null
465
+ },
466
+ fg: {
467
+ 0: null,
468
+ 1: null,
469
+ 2: null,
470
+ 3: null,
471
+ 4: null
472
+ },
473
+ border: {
474
+ 0: null,
475
+ 1: null,
476
+ 2: null,
477
+ 3: null,
478
+ 4: null
479
+ },
480
+ ..._fromEntries(THEME_COLOR_STATE_TONES.map((t) => [t, {
481
+ bg: {
482
+ 0: null,
483
+ 1: null,
484
+ 2: null,
485
+ 3: null,
486
+ 4: null
487
+ },
488
+ fg: {
489
+ 0: null,
490
+ 1: null,
491
+ 2: null,
492
+ 3: null,
493
+ 4: null
494
+ },
495
+ border: {
496
+ 0: null,
497
+ 1: null,
498
+ 2: null,
499
+ 3: null,
500
+ 4: null
501
+ }
502
+ }]))
503
+ }]))
504
+ },
505
+ container: _fromEntries(CONTAINER_SCALE.map((c) => [c, px(theme.container[c])])),
506
+ font: {
507
+ family: null,
508
+ fontSize: null,
509
+ letterSpacing: null,
510
+ lineHeight: null,
511
+ ascenderHeight: null,
512
+ descenderHeight: null,
513
+ iconSize: null,
514
+ featureSettings: null,
515
+ fontWeight: null,
516
+ iconOffset: null,
517
+ code: {
518
+ family: theme.font.code.family,
519
+ featureSettings: theme.font.code.featureSettings ?? "normal",
520
+ weight: {
521
+ regular: String(theme.font.code.weights.regular),
522
+ medium: String(theme.font.code.weights.medium),
523
+ semibold: String(theme.font.code.weights.semibold),
524
+ bold: String(theme.font.code.weights.bold)
525
+ },
526
+ sizes: _fromEntries(FONT_CODE_SIZE.map((s) => [s, {
527
+ fontSize: rem(theme.font.code.sizes[s].fontSize),
528
+ lineHeight: rem(theme.font.code.sizes[s].lineHeight),
529
+ letterSpacing: rem(theme.font.code.sizes[s].letterSpacing),
530
+ ascenderHeight: rem(theme.font.code.sizes[s].ascenderHeight),
531
+ descenderHeight: rem(theme.font.code.sizes[s].descenderHeight),
532
+ iconSize: rem(theme.font.code.sizes[s].iconSize)
533
+ }]))
534
+ },
535
+ heading: {
536
+ family: theme.font.heading.family,
537
+ featureSettings: theme.font.heading.featureSettings ?? "normal",
538
+ weight: {
539
+ regular: String(theme.font.heading.weights.regular),
540
+ medium: String(theme.font.heading.weights.medium),
541
+ semibold: String(theme.font.heading.weights.semibold),
542
+ bold: String(theme.font.heading.weights.bold)
543
+ },
544
+ sizes: _fromEntries(FONT_HEADING_SIZE.map((s) => [s, {
545
+ fontSize: rem(theme.font.heading.sizes[s].fontSize),
546
+ lineHeight: rem(theme.font.heading.sizes[s].lineHeight),
547
+ letterSpacing: rem(theme.font.heading.sizes[s].letterSpacing),
548
+ ascenderHeight: rem(theme.font.heading.sizes[s].ascenderHeight),
549
+ descenderHeight: rem(theme.font.heading.sizes[s].descenderHeight),
550
+ iconSize: rem(theme.font.heading.sizes[s].iconSize)
551
+ }]))
552
+ },
553
+ label: {
554
+ family: theme.font.label.family,
555
+ featureSettings: theme.font.label.featureSettings ?? "normal",
556
+ weight: {
557
+ regular: String(theme.font.label.weights.regular),
558
+ medium: String(theme.font.label.weights.medium),
559
+ semibold: String(theme.font.label.weights.semibold),
560
+ bold: String(theme.font.label.weights.bold)
561
+ },
562
+ sizes: _fromEntries(FONT_LABEL_SIZE.map((s) => [s, {
563
+ fontSize: rem(theme.font.label.sizes[s].fontSize),
564
+ lineHeight: rem(theme.font.label.sizes[s].lineHeight),
565
+ letterSpacing: rem(theme.font.label.sizes[s].letterSpacing),
566
+ ascenderHeight: rem(theme.font.label.sizes[s].ascenderHeight),
567
+ descenderHeight: rem(theme.font.label.sizes[s].descenderHeight),
568
+ iconSize: rem(theme.font.label.sizes[s].iconSize)
569
+ }]))
570
+ },
571
+ text: {
572
+ family: theme.font.text.family,
573
+ featureSettings: theme.font.text.featureSettings ?? "normal",
574
+ weight: {
575
+ regular: String(theme.font.text.weights.regular),
576
+ medium: String(theme.font.text.weights.medium),
577
+ semibold: String(theme.font.text.weights.semibold),
578
+ bold: String(theme.font.text.weights.bold)
579
+ },
580
+ sizes: _fromEntries(FONT_TEXT_SIZE.map((s) => [s, {
581
+ fontSize: rem(theme.font.text.sizes[s].fontSize),
582
+ lineHeight: rem(theme.font.text.sizes[s].lineHeight),
583
+ letterSpacing: rem(theme.font.text.sizes[s].letterSpacing),
584
+ ascenderHeight: rem(theme.font.text.sizes[s].ascenderHeight),
585
+ descenderHeight: rem(theme.font.text.sizes[s].descenderHeight),
586
+ iconSize: rem(theme.font.text.sizes[s].iconSize)
587
+ }]))
588
+ },
589
+ skeleton: {
590
+ lineHeight: null,
591
+ ascenderHeight: null,
592
+ descenderHeight: null
593
+ },
889
594
  weight: {
890
- regular: `var(${varNames.font.label.weights.regular})`,
891
- medium: `var(${varNames.font.label.weights.medium})`,
892
- semibold: `var(${varNames.font.label.weights.semibold})`,
893
- bold: `var(${varNames.font.label.weights.bold})`
595
+ regular: null,
596
+ medium: null,
597
+ semibold: null,
598
+ bold: null
894
599
  }
895
600
  },
896
- text: {
897
- family: `var(${varNames.font.text.family})`,
898
- sizes: FONT_TEXT_SIZE.reduce((acc, size) => ({
899
- ...acc,
900
- [size]: {
901
- fontSize: `var(${varNames.font.text.sizes[size].fontSize})`,
902
- ascenderHeight: `var(${varNames.font.text.sizes[size].ascenderHeight})`,
903
- descenderHeight: `var(${varNames.font.text.sizes[size].descenderHeight})`,
904
- lineHeight: `var(${varNames.font.text.sizes[size].lineHeight})`,
905
- letterSpacing: `var(${varNames.font.text.sizes[size].letterSpacing})`,
906
- iconSize: `var(${varNames.font.text.sizes[size].iconSize})`
601
+ input: {
602
+ gap: null,
603
+ descenderHeight: null,
604
+ ascenderHeight: null,
605
+ fontSize: null,
606
+ lineHeight: null,
607
+ letterSpacing: null,
608
+ padding: null,
609
+ border: {
610
+ width: px(theme.input.border.width)
611
+ },
612
+ checkbox: {
613
+ size: px(theme.input.checkbox.size),
614
+ focusRing: {
615
+ offset: px(theme.input.checkbox.focusRing.offset),
616
+ width: px(theme.input.checkbox.focusRing.width)
907
617
  }
908
- }), {}),
909
- weight: {
910
- regular: `var(${varNames.font.text.weights.regular})`,
911
- medium: `var(${varNames.font.text.weights.medium})`,
912
- semibold: `var(${varNames.font.text.weights.semibold})`,
913
- bold: `var(${varNames.font.text.weights.bold})`
914
- }
915
- }
916
- },
917
- input: {
918
- fontSize: "var(--input-font-size)",
919
- lineHeight: "var(--input-line-height)",
920
- letterSpacing: "var(--input-letter-spacing)",
921
- ascenderHeight: "var(--input-ascender-height)",
922
- descenderHeight: "var(--input-descender-height)",
923
- // capHeight: `var(--input-cap-height)`,
924
- gap: "var(--input-gap)",
925
- padding: "var(--input-padding)",
926
- text: {
927
- focusRing: {
928
- width: "var(--input-text-focus-ring-width)",
929
- offset: "var(--input-text-focus-ring-offset)"
930
- }
931
- }
932
- },
933
- radius: Object.fromEntries(RADIUS.map((radius2) => [radius2, `var(${varNames.radius[radius2]})`])),
934
- shadow: Object.fromEntries(SHADOW.map((shadow2) => [shadow2, {
935
- umbra: `var(${varNames.shadow[shadow2].umbra})`,
936
- penumbra: `var(${varNames.shadow[shadow2].penumbra})`,
937
- ambient: `var(${varNames.shadow[shadow2].ambient})`
938
- }])),
939
- space: Object.fromEntries(SPACE.map((space) => [space, `var(${varNames.space[space]})`])),
940
- // color
941
- black: `var(${varNames.black})`,
942
- white: `var(${varNames.white})`,
943
- ...COLOR_HUES.reduce((acc, hue) => {
944
- const tints = {};
945
- for (const tint of COLOR_TINTS)
946
- tints[tint] = `var(--${hue}-${tint})`;
947
- return acc[hue] = tints, acc;
948
- }, {})
949
- };
950
- function buildColorCardVars(props) {
951
- const {
952
- scheme,
953
- tone
954
- } = props, prefix = scheme ? varNames.color[scheme][tone] : varNames.color[tone];
955
- return {
956
- avatar: {
957
- ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color2) => ({
958
- ...acc,
959
- [color2]: {
960
- bg: `var(${prefix.avatar[color2].bg})`,
961
- fg: `var(${prefix.avatar[color2].fg})`
618
+ },
619
+ radio: {
620
+ focusRing: {
621
+ offset: px(theme.input.radio.focusRing.offset),
622
+ width: px(theme.input.radio.focusRing.width)
623
+ },
624
+ markSize: px(theme.input.radio.markSize),
625
+ size: px(theme.input.radio.size)
626
+ },
627
+ select: {
628
+ focusRing: {
629
+ offset: px(theme.input.select.focusRing.offset),
630
+ width: px(theme.input.select.focusRing.width)
962
631
  }
963
- }), {})
964
- },
965
- backdrop: `var(${prefix.backdrop})`,
966
- code: {
967
- bg: `var(${prefix.code.bg})`,
968
- fg: `var(${prefix.code.fg})`,
969
- token: {
970
- atrule: `var(${prefix.code.token.atrule})`,
971
- attrName: `var(${prefix.code.token.attrName})`,
972
- attrValue: `var(${prefix.code.token.attrValue})`,
973
- attribute: `var(${prefix.code.token.attribute})`,
974
- boolean: `var(${prefix.code.token.boolean})`,
975
- builtin: `var(${prefix.code.token.builtin})`,
976
- cdata: `var(${prefix.code.token.cdata})`,
977
- char: `var(${prefix.code.token.char})`,
978
- class: `var(${prefix.code.token.class})`,
979
- className: `var(${prefix.code.token.className})`,
980
- comment: `var(${prefix.code.token.comment})`,
981
- constant: `var(${prefix.code.token.constant})`,
982
- deleted: `var(${prefix.code.token.deleted})`,
983
- doctype: `var(${prefix.code.token.doctype})`,
984
- entity: `var(${prefix.code.token.entity})`,
985
- function: `var(${prefix.code.token.function})`,
986
- hexcode: `var(${prefix.code.token.hexcode})`,
987
- id: `var(${prefix.code.token.id})`,
988
- important: `var(${prefix.code.token.important})`,
989
- inserted: `var(${prefix.code.token.inserted})`,
990
- keyword: `var(${prefix.code.token.keyword})`,
991
- number: `var(${prefix.code.token.number})`,
992
- operator: `var(${prefix.code.token.operator})`,
993
- prolog: `var(${prefix.code.token.prolog})`,
994
- property: `var(${prefix.code.token.property})`,
995
- pseudoClass: `var(${prefix.code.token.pseudoClass})`,
996
- pseudoElement: `var(${prefix.code.token.pseudoElement})`,
997
- punctuation: `var(${prefix.code.token.punctuation})`,
998
- regex: `var(${prefix.code.token.regex})`,
999
- selector: `var(${prefix.code.token.selector})`,
1000
- string: `var(${prefix.code.token.string})`,
1001
- symbol: `var(${prefix.code.token.symbol})`,
1002
- tag: `var(${prefix.code.token.tag})`,
1003
- unit: `var(${prefix.code.token.unit})`,
1004
- url: `var(${prefix.code.token.url})`,
1005
- variable: `var(${prefix.code.token.variable})`
632
+ },
633
+ text: {
634
+ focusRing: {
635
+ offset: px(theme.input.text.focusRing.offset),
636
+ width: px(theme.input.text.focusRing.width)
637
+ }
638
+ },
639
+ switch: {
640
+ width: px(theme.input.switch.width),
641
+ height: px(theme.input.switch.height),
642
+ focusRing: {
643
+ offset: px(theme.input.switch.focusRing.offset),
644
+ width: px(theme.input.switch.focusRing.width)
645
+ },
646
+ padding: px(theme.input.switch.padding),
647
+ thumb: {
648
+ offset: null,
649
+ size: null
650
+ },
651
+ transitionDurationMs: `${theme.input.switch.transitionDurationMs}ms`,
652
+ transitionTimingFunction: theme.input.switch.transitionTimingFunction
1006
653
  }
1007
654
  },
1008
- focusRing: `var(${prefix.focusRing})`,
1009
- link: {
1010
- fg: `var(${prefix.link.fg})`
1011
- },
1012
- muted: {
1013
- bg: `var(${prefix.muted.bg})`,
1014
- fg: `var(${prefix.muted.fg})`
1015
- },
1016
- shadow: {
1017
- outline: `var(${prefix.shadow.outline})`,
1018
- umbra: `var(${prefix.shadow.umbra})`,
1019
- penumbra: `var(${prefix.shadow.penumbra})`,
1020
- ambient: `var(${prefix.shadow.ambient})`
1021
- },
1022
- skeleton: {
1023
- from: `var(${prefix.skeleton.from})`,
1024
- to: `var(${prefix.skeleton.to})`
1025
- },
1026
- solid: buildColorVariantVars({
1027
- scheme,
1028
- tone,
1029
- variant: "solid"
655
+ radius: _fromEntries(RADIUS.map((r) => [r, px(theme.radius[r])])),
656
+ shadow: _fromEntries(SHADOW.map((s) => [s, {
657
+ umbra: toBoxShadow(theme.shadow[s]?.umbra),
658
+ penumbra: toBoxShadow(theme.shadow[s]?.penumbra),
659
+ ambient: toBoxShadow(theme.shadow[s]?.ambient)
660
+ }])),
661
+ space: _fromEntries(SPACE.map((s) => [s, px(theme.space[s])]))
662
+ }, {
663
+ layer: "theme",
664
+ prefix: "s"
665
+ });
666
+ return {
667
+ vars: Object.freeze({
668
+ ...paletteResult.vars,
669
+ ...themeResult.vars
1030
670
  }),
1031
- tinted: buildColorVariantVars({
1032
- scheme,
1033
- tone,
1034
- variant: "tinted"
671
+ varNames: Object.freeze({
672
+ ...paletteResult.varNames,
673
+ ...themeResult.varNames
674
+ }),
675
+ properties: Object.freeze({
676
+ ...paletteResult.properties,
677
+ ...themeResult.properties
1035
678
  })
1036
679
  };
1037
- }
1038
- function buildColorVariantVars(options) {
1039
- const {
1040
- scheme,
1041
- tone,
1042
- variant
1043
- } = options, _prefix = scheme && tone ? `--color-${scheme}-${tone}-${variant}` : tone ? `--color-${tone}-${variant}` : `--color-${variant}`, vars2 = {
1044
- bg: {
1045
- 0: `var(${_prefix}-bg-0)`,
1046
- 1: `var(${_prefix}-bg-1)`,
1047
- 2: `var(${_prefix}-bg-2)`,
1048
- 3: `var(${_prefix}-bg-3)`,
1049
- 4: `var(${_prefix}-bg-4)`
1050
- },
1051
- border: {
1052
- 0: `var(${_prefix}-border-0)`,
1053
- 1: `var(${_prefix}-border-1)`,
1054
- 2: `var(${_prefix}-border-2)`,
1055
- 3: `var(${_prefix}-border-3)`,
1056
- 4: `var(${_prefix}-border-4)`
1057
- },
1058
- fg: {
1059
- 0: `var(${_prefix}-fg-0)`,
1060
- 1: `var(${_prefix}-fg-1)`,
1061
- 2: `var(${_prefix}-fg-2)`,
1062
- 3: `var(${_prefix}-fg-3)`,
1063
- 4: `var(${_prefix}-fg-4)`
1064
- }
1065
- };
1066
- for (const elementTone of THEME_COLOR_STATE_TONES) {
1067
- const prefix = scheme && tone ? `--color-${scheme}-${tone}-${variant}-${elementTone}` : tone ? `--color-${tone}-${variant}-${elementTone}` : `--color-${variant}-${elementTone}`;
1068
- vars2[elementTone] = {
680
+ function renderColor(t, options2) {
681
+ const {
682
+ bgValue = "transparent"
683
+ } = options2, color = _parseColorToken(t, options2);
684
+ if (color.type === "inherit")
685
+ return bgValue;
686
+ let value = "#000";
687
+ return color.type === "color" && (value = paletteResult.vars.palette[color.name]), color.type === "tint" && (value = paletteResult.vars.palette[color.hue][color.tint]), color.opacity < 1 && (value = `color-mix(in srgb, transparent, ${value} ${color.opacity * 100}%)`), color.mix < 1 && (value = `color-mix(in srgb, ${bgValue}, ${value} ${color.mix * 100}%)`), value;
688
+ }
689
+ function buildCardContract(options2) {
690
+ const {
691
+ theme: theme2,
692
+ scheme,
693
+ tone
694
+ } = options2, card2 = theme2.color[tone], cardOptions = {
695
+ defaultHue: card2._hue
696
+ }, i = scheme === "dark" ? 1 : 0, defaultElement = buildElementContract({
697
+ card: card2,
698
+ variant: "tinted",
699
+ tone: "default",
700
+ scheme
701
+ });
702
+ return {
703
+ avatar: _fromEntries(AVATAR_COLORS.map((c) => [c, {
704
+ bg: renderColor(card2.avatar[c].bg[i], {
705
+ defaultHue: c
706
+ }),
707
+ fg: renderColor(card2.avatar[c].fg[i], {
708
+ defaultHue: c
709
+ })
710
+ }])),
711
+ backdrop: renderColor(card2.backdrop[i], cardOptions),
712
+ code: {
713
+ bg: renderColor(card2.code.bg[i], cardOptions),
714
+ fg: renderColor(card2.code.fg[i], cardOptions),
715
+ token: {
716
+ atrule: renderColor(card2.code.token.atrule[i], cardOptions),
717
+ attrName: renderColor(card2.code.token.attrName[i], cardOptions),
718
+ attrValue: renderColor(card2.code.token.attrValue[i], cardOptions),
719
+ attribute: renderColor(card2.code.token.attribute[i], cardOptions),
720
+ boolean: renderColor(card2.code.token.boolean[i], cardOptions),
721
+ builtin: renderColor(card2.code.token.builtin[i], cardOptions),
722
+ cdata: renderColor(card2.code.token.cdata[i], cardOptions),
723
+ char: renderColor(card2.code.token.char[i], cardOptions),
724
+ class: renderColor(card2.code.token.class[i], cardOptions),
725
+ className: renderColor(card2.code.token.className[i], cardOptions),
726
+ comment: renderColor(card2.code.token.comment[i], cardOptions),
727
+ constant: renderColor(card2.code.token.constant[i], cardOptions),
728
+ deleted: renderColor(card2.code.token.deleted[i], cardOptions),
729
+ doctype: renderColor(card2.code.token.doctype[i], cardOptions),
730
+ entity: renderColor(card2.code.token.entity[i], cardOptions),
731
+ function: renderColor(card2.code.token.function[i], cardOptions),
732
+ hexcode: renderColor(card2.code.token.hexcode[i], cardOptions),
733
+ id: renderColor(card2.code.token.id[i], cardOptions),
734
+ important: renderColor(card2.code.token.important[i], cardOptions),
735
+ inserted: renderColor(card2.code.token.inserted[i], cardOptions),
736
+ keyword: renderColor(card2.code.token.keyword[i], cardOptions),
737
+ number: renderColor(card2.code.token.number[i], cardOptions),
738
+ operator: renderColor(card2.code.token.operator[i], cardOptions),
739
+ prolog: renderColor(card2.code.token.prolog[i], cardOptions),
740
+ property: renderColor(card2.code.token.property[i], cardOptions),
741
+ pseudoClass: renderColor(card2.code.token.pseudoClass[i], cardOptions),
742
+ pseudoElement: renderColor(card2.code.token.pseudoElement[i], cardOptions),
743
+ punctuation: renderColor(card2.code.token.punctuation[i], cardOptions),
744
+ regex: renderColor(card2.code.token.regex[i], cardOptions),
745
+ selector: renderColor(card2.code.token.selector[i], cardOptions),
746
+ string: renderColor(card2.code.token.string[i], cardOptions),
747
+ symbol: renderColor(card2.code.token.symbol[i], cardOptions),
748
+ tag: renderColor(card2.code.token.tag[i], cardOptions),
749
+ unit: renderColor(card2.code.token.unit[i], cardOptions),
750
+ url: renderColor(card2.code.token.url[i], cardOptions),
751
+ variable: renderColor(card2.code.token.variable[i], cardOptions)
752
+ }
753
+ },
754
+ focusRing: renderColor(card2.focusRing[i], cardOptions),
755
+ link: {
756
+ fg: renderColor(card2.link.fg[i], cardOptions)
757
+ },
758
+ shadow: {
759
+ outline: renderColor(card2.shadow.outline[i], cardOptions),
760
+ umbra: renderColor(card2.shadow.umbra[i], cardOptions),
761
+ penumbra: renderColor(card2.shadow.penumbra[i], cardOptions),
762
+ ambient: renderColor(card2.shadow.ambient[i], cardOptions)
763
+ },
764
+ skeleton: {
765
+ from: renderColor(card2.skeleton.from[i], cardOptions),
766
+ to: renderColor(card2.skeleton.to[i], cardOptions)
767
+ },
768
+ ..._fromEntries(COLOR_VARIANTS.map((v) => [v, _fromEntries(THEME_COLOR_STATE_TONES.map((e) => [e, v === "tinted" && e === "default" ? defaultElement : buildElementContract({
769
+ card: card2,
770
+ variant: v,
771
+ tone: e,
772
+ scheme,
773
+ bgValue: defaultElement.bg[0]
774
+ })]))]))
775
+ };
776
+ }
777
+ function buildElementContract(options2) {
778
+ const {
779
+ bgValue,
780
+ card: card2,
781
+ variant: v,
782
+ tone: e,
783
+ scheme
784
+ } = options2, element = card2.variant[v][e], elementOptions = {
785
+ bgValue,
786
+ defaultHue: element._hue
787
+ }, i = scheme === "dark" ? 1 : 0, bg = {
788
+ 0: renderColor(element.bg[0][i], elementOptions),
789
+ 4: renderColor(element.bg[4][i], elementOptions)
790
+ }, border2 = {
791
+ 0: renderColor(element.border[0][i], elementOptions),
792
+ 4: renderColor(element.border[4][i], elementOptions)
793
+ }, fg = {
794
+ 0: renderColor(element.fg[0][i], elementOptions),
795
+ 4: renderColor(element.fg[4][i], elementOptions)
796
+ };
797
+ return {
1069
798
  bg: {
1070
- 0: `var(${prefix}-bg-0)`,
1071
- 1: `var(${prefix}-bg-1)`,
1072
- 2: `var(${prefix}-bg-2)`,
1073
- 3: `var(${prefix}-bg-3)`,
1074
- 4: `var(${prefix}-bg-4)`
799
+ 0: bg[0],
800
+ 1: `color-mix(in srgb, ${bg[0]}, ${bg[4]} 25%)`,
801
+ 2: `color-mix(in srgb, ${bg[0]}, ${bg[4]} 50%)`,
802
+ 3: `color-mix(in srgb, ${bg[0]}, ${bg[4]} 75%)`,
803
+ 4: bg[4]
1075
804
  },
1076
805
  border: {
1077
- 0: `var(${prefix}-border-0)`,
1078
- 1: `var(${prefix}-border-1)`,
1079
- 2: `var(${prefix}-border-2)`,
1080
- 3: `var(${prefix}-border-3)`,
1081
- 4: `var(${prefix}-border-4)`
806
+ 0: border2[0],
807
+ 1: `color-mix(in srgb, ${border2[0]}, ${border2[4]} 25%)`,
808
+ 2: `color-mix(in srgb, ${border2[0]}, ${border2[4]} 50%)`,
809
+ 3: `color-mix(in srgb, ${border2[0]}, ${border2[4]} 75%)`,
810
+ 4: border2[4]
1082
811
  },
1083
812
  fg: {
1084
- 0: `var(${prefix}-fg-0)`,
1085
- 1: `var(${prefix}-fg-1)`,
1086
- 2: `var(${prefix}-fg-2)`,
1087
- 3: `var(${prefix}-fg-3)`,
1088
- 4: `var(${prefix}-fg-4)`
813
+ 0: fg[0],
814
+ 1: `color-mix(in srgb, ${fg[0]}, ${fg[4]} 25%)`,
815
+ 2: `color-mix(in srgb, ${fg[0]}, ${fg[4]} 50%)`,
816
+ 3: `color-mix(in srgb, ${fg[0]}, ${fg[4]} 75%)`,
817
+ 4: fg[4]
1089
818
  }
1090
819
  };
1091
820
  }
1092
- return vars2;
1093
821
  }
1094
- const util$u = {};
1095
- _responsiveRule(util$u, "border", {
822
+ function px(value) {
823
+ return `${value}px`;
824
+ }
825
+ function rem(value) {
826
+ return `${value / 16}rem`;
827
+ }
828
+ function toBoxShadow(value) {
829
+ return value ? value.map((n) => px(n)).join(" ") : "none";
830
+ }
831
+ const result = resolveTheme({
832
+ theme: buildTheme_v3()
833
+ }), vars = result.vars, varNames = result.varNames, properties = result.properties, util$v = {};
834
+ _responsiveRule(util$v, "border", {
1096
835
  border: `1px solid ${vars.color.border}`
1097
836
  });
1098
- _responsiveRule(util$u, "border-t", {
837
+ _responsiveRule(util$v, "border-t", {
1099
838
  borderTop: `1px solid ${vars.color.border}`
1100
839
  });
1101
- _responsiveRule(util$u, "border-r", {
840
+ _responsiveRule(util$v, "border-r", {
1102
841
  borderRight: `1px solid ${vars.color.border}`
1103
842
  });
1104
- _responsiveRule(util$u, "border-b", {
843
+ _responsiveRule(util$v, "border-b", {
1105
844
  borderBottom: `1px solid ${vars.color.border}`
1106
845
  });
1107
- _responsiveRule(util$u, "border-l", {
846
+ _responsiveRule(util$v, "border-l", {
1108
847
  borderLeft: `1px solid ${vars.color.border}`
1109
848
  });
1110
849
  const borderStyle = {
850
+ layers: {
851
+ util: util$v
852
+ }
853
+ }, util$u = {};
854
+ _responsiveRule(util$u, "box-border", {
855
+ boxSizing: "border-box"
856
+ });
857
+ _responsiveRule(util$u, "box-content", {
858
+ boxSizing: "content-box"
859
+ });
860
+ const boxSizingStyle = {
1111
861
  layers: {
1112
862
  util: util$u
1113
863
  }
1114
864
  }, util$t = {};
1115
865
  _responsiveRule(util$t, "block", {
1116
- "@nest": {
866
+ nest: {
1117
867
  "&:not([hidden])": {
1118
868
  display: "block"
1119
869
  }
1120
870
  }
1121
871
  });
1122
872
  _responsiveRule(util$t, "flex", {
1123
- "@nest": {
873
+ nest: {
1124
874
  "&:not([hidden])": {
1125
875
  display: "flex"
1126
876
  }
1127
877
  }
1128
878
  });
1129
879
  _responsiveRule(util$t, "grid", {
1130
- "@nest": {
880
+ nest: {
1131
881
  "&:not([hidden])": {
1132
882
  display: "grid"
1133
883
  }
1134
884
  }
1135
885
  });
1136
886
  _responsiveRule(util$t, "inline-block", {
1137
- "@nest": {
887
+ nest: {
1138
888
  "&:not([hidden])": {
1139
889
  display: "inline-block"
1140
890
  }
1141
891
  }
1142
892
  });
1143
893
  _responsiveRule(util$t, "inline-flex", {
1144
- "@nest": {
894
+ nest: {
1145
895
  "&:not([hidden])": {
1146
896
  display: "inline-flex"
1147
897
  }
1148
898
  }
1149
899
  });
1150
900
  _responsiveRule(util$t, "inline-grid", {
1151
- "@nest": {
901
+ nest: {
1152
902
  "&:not([hidden])": {
1153
903
  display: "inline-grid"
1154
904
  }
1155
905
  }
1156
906
  });
1157
907
  _responsiveRule(util$t, "none", {
1158
- "@nest": {
908
+ nest: {
1159
909
  "&:not([hidden])": {
1160
910
  display: "none"
1161
911
  }
@@ -1285,23 +1035,25 @@ const flexStyle = {
1285
1035
  }
1286
1036
  }, primitive$q = {
1287
1037
  ".font": {
1288
- fontFamily: "var(--font-family)",
1289
- fontFeatureSettings: "var(--font-feature-settings)",
1290
- fontSize: "var(--font-size)",
1291
- lineHeight: "var(--font-line-height)",
1292
- letterSpacing: "var(--font-letter-spacing)",
1293
- fontWeight: "var(--font-weight)",
1294
- transform: "translateY(var(--font-descender-height))",
1038
+ fontFamily: vars.font.family,
1039
+ fontFeatureSettings: vars.font.featureSettings,
1040
+ fontSize: vars.font.fontSize,
1041
+ lineHeight: vars.font.lineHeight,
1042
+ letterSpacing: vars.font.letterSpacing,
1043
+ fontWeight: vars.font.fontWeight,
1044
+ transform: `translateY(${vars.font.descenderHeight})`,
1295
1045
  padding: "1px 0",
1296
1046
  margin: "0",
1297
- "--font-icon-offset": "calc(((var(--font-line-height) - var(--font-ascender-height) - var(--font-descender-height)) - var(--font-icon-size)) / 2)",
1298
- "--font-weight": "var(--font-weight-regular)",
1299
- "@nest": {
1047
+ vars: {
1048
+ [varNames.font.iconOffset]: `calc(((${vars.font.lineHeight} - ${vars.font.ascenderHeight} - ${vars.font.descenderHeight}) - ${vars.font.iconSize}) / 2)`,
1049
+ [varNames.font.fontWeight]: vars.font.weight.regular
1050
+ },
1051
+ nest: {
1300
1052
  "&:before": {
1301
1053
  content: '""',
1302
1054
  display: "block",
1303
1055
  height: 0,
1304
- marginTop: "calc((0px - var(--font-ascender-height) - var(--font-descender-height)) - 1px)"
1056
+ marginTop: `calc((0px - ${vars.font.ascenderHeight} - ${vars.font.descenderHeight}) - 1px)`
1305
1057
  },
1306
1058
  "&:after": {
1307
1059
  content: '""',
@@ -1314,29 +1066,37 @@ const flexStyle = {
1314
1066
  // Make sure SVGs are rendered as inline elements
1315
1067
  display: "inline"
1316
1068
  },
1317
- // todo
1069
+ // TODO
1318
1070
  // '& svg:not([data-sanity-icon])': {
1319
1071
  // fontSize: 'calc(var(--custom-icon-size) / 16 * 1rem)',
1320
1072
  // margin: 'var(--custom-icon-offset)',
1321
1073
  // },
1322
1074
  "& [data-sanity-icon]": {
1323
- fontSize: "var(--font-icon-size)",
1324
- margin: "var(--font-icon-offset)",
1075
+ fontSize: vars.font.iconSize,
1076
+ margin: vars.font.iconOffset,
1325
1077
  vectorEffect: "non-scaling-stroke"
1326
1078
  }
1327
1079
  }
1328
1080
  },
1329
1081
  ".font-regular": {
1330
- "--font-weight": "var(--font-weight-regular)"
1082
+ vars: {
1083
+ [varNames.font.fontWeight]: vars.font.weight.regular
1084
+ }
1331
1085
  },
1332
1086
  ".font-medium": {
1333
- "--font-weight": "var(--font-weight-medium)"
1087
+ vars: {
1088
+ [varNames.font.fontWeight]: vars.font.weight.medium
1089
+ }
1334
1090
  },
1335
1091
  ".font-semibold": {
1336
- "--font-weight": "var(--font-weight-semibold)"
1092
+ vars: {
1093
+ [varNames.font.fontWeight]: vars.font.weight.semibold
1094
+ }
1337
1095
  },
1338
1096
  ".font-bold": {
1339
- "--font-weight": "var(--font-weight-bold)"
1097
+ vars: {
1098
+ [varNames.font.fontWeight]: vars.font.weight.bold
1099
+ }
1340
1100
  }
1341
1101
  }, fontStyle = {
1342
1102
  layers: {
@@ -1799,21 +1559,21 @@ for (const space of SPACE)
1799
1559
  marginTop: vars.space[space],
1800
1560
  marginBottom: vars.space[space]
1801
1561
  });
1802
- for (const space of SPACE)
1803
- _responsiveRule(util$9, `mt-${space}`, {
1804
- marginTop: vars.space[space]
1562
+ for (const i of SPACE)
1563
+ _responsiveRule(util$9, `mt-${i}`, {
1564
+ marginTop: vars.space[i]
1805
1565
  });
1806
- for (const space of SPACE)
1807
- _responsiveRule(util$9, `mr-${space}`, {
1808
- marginRight: vars.space[space]
1566
+ for (const i of SPACE)
1567
+ _responsiveRule(util$9, `mr-${i}`, {
1568
+ marginRight: vars.space[i]
1809
1569
  });
1810
- for (const space of SPACE)
1811
- _responsiveRule(util$9, `mb-${space}`, {
1812
- marginBottom: vars.space[space]
1570
+ for (const i of SPACE)
1571
+ _responsiveRule(util$9, `mb-${i}`, {
1572
+ marginBottom: vars.space[i]
1813
1573
  });
1814
- for (const space of SPACE)
1815
- _responsiveRule(util$9, `ml-${space}`, {
1816
- marginLeft: vars.space[space]
1574
+ for (const i of SPACE)
1575
+ _responsiveRule(util$9, `ml-${i}`, {
1576
+ marginLeft: vars.space[i]
1817
1577
  });
1818
1578
  const marginStyle = {
1819
1579
  layers: {
@@ -1992,11 +1752,11 @@ const radiusStyle = {
1992
1752
  util: util$3
1993
1753
  }
1994
1754
  }, util$2 = {};
1995
- for (const shadow2 of SHADOW)
1996
- shadow2 === 0 ? _responsiveRule(util$2, "shadow-0", {
1755
+ for (const index of SHADOW)
1756
+ index === 0 ? _responsiveRule(util$2, "shadow-0", {
1997
1757
  boxShadow: "none"
1998
- }) : _responsiveRule(util$2, `shadow-${shadow2}`, {
1999
- boxShadow: [`0 0 0 ${vars.card.shadow.outline} ${vars.color.shadow.outline}`, `${vars.shadow[shadow2].umbra} ${vars.color.shadow.umbra}`, `${vars.shadow[shadow2].penumbra} ${vars.color.shadow.penumbra}`, `${vars.shadow[shadow2].ambient} ${vars.color.shadow.ambient}`].join(", ")
1758
+ }) : _responsiveRule(util$2, `shadow-${index}`, {
1759
+ boxShadow: [`0 0 0 ${vars.card.shadow.outline} ${vars.color.shadow.outline}`, `${vars.shadow[index].umbra} ${vars.color.shadow.umbra}`, `${vars.shadow[index].penumbra} ${vars.color.shadow.penumbra}`, `${vars.shadow[index].ambient} ${vars.color.shadow.ambient}`].join(", ")
2000
1760
  });
2001
1761
  const shadowStyle = {
2002
1762
  layers: {
@@ -2058,8 +1818,8 @@ const widthStyle = {
2058
1818
  layers: {
2059
1819
  component: component$5
2060
1820
  }
2061
- }, keyframes$2 = {
2062
- "dialog-zoom-in": {
1821
+ }, KEYFRAMES_DIALOG_ZOOM_IN = "dialog-zoom-in", KEYFRAMES_DIALOG_FADE_IN = "dialog-fade-in", keyframes$2 = {
1822
+ [KEYFRAMES_DIALOG_ZOOM_IN]: {
2063
1823
  from: {
2064
1824
  opacity: 0,
2065
1825
  transform: "scale(0.95)"
@@ -2069,7 +1829,7 @@ const widthStyle = {
2069
1829
  transform: "scale(1)"
2070
1830
  }
2071
1831
  },
2072
- "dialog-fade-in": {
1832
+ [KEYFRAMES_DIALOG_FADE_IN]: {
2073
1833
  from: {
2074
1834
  opacity: 0
2075
1835
  },
@@ -2079,21 +1839,16 @@ const widthStyle = {
2079
1839
  }
2080
1840
  }, component$4 = {
2081
1841
  ".dialog": {
2082
- // 'top': 0,
2083
- // 'left': 0,
2084
- // 'right': 0,
2085
- // 'bottom': 0,
2086
1842
  alignItems: "center",
2087
1843
  justifyContent: "center",
2088
1844
  outline: "none",
2089
1845
  background: vars.color.backdrop,
2090
- "@nest": {
1846
+ nest: {
2091
1847
  "&[data-animate]": {
2092
- animation: "dialog-fade-in 200ms ease-out"
1848
+ animation: `${KEYFRAMES_DIALOG_FADE_IN} 200ms ease-out`
2093
1849
  },
2094
- // Animates the dialog card.
2095
1850
  '&[data-animate] > [data-ui="DialogCard"]': {
2096
- animation: "dialog-zoom-in 200ms ease-out"
1851
+ animation: `${KEYFRAMES_DIALOG_ZOOM_IN} 200ms ease-out`
2097
1852
  }
2098
1853
  }
2099
1854
  },
@@ -2158,7 +1913,7 @@ const widthStyle = {
2158
1913
  backgroundAttachment: "fixed",
2159
1914
  opacity: 0,
2160
1915
  transition: "opacity 200ms ease-in",
2161
- "@nest": {
1916
+ nest: {
2162
1917
  "&[data-animated]": {
2163
1918
  backgroundImage: ["linear-gradient(to right", vars.color.skeleton.from, vars.color.skeleton.to, vars.color.skeleton.from, vars.color.skeleton.from, vars.color.skeleton.from, ")"].join(", "),
2164
1919
  animationName: KEYFRAMES_PULSE,
@@ -2177,32 +1932,40 @@ const widthStyle = {
2177
1932
  }
2178
1933
  },
2179
1934
  ".font-skeleton": {
2180
- height: "calc(var(--font-skeleton-line-height) - var(--font-skeleton-ascender-height) - var(--font-skeleton-descender-height))"
1935
+ height: `calc(${vars.font.skeleton.lineHeight} - ${vars.font.skeleton.ascenderHeight} - ${vars.font.skeleton.descenderHeight})`
2181
1936
  }
2182
1937
  };
2183
1938
  for (const size of FONT_CODE_SIZE)
2184
1939
  _responsiveRule(component$2, `code-skeleton-${size}`, {
2185
- "--font-skeleton-line-height": vars.font.code.sizes[size].lineHeight,
2186
- "--font-skeleton-ascender-height": vars.font.code.sizes[size].ascenderHeight,
2187
- "--font-skeleton-descender-height": vars.font.code.sizes[size].descenderHeight
1940
+ vars: {
1941
+ [varNames.font.skeleton.lineHeight]: vars.font.code.sizes[size].lineHeight,
1942
+ [varNames.font.skeleton.ascenderHeight]: vars.font.code.sizes[size].ascenderHeight,
1943
+ [varNames.font.skeleton.descenderHeight]: vars.font.code.sizes[size].descenderHeight
1944
+ }
2188
1945
  });
2189
1946
  for (const size of FONT_HEADING_SIZE)
2190
1947
  _responsiveRule(component$2, `heading-skeleton-${size}`, {
2191
- "--font-skeleton-line-height": vars.font.heading.sizes[size].lineHeight,
2192
- "--font-skeleton-ascender-height": vars.font.heading.sizes[size].ascenderHeight,
2193
- "--font-skeleton-descender-height": vars.font.heading.sizes[size].descenderHeight
1948
+ vars: {
1949
+ [varNames.font.skeleton.lineHeight]: vars.font.heading.sizes[size].lineHeight,
1950
+ [varNames.font.skeleton.ascenderHeight]: vars.font.heading.sizes[size].ascenderHeight,
1951
+ [varNames.font.skeleton.descenderHeight]: vars.font.heading.sizes[size].descenderHeight
1952
+ }
2194
1953
  });
2195
1954
  for (const size of FONT_LABEL_SIZE)
2196
1955
  _responsiveRule(component$2, `label-skeleton-${size}`, {
2197
- "--font-skeleton-line-height": vars.font.label.sizes[size].lineHeight,
2198
- "--font-skeleton-ascender-height": vars.font.label.sizes[size].ascenderHeight,
2199
- "--font-skeleton-descender-height": vars.font.label.sizes[size].descenderHeight
1956
+ vars: {
1957
+ [varNames.font.skeleton.lineHeight]: vars.font.label.sizes[size].lineHeight,
1958
+ [varNames.font.skeleton.ascenderHeight]: vars.font.label.sizes[size].ascenderHeight,
1959
+ [varNames.font.skeleton.descenderHeight]: vars.font.label.sizes[size].descenderHeight
1960
+ }
2200
1961
  });
2201
1962
  for (const size of FONT_TEXT_SIZE)
2202
1963
  _responsiveRule(component$2, `text-skeleton-${size}`, {
2203
- "--font-skeleton-line-height": vars.font.text.sizes[size].lineHeight,
2204
- "--font-skeleton-ascender-height": vars.font.text.sizes[size].ascenderHeight,
2205
- "--font-skeleton-descender-height": vars.font.text.sizes[size].descenderHeight
1964
+ vars: {
1965
+ [varNames.font.skeleton.lineHeight]: vars.font.text.sizes[size].lineHeight,
1966
+ [varNames.font.skeleton.ascenderHeight]: vars.font.text.sizes[size].ascenderHeight,
1967
+ [varNames.font.skeleton.descenderHeight]: vars.font.text.sizes[size].descenderHeight
1968
+ }
2206
1969
  });
2207
1970
  const skeletonStyle = {
2208
1971
  keyframes: keyframes$1,
@@ -2229,14 +1992,13 @@ const skeletonStyle = {
2229
1992
  }
2230
1993
  }, component = {
2231
1994
  ".tree-item": {
2232
- "@nest": {
1995
+ nest: {
2233
1996
  '&[role="none"] > [role="treeitem"]': {
2234
1997
  outline: "none",
2235
1998
  cursor: "default",
2236
1999
  borderRadius: "3px",
2237
2000
  backgroundColor: vars.color.bg,
2238
- // 'var(--card-bg-color)',
2239
- color: "var(--treeitem-fg-color)"
2001
+ color: vars.color.fg
2240
2002
  },
2241
2003
  '&[role="none"] > [role="treeitem"]:focus': {
2242
2004
  position: "relative"
@@ -2248,24 +2010,11 @@ const skeletonStyle = {
2248
2010
  cursor: "default",
2249
2011
  borderRadius: "3px",
2250
2012
  backgroundColor: vars.color.bg,
2251
- // 'var(--card-bg-color)',
2252
- color: "var(--treeitem-fg-color)"
2013
+ color: vars.color.fg
2253
2014
  },
2254
2015
  '&[role="treeitem"]:focus > div': {
2255
2016
  position: "relative"
2256
2017
  }
2257
- // &[role='treeitem'] {
2258
- // outline: none;
2259
- // & > div {
2260
- // cursor: default;
2261
- // border-radius: 3px;
2262
- // background-color: var(--card-bg-color);
2263
- // color: var(--treeitem-fg-color);
2264
- // }
2265
- // &:focus > div {
2266
- // position: relative;
2267
- // }
2268
- // }
2269
2018
  }
2270
2019
  }
2271
2020
  }, treeStyle = {
@@ -2275,41 +2024,40 @@ const skeletonStyle = {
2275
2024
  }, primitive$p = {
2276
2025
  ".arrow": {
2277
2026
  position: "absolute",
2278
- // todo: replace with vars?
2279
- width: "var(--arrow-size)",
2280
- height: "var(--arrow-size)",
2281
- "@nest": {
2027
+ width: vars.arrow.size,
2028
+ height: vars.arrow.size,
2029
+ nest: {
2282
2030
  ":empty + &": {
2283
2031
  display: "none"
2284
2032
  },
2285
2033
  "& > svg": {
2286
2034
  display: "block",
2287
- transformOrigin: "calc(var(--arrow-size) / 2) calc(var(--arrow-size) / 2)"
2035
+ transformOrigin: `calc(${vars.arrow.size} / 2) calc(${vars.arrow.size} / 2)`
2288
2036
  },
2289
2037
  // top
2290
2038
  '[data-placement^="top"] > &': {
2291
- bottom: "calc(0px - var(--arrow-size))"
2039
+ bottom: `calc(0px - ${vars.arrow.size})`
2292
2040
  },
2293
2041
  '[data-placement^="top"] > & svg': {
2294
2042
  transform: "rotate(0deg)"
2295
2043
  },
2296
2044
  // right
2297
2045
  '[data-placement^="right"] > &': {
2298
- left: "calc(0px - var(--arrow-size))"
2046
+ left: `calc(0px - ${vars.arrow.size})`
2299
2047
  },
2300
2048
  '[data-placement^="right"] > & svg': {
2301
2049
  transform: "rotate(90deg)"
2302
2050
  },
2303
2051
  // left
2304
2052
  '[data-placement^="left"] > &': {
2305
- right: "calc(0px - var(--arrow-size))"
2053
+ right: `calc(0px - ${vars.arrow.size})`
2306
2054
  },
2307
2055
  '[data-placement^="left"] > & svg': {
2308
2056
  transform: "rotate(-90deg)"
2309
2057
  },
2310
2058
  // bottom
2311
2059
  '[data-placement^="bottom"] > &': {
2312
- top: "calc(0px - var(--arrow-size))"
2060
+ top: `calc(0px - ${vars.arrow.size})`
2313
2061
  },
2314
2062
  '[data-placement^="bottom"] > & svg': {
2315
2063
  transform: "rotate(180deg)"
@@ -2336,15 +2084,13 @@ const skeletonStyle = {
2336
2084
  position: "relative"
2337
2085
  },
2338
2086
  ".input-b": {
2339
- "@nest": {
2087
+ nest: {
2340
2088
  "& .input-presentation": {
2341
- boxShadow: `inset 0 0 0 1px ${vars.color.input.border}`
2089
+ boxShadow: `inset 0 0 0 1px ${vars.color.input.text.border}`
2342
2090
  }
2343
2091
  }
2344
2092
  },
2345
2093
  ".input-element": {
2346
- "--color-input-fg": vars.color.tinted.default.fg[2],
2347
- "--color-input-placeholder": vars.color.tinted.default.border[4],
2348
2094
  WebkitFontSmoothing: "inherit",
2349
2095
  appearance: "none",
2350
2096
  border: 0,
@@ -2355,8 +2101,8 @@ const skeletonStyle = {
2355
2101
  lineHeight: vars.input.lineHeight,
2356
2102
  letterSpacing: vars.input.letterSpacing,
2357
2103
  backgroundColor: "transparent",
2358
- color: vars.color.input.fg,
2359
- padding: ["calc(var(--input-padding) - var(--input-ascender-height))", "var(--input-padding)", "calc(var(--input-padding) - var(--input-descender-height))", "var(--input-padding)"].join(" "),
2104
+ color: vars.color.input.text.fg,
2105
+ padding: [`calc(${vars.input.padding} - ${vars.input.ascenderHeight})`, vars.input.padding, `calc(${vars.input.padding} - ${vars.input.descenderHeight})`, vars.input.padding].join(" "),
2360
2106
  borderRadius: "inherit",
2361
2107
  position: "relative",
2362
2108
  zIndex: 1,
@@ -2365,31 +2111,56 @@ const skeletonStyle = {
2365
2111
  resize: "none",
2366
2112
  // @ts-expect-error - TODO: fix this
2367
2113
  width: ["-moz-available", "-webkit-fill-available", "stretch"],
2368
- "@nest": {
2114
+ nest: {
2369
2115
  ".input[data-icon-left] &": {
2370
- paddingLeft: "calc(var(--input-padding) + calc(var(--input-line-height) - var(--input-ascender-height) - var(--input-descender-height)) + var(--input-gap))"
2116
+ paddingLeft: `calc(${vars.input.padding} + calc(${vars.input.lineHeight} - ${vars.input.ascenderHeight} - ${vars.input.descenderHeight}) + ${vars.input.gap})`
2371
2117
  },
2372
2118
  ".input[data-icon-right] &": {
2373
- paddingRight: "calc(var(--input-padding) + calc(var(--input-line-height) - var(--input-ascender-height) - var(--input-descender-height)) + var(--input-gap))"
2119
+ paddingRight: `calc(${vars.input.padding} + calc(${vars.input.lineHeight} - ${vars.input.ascenderHeight} - ${vars.input.descenderHeight}) + ${vars.input.gap})`
2120
+ },
2121
+ ".input:not([data-invalid]) &": {
2122
+ vars: {
2123
+ [varNames.color.input.text.fg]: vars.color.tinted.default.fg[2],
2124
+ [varNames.color.input.text.placeholder]: vars.color.tinted.default.border[4]
2125
+ }
2374
2126
  },
2375
- "&::placeholder": {
2376
- color: vars.color.input.placeholder
2127
+ ".input:not([data-invalid]) &::placeholder": {
2128
+ color: vars.color.input.text.placeholder
2377
2129
  },
2378
- "&:hover": {
2379
- [varNames.color.input.fg]: vars.color.tinted.default.fg[0]
2130
+ ".input:not([data-invalid]) &:hover": {
2131
+ [varNames.color.input.text.fg]: vars.color.tinted.default.fg[0]
2380
2132
  },
2381
- "&:focus": {
2382
- [varNames.color.input.fg]: vars.color.tinted.default.fg[0]
2133
+ ".input:not([data-invalid]) &:focus": {
2134
+ [varNames.color.input.text.fg]: vars.color.tinted.default.fg[0]
2135
+ },
2136
+ ".input:not([data-invalid]) &:disabled": {
2137
+ vars: {
2138
+ [varNames.color.input.text.fg]: vars.color.tinted.default.border[4],
2139
+ [varNames.color.input.text.placeholder]: vars.color.tinted.default.border[1]
2140
+ }
2141
+ },
2142
+ ".input[data-invalid] &": {
2143
+ vars: {
2144
+ [varNames.color.input.text.fg]: vars.color.tinted.critical.fg[2],
2145
+ [varNames.color.input.text.placeholder]: vars.color.tinted.critical.border[4]
2146
+ }
2383
2147
  },
2384
- "&:disabled": {
2385
- [varNames.color.input.fg]: vars.color.tinted.default.border[3]
2148
+ ".input[data-invalid] &::placeholder": {
2149
+ color: vars.color.input.text.placeholder
2150
+ },
2151
+ ".input[data-invalid] &:hover": {
2152
+ [varNames.color.input.text.fg]: vars.color.tinted.critical.fg[1]
2153
+ },
2154
+ ".input[data-invalid] &:focus": {
2155
+ [varNames.color.input.text.fg]: vars.color.tinted.critical.fg[1]
2156
+ },
2157
+ ".input[data-invalid] &:disabled": {
2158
+ [varNames.color.input.text.fg]: vars.color.tinted.critical.border[3]
2386
2159
  }
2387
2160
  }
2388
2161
  },
2389
2162
  ".input-presentation": {
2390
- [varNames.color.input.fg]: vars.color.tinted.default.fg[4],
2391
- [varNames.color.input.bg]: vars.color.tinted.default.bg[0],
2392
- [varNames.color.input.border]: vars.color.tinted.default.border[1],
2163
+ backgroundColor: vars.color.input.text.bg,
2393
2164
  borderRadius: "inherit",
2394
2165
  position: "absolute",
2395
2166
  top: 0,
@@ -2399,7 +2170,7 @@ const skeletonStyle = {
2399
2170
  display: "block",
2400
2171
  pointerEvents: "none",
2401
2172
  zIndex: 0,
2402
- "@nest": {
2173
+ nest: {
2403
2174
  ".input[data-prefix] &": {
2404
2175
  borderTopLeftRadius: 0,
2405
2176
  borderBottomLeftRadius: 0
@@ -2408,27 +2179,87 @@ const skeletonStyle = {
2408
2179
  borderTopRightRadius: 0,
2409
2180
  borderBottomRightRadius: 0
2410
2181
  },
2411
- ".input-element:placeholder-shown + &": {
2412
- [varNames.color.input.fg]: vars.color.tinted.default.border[4]
2413
- },
2414
- ".input-element:hover + &": {
2415
- [varNames.color.input.border]: vars.color.tinted.default.border[2],
2416
- [varNames.color.input.fg]: vars.color.tinted.default.fg[1],
2417
- boxShadow: `inset 0 0 0 1px ${vars.color.input.border}`
2418
- },
2419
2182
  ".input-element:focus + &": {
2420
- [varNames.color.input.border]: vars.color.tinted.default.border[2],
2421
- [varNames.color.input.fg]: vars.color.tinted.default.fg[1],
2422
- boxShadow: `inset 0 0 0 1px ${vars.color.input.border}`,
2183
+ boxShadow: `inset 0 0 0 1px ${vars.color.input.text.border}`,
2423
2184
  outlineWidth: vars.input.text.focusRing.width,
2424
2185
  outlineStyle: "solid",
2425
2186
  outlineColor: vars.color.focusRing,
2426
2187
  outlineOffset: vars.input.text.focusRing.offset
2427
2188
  },
2428
2189
  ".input-element:disabled + &": {
2429
- [varNames.color.input.bg]: vars.color.tinted.default.bg[1],
2430
- [varNames.color.input.border]: vars.color.tinted.default.border[0],
2431
2190
  opacity: 1
2191
+ },
2192
+ // valid
2193
+ ".input:not([data-invalid]) &": {
2194
+ vars: {
2195
+ [varNames.color.input.text.fg]: vars.color.tinted.default.fg[4],
2196
+ [varNames.color.input.text.bg]: vars.color.tinted.default.bg[0],
2197
+ [varNames.color.input.text.border]: vars.color.tinted.default.border[1]
2198
+ }
2199
+ },
2200
+ ".input:not([data-invalid])[data-read-only] .input-element + &": {
2201
+ vars: {
2202
+ [varNames.color.input.text.bg]: vars.color.tinted.default.bg[1]
2203
+ }
2204
+ },
2205
+ ".input:not([data-invalid]) .input-element:placeholder-shown + &": {
2206
+ vars: {
2207
+ [varNames.color.input.text.fg]: vars.color.tinted.default.border[4]
2208
+ }
2209
+ },
2210
+ ".input:not([data-invalid]):not([data-read-only]) .input-element:not(:disabled):hover + &": {
2211
+ vars: {
2212
+ [varNames.color.input.text.border]: vars.color.tinted.default.border[2],
2213
+ [varNames.color.input.text.fg]: vars.color.tinted.default.fg[1]
2214
+ },
2215
+ boxShadow: `inset 0 0 0 1px ${vars.color.input.text.border}`
2216
+ },
2217
+ ".input:not([data-invalid]) .input-element:focus + &": {
2218
+ vars: {
2219
+ [varNames.color.input.text.border]: vars.color.tinted.default.border[2],
2220
+ [varNames.color.input.text.fg]: vars.color.tinted.default.fg[1]
2221
+ },
2222
+ boxShadow: `inset 0 0 0 1px ${vars.color.input.text.border}`
2223
+ },
2224
+ ".input:not([data-invalid]) .input-element:disabled + &": {
2225
+ vars: {
2226
+ [varNames.color.input.text.bg]: vars.color.tinted.default.bg[1],
2227
+ [varNames.color.input.text.border]: vars.color.tinted.default.border[0],
2228
+ // icon
2229
+ [varNames.color.muted.fg]: vars.color.tinted.default.border[4]
2230
+ }
2231
+ },
2232
+ // invalid
2233
+ ".input[data-invalid] &": {
2234
+ vars: {
2235
+ [varNames.color.input.text.fg]: vars.color.tinted.critical.fg[4],
2236
+ [varNames.color.input.text.bg]: vars.color.tinted.critical.bg[1],
2237
+ [varNames.color.input.text.border]: vars.color.tinted.critical.border[1],
2238
+ [varNames.color.focusRing]: vars.color.solid.critical.bg[0]
2239
+ }
2240
+ },
2241
+ ".input[data-invalid] .input-element:placeholder-shown + &": {
2242
+ vars: {
2243
+ [varNames.color.input.text.fg]: vars.color.tinted.critical.border[4]
2244
+ }
2245
+ },
2246
+ ".input[data-invalid] .input-element:not(:disabled):hover + &": {
2247
+ vars: {
2248
+ [varNames.color.input.text.border]: vars.color.tinted.critical.border[2],
2249
+ [varNames.color.input.text.fg]: vars.color.tinted.critical.fg[1]
2250
+ }
2251
+ },
2252
+ ".input[data-invalid] .input-element:focus + &": {
2253
+ vars: {
2254
+ [varNames.color.input.text.border]: vars.color.tinted.critical.border[2],
2255
+ [varNames.color.input.text.fg]: vars.color.tinted.critical.fg[1]
2256
+ }
2257
+ },
2258
+ ".input[data-invalid] .input-element:disabled + &": {
2259
+ vars: {
2260
+ [varNames.color.input.text.bg]: vars.color.tinted.critical.bg[1],
2261
+ [varNames.color.input.text.border]: vars.color.tinted.critical.border[0]
2262
+ }
2432
2263
  }
2433
2264
  }
2434
2265
  }
@@ -2462,7 +2293,7 @@ const _inputStyle = {
2462
2293
  [varNames.color.bg]: vars.color.tinted.bg[0],
2463
2294
  [varNames.color.border]: vars.color.tinted.border[2],
2464
2295
  [varNames.color.fg]: vars.color.tinted.fg[2],
2465
- "@nest": {
2296
+ nest: {
2466
2297
  "&:is(button)": {
2467
2298
  WebkitFontSmoothing: "inherit",
2468
2299
  appearance: "none",
@@ -2482,9 +2313,9 @@ const _inputStyle = {
2482
2313
  },
2483
2314
  "@media": {
2484
2315
  "(hover: hover)": {
2485
- "@nest": {
2316
+ nest: {
2486
2317
  "&:not([data-disabled])": {
2487
- // cursor: 'pointer',
2318
+ cursor: "pointer"
2488
2319
  },
2489
2320
  "&:not([data-disabled]):hover": {
2490
2321
  [varNames.color.bg]: vars.color.tinted.bg[1],
@@ -2574,7 +2405,7 @@ const primitive$m = {
2574
2405
  width: vars.avatar.size,
2575
2406
  height: vars.avatar.size,
2576
2407
  borderRadius: vars.avatar.size,
2577
- "@nest": {
2408
+ nest: {
2578
2409
  "button&": {
2579
2410
  WebkitFontSmoothing: "inherit",
2580
2411
  appearance: "none",
@@ -2586,8 +2417,8 @@ const primitive$m = {
2586
2417
  outline: "none"
2587
2418
  },
2588
2419
  "button&:focus": {
2589
- outline: "var(--avatar-focus-ring-width) solid var(--color-focus-ring)",
2590
- outlineOffset: "var(--avatar-focus-ring-offset)"
2420
+ outline: `${vars.avatar.focusRing.width} solid ${vars.color.focusRing}`,
2421
+ outlineOffset: vars.avatar.focusRing.offset
2591
2422
  },
2592
2423
  "button&:focus:not(:focus-visible)": {
2593
2424
  boxShadow: "none"
@@ -2596,11 +2427,11 @@ const primitive$m = {
2596
2427
  [varNames.color.avatar.bg]: vars.color.border,
2597
2428
  [varNames.color.avatar.fg]: vars.color.bg
2598
2429
  },
2599
- ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color2) => ({
2430
+ ...AVATAR_COLORS.reduce((acc, color) => ({
2600
2431
  ...acc,
2601
- [`&.${color2}`]: {
2602
- [varNames.color.avatar.bg]: vars.color.avatar[color2].bg,
2603
- [varNames.color.avatar.fg]: vars.color.avatar[color2].fg
2432
+ [`&.${color}`]: {
2433
+ [varNames.color.avatar.bg]: vars.color.avatar[color].bg,
2434
+ [varNames.color.avatar.fg]: vars.color.avatar[color].fg
2604
2435
  }
2605
2436
  }), {})
2606
2437
  }
@@ -2616,7 +2447,7 @@ const primitive$m = {
2616
2447
  right: 0,
2617
2448
  top: 0,
2618
2449
  bottom: 0,
2619
- "@nest": {
2450
+ nest: {
2620
2451
  "& > svg": {
2621
2452
  display: "block",
2622
2453
  width: "11px",
@@ -2641,7 +2472,7 @@ const primitive$m = {
2641
2472
  }
2642
2473
  },
2643
2474
  ".avatar-image": {
2644
- "@nest": {
2475
+ nest: {
2645
2476
  "& > img": {
2646
2477
  display: "block",
2647
2478
  position: "absolute",
@@ -2673,7 +2504,7 @@ const primitive$m = {
2673
2504
  userSelect: "none",
2674
2505
  borderRadius: vars.avatar.size,
2675
2506
  height: vars.avatar.size,
2676
- "@nest": {
2507
+ nest: {
2677
2508
  "&&": {
2678
2509
  minWidth: vars.avatar.size
2679
2510
  },
@@ -2683,7 +2514,7 @@ const primitive$m = {
2683
2514
  }
2684
2515
  },
2685
2516
  ".avatar-stack": {
2686
- "@nest": {
2517
+ nest: {
2687
2518
  "& > div + div": {
2688
2519
  marginLeft: vars.avatar.distance
2689
2520
  }
@@ -2717,9 +2548,9 @@ const badgeStyle = {
2717
2548
  }
2718
2549
  }, primitive$k = {
2719
2550
  ".box": {
2720
- // todo: move to aspects
2551
+ // TODO: move to aspects
2721
2552
  minHeight: 0,
2722
- "@nest": {
2553
+ nest: {
2723
2554
  "iframe&": {
2724
2555
  border: "none"
2725
2556
  },
@@ -2730,13 +2561,6 @@ const badgeStyle = {
2730
2561
  backgroundColor: vars.color.muted.bg
2731
2562
  }
2732
2563
  }
2733
- },
2734
- // sizing
2735
- ".box-content": {
2736
- boxSizing: "content-box"
2737
- },
2738
- ".box-border": {
2739
- boxSizing: "border-box"
2740
2564
  }
2741
2565
  }, boxStyle = {
2742
2566
  layers: {
@@ -2760,17 +2584,16 @@ const badgeStyle = {
2760
2584
  verticalAlign: "top",
2761
2585
  backgroundColor: vars.color.bg,
2762
2586
  color: vars.color.fg,
2763
- boxShadow: "var(--button-box-shadow)",
2587
+ boxShadow: vars.button.boxShadow,
2764
2588
  alignItems: "center",
2765
- // 'justifyContent': 'center',
2766
- "@nest": {
2589
+ nest: {
2767
2590
  "&::-moz-focus-inner": {
2768
2591
  border: 0,
2769
2592
  padding: 0
2770
2593
  },
2771
2594
  "&:focus": {
2772
- outline: "var(--button-focus-ring-width) solid var(--color-focus-ring)",
2773
- outlineOffset: "var(--button-focus-ring-offset)"
2595
+ outline: `${vars.button.focusRing.width} solid ${vars.color.focusRing}`,
2596
+ outlineOffset: vars.button.focusRing.offset
2774
2597
  },
2775
2598
  "&:focus:not(:focus-visible)": {
2776
2599
  outline: "none"
@@ -2792,166 +2615,193 @@ const badgeStyle = {
2792
2615
  for (const tone of THEME_COLOR_STATE_TONES) {
2793
2616
  const solid = vars.color.solid[tone], tinted = vars.color.tinted[tone];
2794
2617
  primitive$j[`.button[data-mode="default"][data-tone="${tone}"]`] = {
2795
- [varNames.color.bg]: solid.bg[0],
2796
- [varNames.color.border]: solid.border[1],
2797
- [varNames.color.code.bg]: solid.bg[1],
2798
- [varNames.color.code.fg]: solid.fg[4],
2799
- [varNames.color.fg]: solid.fg[0],
2800
- [varNames.color.muted.bg]: solid.bg[1],
2801
- [varNames.color.muted.fg]: solid.fg[4],
2802
- "--button-box-shadow": "none",
2803
- "@nest": {
2618
+ vars: {
2619
+ [varNames.color.bg]: solid.bg[0],
2620
+ [varNames.color.border]: solid.border[1],
2621
+ [varNames.color.code.bg]: solid.bg[1],
2622
+ [varNames.color.code.fg]: solid.fg[4],
2623
+ [varNames.color.fg]: solid.fg[0],
2624
+ [varNames.color.muted.bg]: solid.bg[1],
2625
+ [varNames.color.muted.fg]: solid.fg[4],
2626
+ [varNames.button.boxShadow]: "none"
2627
+ },
2628
+ nest: {
2804
2629
  "&:not([data-disabled]):hover": {
2805
- [varNames.color.bg]: solid.bg[1],
2806
- [varNames.color.border]: solid.border[2],
2807
- [varNames.color.code.bg]: solid.bg[2],
2808
- [varNames.color.code.fg]: solid.fg[4],
2809
- [varNames.color.fg]: solid.fg[0],
2810
- [varNames.color.muted.bg]: solid.bg[2],
2811
- [varNames.color.muted.fg]: solid.fg[4]
2630
+ vars: {
2631
+ [varNames.color.bg]: solid.bg[1],
2632
+ [varNames.color.border]: solid.border[2],
2633
+ [varNames.color.code.bg]: solid.bg[2],
2634
+ [varNames.color.code.fg]: solid.fg[4],
2635
+ [varNames.color.fg]: solid.fg[0],
2636
+ [varNames.color.muted.bg]: solid.bg[2],
2637
+ [varNames.color.muted.fg]: solid.fg[4]
2638
+ }
2812
2639
  },
2813
2640
  "&:not([data-disabled]):active": {
2814
- [varNames.color.bg]: solid.bg[2],
2815
- [varNames.color.border]: solid.border[3],
2816
- [varNames.color.code.bg]: solid.bg[3],
2817
- [varNames.color.code.fg]: solid.fg[4],
2818
- [varNames.color.fg]: solid.fg[0],
2819
- [varNames.color.muted.bg]: solid.bg[3],
2820
- [varNames.color.muted.fg]: solid.fg[4]
2641
+ vars: {
2642
+ [varNames.color.bg]: solid.bg[2],
2643
+ [varNames.color.border]: solid.border[3],
2644
+ [varNames.color.code.bg]: solid.bg[3],
2645
+ [varNames.color.code.fg]: solid.fg[4],
2646
+ [varNames.color.fg]: solid.fg[0],
2647
+ [varNames.color.muted.bg]: solid.bg[3],
2648
+ [varNames.color.muted.fg]: solid.fg[4]
2649
+ }
2821
2650
  },
2822
2651
  "&:not([data-disabled])[data-selected]": {
2823
- [varNames.color.bg]: solid.bg[2],
2824
- [varNames.color.border]: solid.border[3],
2825
- [varNames.color.code.bg]: solid.bg[3],
2826
- [varNames.color.code.fg]: solid.fg[4],
2827
- [varNames.color.fg]: solid.fg[0],
2828
- [varNames.color.muted.bg]: solid.bg[3],
2829
- [varNames.color.muted.fg]: solid.fg[4]
2652
+ vars: {
2653
+ [varNames.color.bg]: solid.bg[2],
2654
+ [varNames.color.border]: solid.border[3],
2655
+ [varNames.color.code.bg]: solid.bg[3],
2656
+ [varNames.color.code.fg]: solid.fg[4],
2657
+ [varNames.color.fg]: solid.fg[0],
2658
+ [varNames.color.muted.bg]: solid.bg[3],
2659
+ [varNames.color.muted.fg]: solid.fg[4]
2660
+ }
2830
2661
  },
2831
2662
  "&[data-disabled]": {
2832
- [varNames.color.avatar.gray.bg]: vars.color.tinted.default.bg[3],
2833
- [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[3],
2834
- [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[3],
2835
- [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[3],
2836
- [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[3],
2837
- [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[3],
2838
- [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[3],
2839
- [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[3],
2840
- [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[3],
2841
- [varNames.color.bg]: vars.color.tinted.default.bg[1],
2842
- [varNames.color.border]: vars.color.tinted.default.border[1],
2843
- [varNames.color.code.bg]: vars.color.tinted.default.bg[2],
2844
- [varNames.color.code.fg]: vars.color.tinted.default.border[4],
2845
- [varNames.color.fg]: vars.color.tinted.default.border[4],
2846
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[2],
2847
- [varNames.color.muted.fg]: vars.color.tinted.default.border[4]
2663
+ vars: {
2664
+ [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[3],
2665
+ [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[3],
2666
+ [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[3],
2667
+ [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[3],
2668
+ [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[3],
2669
+ [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[3],
2670
+ [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[3],
2671
+ [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[3],
2672
+ [varNames.color.bg]: vars.color.tinted.default.bg[1],
2673
+ [varNames.color.border]: vars.color.tinted.default.border[1],
2674
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[2],
2675
+ [varNames.color.code.fg]: vars.color.tinted.default.border[4],
2676
+ [varNames.color.fg]: vars.color.tinted.default.border[4],
2677
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[2],
2678
+ [varNames.color.muted.fg]: vars.color.tinted.default.border[4]
2679
+ }
2848
2680
  }
2849
2681
  }
2850
2682
  }, primitive$j[`.button[data-mode="ghost"][data-tone="${tone}"]`] = {
2851
- [varNames.color.bg]: tinted.bg[1],
2852
- [varNames.color.border]: tinted.border[1],
2853
- [varNames.color.fg]: tinted.fg[2],
2854
- [varNames.color.code.bg]: tinted.bg[2],
2855
- [varNames.color.code.fg]: tinted.fg[4],
2856
- [varNames.color.muted.bg]: tinted.bg[2],
2857
- [varNames.color.muted.fg]: tinted.fg[4],
2858
- "--button-box-shadow": "inset 0 0 0 var(--button-border-width) var(--color-border)",
2859
- "@nest": {
2683
+ vars: {
2684
+ [varNames.color.bg]: tinted.bg[1],
2685
+ [varNames.color.border]: tinted.border[1],
2686
+ [varNames.color.fg]: tinted.fg[2],
2687
+ [varNames.color.code.bg]: tinted.bg[2],
2688
+ [varNames.color.code.fg]: tinted.fg[4],
2689
+ [varNames.color.muted.bg]: tinted.bg[2],
2690
+ [varNames.color.muted.fg]: tinted.fg[4],
2691
+ [varNames.button.boxShadow]: `inset 0 0 0 ${vars.button.border.width} ${vars.color.border}`
2692
+ },
2693
+ nest: {
2860
2694
  "&:not([data-disabled]):hover": {
2861
- [varNames.color.bg]: tinted.bg[2],
2862
- [varNames.color.border]: tinted.border[2],
2863
- [varNames.color.code.bg]: tinted.bg[3],
2864
- [varNames.color.code.fg]: tinted.fg[3],
2865
- [varNames.color.fg]: tinted.fg[1],
2866
- [varNames.color.muted.bg]: tinted.bg[3],
2867
- [varNames.color.muted.fg]: tinted.fg[3]
2695
+ vars: {
2696
+ [varNames.color.bg]: tinted.bg[2],
2697
+ [varNames.color.border]: tinted.border[2],
2698
+ [varNames.color.code.bg]: tinted.bg[3],
2699
+ [varNames.color.code.fg]: tinted.fg[3],
2700
+ [varNames.color.fg]: tinted.fg[1],
2701
+ [varNames.color.muted.bg]: tinted.bg[3],
2702
+ [varNames.color.muted.fg]: tinted.fg[3]
2703
+ }
2868
2704
  },
2869
2705
  "&:not([data-disabled]):active": {
2870
- [varNames.color.bg]: tinted.bg[3],
2871
- [varNames.color.border]: tinted.border[3],
2872
- [varNames.color.code.bg]: tinted.bg[4],
2873
- [varNames.color.code.fg]: tinted.fg[3],
2874
- [varNames.color.fg]: tinted.fg[1],
2875
- [varNames.color.muted.bg]: tinted.bg[4],
2876
- [varNames.color.muted.fg]: tinted.fg[3],
2877
- "--button-box-shadow": "inset 0 0 0 var(--button-border-width) var(--color-border)"
2706
+ vars: {
2707
+ [varNames.color.bg]: tinted.bg[3],
2708
+ [varNames.color.border]: tinted.border[3],
2709
+ [varNames.color.code.bg]: tinted.bg[4],
2710
+ [varNames.color.code.fg]: tinted.fg[3],
2711
+ [varNames.color.fg]: tinted.fg[1],
2712
+ [varNames.color.muted.bg]: tinted.bg[4],
2713
+ [varNames.color.muted.fg]: tinted.fg[3],
2714
+ [varNames.button.boxShadow]: `inset 0 0 0 ${vars.button.border.width} ${vars.color.border}`
2715
+ }
2878
2716
  },
2879
2717
  "&:not([data-disabled])[data-selected]": {
2880
- [varNames.color.bg]: tinted.bg[3],
2881
- [varNames.color.border]: tinted.border[3],
2882
- [varNames.color.code.bg]: tinted.bg[4],
2883
- [varNames.color.code.fg]: tinted.fg[3],
2884
- [varNames.color.fg]: tinted.fg[1],
2885
- [varNames.color.muted.bg]: tinted.bg[4],
2886
- [varNames.color.muted.fg]: tinted.fg[3],
2887
- "--button-box-shadow": "inset 0 0 0 var(--button-border-width) var(--color-border)"
2718
+ vars: {
2719
+ [varNames.color.bg]: tinted.bg[3],
2720
+ [varNames.color.border]: tinted.border[3],
2721
+ [varNames.color.code.bg]: tinted.bg[4],
2722
+ [varNames.color.code.fg]: tinted.fg[3],
2723
+ [varNames.color.fg]: tinted.fg[1],
2724
+ [varNames.color.muted.bg]: tinted.bg[4],
2725
+ [varNames.color.muted.fg]: tinted.fg[3],
2726
+ [varNames.button.boxShadow]: `inset 0 0 0 ${vars.button.border.width} ${vars.color.border}`
2727
+ }
2888
2728
  },
2889
2729
  "&[data-disabled]": {
2890
- [varNames.color.avatar.gray.bg]: vars.color.tinted.default.bg[2],
2891
- [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[2],
2892
- [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[2],
2893
- [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[2],
2894
- [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[2],
2895
- [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[2],
2896
- [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[2],
2897
- [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[2],
2898
- [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[2],
2899
- [varNames.color.bg]: vars.color.tinted.default.bg[0],
2900
- [varNames.color.border]: vars.color.tinted.default.border[0],
2901
- [varNames.color.code.bg]: vars.color.tinted.default.bg[1],
2902
- [varNames.color.code.fg]: vars.color.tinted.default.border[3],
2903
- [varNames.color.fg]: vars.color.tinted.default.border[4],
2904
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
2905
- [varNames.color.muted.fg]: vars.color.tinted.default.border[3]
2730
+ vars: {
2731
+ [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[2],
2732
+ [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[2],
2733
+ [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[2],
2734
+ [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[2],
2735
+ [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[2],
2736
+ [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[2],
2737
+ [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[2],
2738
+ [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[2],
2739
+ [varNames.color.bg]: vars.color.tinted.default.bg[0],
2740
+ [varNames.color.border]: vars.color.tinted.default.border[0],
2741
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[1],
2742
+ [varNames.color.code.fg]: vars.color.tinted.default.border[3],
2743
+ [varNames.color.fg]: vars.color.tinted.default.border[4],
2744
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
2745
+ [varNames.color.muted.fg]: vars.color.tinted.default.border[3]
2746
+ }
2906
2747
  }
2907
2748
  }
2908
2749
  }, primitive$j[`.button[data-mode="bleed"][data-tone="${tone}"]`] = {
2909
2750
  boxShadow: "none",
2910
- [varNames.color.bg]: tinted.bg[0],
2911
- [varNames.color.border]: tinted.border[1],
2912
- [varNames.color.fg]: tinted.fg[2],
2913
- [varNames.color.muted.bg]: tinted.bg[1],
2914
- [varNames.color.muted.fg]: tinted.fg[4],
2915
- "--button-box-shadow": "none",
2916
- "@nest": {
2751
+ vars: {
2752
+ [varNames.color.bg]: tinted.bg[0],
2753
+ [varNames.color.border]: tinted.border[1],
2754
+ [varNames.color.fg]: tinted.fg[2],
2755
+ [varNames.color.muted.bg]: tinted.bg[1],
2756
+ [varNames.color.muted.fg]: tinted.fg[4],
2757
+ [varNames.button.boxShadow]: "none"
2758
+ },
2759
+ nest: {
2917
2760
  "&:not([data-disabled]):hover": {
2918
- [varNames.color.bg]: tinted.bg[1],
2919
- [varNames.color.border]: tinted.border[2],
2920
- [varNames.color.fg]: tinted.fg[1],
2921
- [varNames.color.muted.bg]: tinted.bg[2],
2922
- [varNames.color.muted.fg]: tinted.fg[3]
2761
+ vars: {
2762
+ [varNames.color.bg]: tinted.bg[1],
2763
+ [varNames.color.border]: tinted.border[2],
2764
+ [varNames.color.fg]: tinted.fg[1],
2765
+ [varNames.color.muted.bg]: tinted.bg[2],
2766
+ [varNames.color.muted.fg]: tinted.fg[3]
2767
+ }
2923
2768
  },
2924
2769
  "&:not([data-disabled]):active": {
2925
- [varNames.color.bg]: tinted.bg[2],
2926
- [varNames.color.border]: tinted.border[3],
2927
- [varNames.color.fg]: tinted.fg[1],
2928
- [varNames.color.muted.bg]: tinted.bg[3],
2929
- [varNames.color.muted.fg]: tinted.fg[3]
2770
+ vars: {
2771
+ [varNames.color.bg]: tinted.bg[2],
2772
+ [varNames.color.border]: tinted.border[3],
2773
+ [varNames.color.fg]: tinted.fg[1],
2774
+ [varNames.color.muted.bg]: tinted.bg[3],
2775
+ [varNames.color.muted.fg]: tinted.fg[3]
2776
+ }
2930
2777
  },
2931
2778
  "&:not([data-disabled])[data-selected]": {
2932
- [varNames.color.bg]: tinted.bg[2],
2933
- [varNames.color.border]: tinted.border[3],
2934
- [varNames.color.fg]: tinted.fg[1],
2935
- [varNames.color.muted.bg]: tinted.bg[3],
2936
- [varNames.color.muted.fg]: tinted.fg[3]
2779
+ vars: {
2780
+ [varNames.color.bg]: tinted.bg[2],
2781
+ [varNames.color.border]: tinted.border[3],
2782
+ [varNames.color.fg]: tinted.fg[1],
2783
+ [varNames.color.muted.bg]: tinted.bg[3],
2784
+ [varNames.color.muted.fg]: tinted.fg[3]
2785
+ }
2937
2786
  },
2938
2787
  "&[data-disabled]": {
2939
- [varNames.color.avatar.gray.bg]: vars.color.tinted.default.bg[2],
2940
- [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[2],
2941
- [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[2],
2942
- [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[2],
2943
- [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[2],
2944
- [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[2],
2945
- [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[2],
2946
- [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[2],
2947
- [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[2],
2948
- [varNames.color.bg]: vars.color.tinted.default.bg[0],
2949
- [varNames.color.border]: vars.color.tinted.default.border[0],
2950
- [varNames.color.code.bg]: vars.color.tinted.default.bg[1],
2951
- [varNames.color.code.fg]: vars.color.tinted.default.border[3],
2952
- [varNames.color.fg]: vars.color.tinted.default.border[4],
2953
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
2954
- [varNames.color.muted.fg]: vars.color.tinted.default.border[3]
2788
+ vars: {
2789
+ [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[2],
2790
+ [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[2],
2791
+ [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[2],
2792
+ [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[2],
2793
+ [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[2],
2794
+ [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[2],
2795
+ [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[2],
2796
+ [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[2],
2797
+ [varNames.color.bg]: vars.color.tinted.default.bg[0],
2798
+ [varNames.color.border]: vars.color.tinted.default.border[0],
2799
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[1],
2800
+ [varNames.color.code.fg]: vars.color.tinted.default.border[3],
2801
+ [varNames.color.fg]: vars.color.tinted.default.border[4],
2802
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
2803
+ [varNames.color.muted.fg]: vars.color.tinted.default.border[3]
2804
+ }
2955
2805
  }
2956
2806
  }
2957
2807
  };
@@ -2960,18 +2810,22 @@ const buttonStyle = {
2960
2810
  layers: {
2961
2811
  primitive: primitive$j
2962
2812
  }
2963
- }, primitive$i = {
2813
+ };
2814
+ function _assign(target, source) {
2815
+ return Object.assign(target, source);
2816
+ }
2817
+ const primitive$i = {
2964
2818
  ".card": {
2965
2819
  backgroundColor: vars.color.bg,
2966
2820
  color: vars.color.fg,
2967
- [varNames.color.bg]: vars.color.tinted.default.bg[0],
2968
- [varNames.color.border]: vars.color.tinted.default.border[1],
2969
- [varNames.color.code.bg]: vars.color.code.bg,
2970
- [varNames.color.code.fg]: vars.color.code.fg,
2971
- [varNames.color.fg]: vars.color.tinted.default.fg[0],
2972
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
2973
- [varNames.color.muted.fg]: vars.color.tinted.default.fg[4],
2974
- "@nest": {
2821
+ vars: {
2822
+ [varNames.color.bg]: vars.color.tinted.default.bg[0],
2823
+ [varNames.color.border]: vars.color.tinted.default.border[1],
2824
+ [varNames.color.fg]: vars.color.tinted.default.fg[0],
2825
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
2826
+ [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2827
+ },
2828
+ nest: {
2975
2829
  "button&": {
2976
2830
  WebkitFontSmoothing: "inherit",
2977
2831
  appearance: "none",
@@ -2997,64 +2851,91 @@ const buttonStyle = {
2997
2851
  backgroundImage: `repeating-conic-gradient(${vars.color.bg} 0% 25%, ${vars.color.muted.bg} 0% 50%)`
2998
2852
  },
2999
2853
  "a&:not([data-disabled]):hover, button&:not([data-disabled]):hover": {
3000
- [varNames.color.bg]: vars.color.tinted.default.bg[1],
3001
- [varNames.color.border]: vars.color.tinted.default.border[3],
3002
- [varNames.color.fg]: vars.color.tinted.default.fg[1],
3003
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[2],
3004
- [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2854
+ vars: {
2855
+ [varNames.color.bg]: vars.color.tinted.default.bg[1],
2856
+ [varNames.color.border]: vars.color.tinted.default.border[3],
2857
+ [varNames.color.fg]: vars.color.tinted.default.fg[1],
2858
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[2],
2859
+ [varNames.color.code.fg]: vars.color.tinted.default.fg[4],
2860
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[2],
2861
+ [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2862
+ }
3005
2863
  },
3006
2864
  "a&:not([data-disabled]):active, button&:not([data-disabled]):active": {
3007
- [varNames.color.bg]: vars.color.tinted.default.bg[2],
3008
- [varNames.color.border]: vars.color.tinted.default.border[4],
3009
- [varNames.color.fg]: vars.color.tinted.default.fg[0],
3010
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[3],
3011
- [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2865
+ vars: {
2866
+ [varNames.color.bg]: vars.color.tinted.default.bg[2],
2867
+ [varNames.color.border]: vars.color.tinted.default.border[4],
2868
+ [varNames.color.fg]: vars.color.tinted.default.fg[0],
2869
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[3],
2870
+ [varNames.color.code.fg]: vars.color.tinted.default.fg[4],
2871
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[3],
2872
+ [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2873
+ }
3012
2874
  },
3013
2875
  // toggle button
3014
2876
  'a&:not([data-disabled])[aria-pressed="true"], button&:not([data-disabled])[aria-pressed="true"]': {
3015
- [varNames.color.bg]: vars.color.tinted.default.bg[2],
3016
- [varNames.color.border]: vars.color.tinted.default.border[4],
3017
- [varNames.color.fg]: vars.color.tinted.default.fg[0],
3018
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[3],
3019
- [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2877
+ vars: {
2878
+ [varNames.color.bg]: vars.color.tinted.default.bg[2],
2879
+ [varNames.color.border]: vars.color.tinted.default.border[4],
2880
+ [varNames.color.fg]: vars.color.tinted.default.fg[0],
2881
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[3],
2882
+ [varNames.color.code.fg]: vars.color.tinted.default.fg[4],
2883
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[3],
2884
+ [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2885
+ }
3020
2886
  },
3021
2887
  "a&:not([data-disabled])[data-pressed], button&:not([data-disabled])[data-pressed]": {
3022
- [varNames.color.bg]: vars.color.tinted.default.bg[2],
3023
- [varNames.color.border]: vars.color.tinted.default.border[4],
3024
- [varNames.color.fg]: vars.color.tinted.default.fg[0],
3025
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[3],
3026
- [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2888
+ vars: {
2889
+ [varNames.color.bg]: vars.color.tinted.default.bg[2],
2890
+ [varNames.color.border]: vars.color.tinted.default.border[4],
2891
+ [varNames.color.fg]: vars.color.tinted.default.fg[0],
2892
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[3],
2893
+ [varNames.color.code.fg]: vars.color.tinted.default.fg[4],
2894
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[3],
2895
+ [varNames.color.muted.fg]: vars.color.tinted.default.fg[4]
2896
+ }
3027
2897
  },
3028
2898
  "a&:not([data-disabled])[data-selected], button&:not([data-disabled])[data-selected]": {
3029
- [varNames.color.bg]: vars.color.solid.primary.bg[0],
3030
- [varNames.color.border]: vars.color.solid.primary.border[1],
3031
- [varNames.color.fg]: vars.color.solid.primary.fg[0],
3032
- [varNames.color.muted.bg]: vars.color.solid.primary.bg[1],
3033
- [varNames.color.muted.fg]: vars.color.solid.primary.fg[3]
2899
+ vars: {
2900
+ [varNames.color.bg]: vars.color.solid.primary.bg[0],
2901
+ [varNames.color.border]: vars.color.solid.primary.border[1],
2902
+ [varNames.color.fg]: vars.color.solid.primary.fg[0],
2903
+ [varNames.color.code.bg]: vars.color.solid.primary.bg[1],
2904
+ [varNames.color.code.fg]: vars.color.solid.primary.fg[3],
2905
+ [varNames.color.muted.bg]: vars.color.solid.primary.bg[1],
2906
+ [varNames.color.muted.fg]: vars.color.solid.primary.fg[3]
2907
+ }
3034
2908
  },
3035
2909
  "a&[data-disabled], button&[data-disabled]": {
3036
- [varNames.color.bg]: vars.color.tinted.default.bg[0],
3037
- [varNames.color.border]: vars.color.tinted.default.border[1],
3038
- [varNames.color.fg]: vars.color.tinted.default.border[3],
3039
- [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
3040
- [varNames.color.muted.fg]: vars.color.tinted.default.border[1]
2910
+ vars: {
2911
+ [varNames.color.bg]: vars.color.tinted.default.bg[0],
2912
+ [varNames.color.border]: vars.color.tinted.default.border[1],
2913
+ [varNames.color.fg]: vars.color.tinted.default.border[3],
2914
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[0],
2915
+ [varNames.color.code.fg]: vars.color.tinted.default.border[2],
2916
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
2917
+ [varNames.color.muted.fg]: vars.color.tinted.default.border[2]
2918
+ }
3041
2919
  }
3042
2920
  }
3043
2921
  }
3044
2922
  };
3045
- for (const scheme of THEME_COLOR_SCHEMES$1) {
3046
- const schemeProps = {
3047
- colorScheme: scheme
2923
+ for (const scheme of THEME_COLOR_SCHEMES) {
2924
+ const customProps = {}, props = {
2925
+ colorScheme: scheme,
2926
+ vars: customProps
3048
2927
  };
3049
2928
  for (const tone of THEME_COLOR_CARD_TONES) {
3050
2929
  const _varNames = varNames.color[tone], _vars = vars.color[scheme][tone];
3051
- _assignToneProps(schemeProps, _varNames, _vars);
2930
+ _assignToneProps(customProps, _varNames, _vars);
3052
2931
  }
3053
- primitive$i[`.card.${scheme}`] = schemeProps;
2932
+ primitive$i[`.card.${scheme}`] = props;
3054
2933
  }
3055
2934
  for (const tone of THEME_COLOR_CARD_TONES) {
3056
- const _varNames = varNames.color, _vars = vars.color[tone], toneProps = {};
3057
- _assignToneProps(toneProps, _varNames, _vars), Object.assign(toneProps, {
2935
+ const _varNames = varNames.color, _vars = vars.color[tone], customProps = {}, props = {
2936
+ vars: customProps
2937
+ };
2938
+ _assignToneProps(customProps, _varNames, _vars), _assign(customProps, {
3058
2939
  "--card-bg-color": vars.color.bg,
3059
2940
  "--card-bg2-color": vars.color.muted.bg,
3060
2941
  "--card-border-color": vars.color.border,
@@ -3075,21 +2956,20 @@ for (const tone of THEME_COLOR_CARD_TONES) {
3075
2956
  "--card-shadow-outline-color": vars.color.shadow.outline,
3076
2957
  "--card-shadow-umbra-color": vars.color.shadow.umbra,
3077
2958
  "--card-shadow-penumbra-color": vars.color.shadow.penumbra,
3078
- "--card-shadow-ambient-color": vars.color.shadow.ambient
3079
- // todo
3080
- // '--card-skeleton-from-color': 'var(--color-skeleton-from)',
3081
- // '--card-skeleton-to-color': 'var(--color-skeleton-to)',
3082
- }), primitive$i[`.card.${tone}`] = toneProps;
2959
+ "--card-shadow-ambient-color": vars.color.shadow.ambient,
2960
+ "--card-skeleton-from-color": vars.color.skeleton.from,
2961
+ "--card-skeleton-to-color": vars.color.skeleton.to
2962
+ }), primitive$i[`.card.${tone}`] = props;
3083
2963
  }
3084
2964
  const cardStyle = {
3085
2965
  layers: {
3086
2966
  primitive: primitive$i
3087
2967
  }
3088
2968
  };
3089
- function _assignToneProps(toneProps, _varNames, _vars) {
3090
- for (const hue of THEME_COLOR_AVATAR_COLORS)
3091
- toneProps[`${_varNames.avatar[hue].bg}`] = _vars.avatar[hue].bg, toneProps[`${_varNames.avatar[hue].fg}`] = _vars.avatar[hue].fg;
3092
- Object.assign(toneProps, {
2969
+ function _assignToneProps(props, _varNames, _vars) {
2970
+ for (const hue of AVATAR_COLORS)
2971
+ props[_varNames.avatar[hue].bg] = _vars.avatar[hue].bg, props[_varNames.avatar[hue].fg] = _vars.avatar[hue].fg;
2972
+ _assign(props, {
3093
2973
  [_varNames.backdrop]: _vars.backdrop,
3094
2974
  [_varNames.code.fg]: _vars.code.fg,
3095
2975
  [_varNames.code.bg]: _vars.code.bg,
@@ -3136,10 +3016,10 @@ function _assignToneProps(toneProps, _varNames, _vars) {
3136
3016
  [_varNames.shadow.penumbra]: _vars.shadow.penumbra,
3137
3017
  [_varNames.shadow.ambient]: _vars.shadow.ambient
3138
3018
  });
3139
- for (const variant of ["solid", "tinted"])
3019
+ for (const variant of COLOR_VARIANTS)
3140
3020
  for (const elementTone of THEME_COLOR_STATE_TONES) {
3141
3021
  const __varNames = _varNames[variant][elementTone], __vars = _vars[variant][elementTone];
3142
- Object.assign(toneProps, {
3022
+ _assign(props, {
3143
3023
  [__varNames.bg[0]]: __vars.bg[0],
3144
3024
  [__varNames.bg[1]]: __vars.bg[1],
3145
3025
  [__varNames.bg[2]]: __vars.bg[2],
@@ -3161,7 +3041,11 @@ function _assignToneProps(toneProps, _varNames, _vars) {
3161
3041
  const primitive$h = {
3162
3042
  ".checkbox": {
3163
3043
  position: "relative",
3164
- display: "inline-block"
3044
+ nest: {
3045
+ "&:not([hidden])": {
3046
+ display: "block"
3047
+ }
3048
+ }
3165
3049
  },
3166
3050
  ".checkbox-input": {
3167
3051
  position: "absolute",
@@ -3174,28 +3058,23 @@ const primitive$h = {
3174
3058
  zIndex: 1,
3175
3059
  padding: 0,
3176
3060
  margin: 0,
3177
- "@nest": {
3061
+ nest: {
3178
3062
  "& + span": {
3179
3063
  position: "relative",
3180
3064
  display: "block",
3181
- width: "var(--input-checkbox-size)",
3182
- height: "var(--input-checkbox-size)",
3065
+ width: vars.input.checkbox.size,
3066
+ height: vars.input.checkbox.size,
3183
3067
  boxSizing: "border-box",
3184
- borderRadius: "var(--radius-2)",
3068
+ borderRadius: vars.radius[2],
3185
3069
  lineHeight: 1,
3186
- backgroundColor: "var(--color-checkbox-bg)",
3187
- boxShadow: "inset 0 0 0 1px var(--color-checkbox-border)",
3188
- color: "var(--color-checkbox-fg)",
3189
- // '--color-checkbox-bg': 'var(--color-input-default-enabled-bg)',
3190
- // '--color-checkbox-border': 'var(--color-input-default-enabled-border)',
3191
- // '--color-checkbox-fg': 'var(--color-input-default-enabled-fg)',
3192
- "--color-checkbox-bg": "var(--color-tinted-default-bg-0)",
3193
- "--color-checkbox-border": "var(--color-tinted-default-border-1)",
3194
- "--color-checkbox-fg": "var(--color-tinted-default-fg-0)"
3195
- // box-shadow: ${focusRingBorderStyle({
3196
- // color: color.input.default.enabled.border,
3197
- // width: input.border.width,
3198
- // })},
3070
+ backgroundColor: vars.color.input.checkbox.bg,
3071
+ boxShadow: `inset 0 0 0 1px ${vars.color.input.checkbox.border}`,
3072
+ color: vars.color.input.checkbox.fg,
3073
+ vars: {
3074
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.default.bg[0],
3075
+ [varNames.color.input.checkbox.border]: vars.color.tinted.default.border[2],
3076
+ [varNames.color.input.checkbox.fg]: vars.color.tinted.default.fg[0]
3077
+ }
3199
3078
  },
3200
3079
  "& + span > svg": {
3201
3080
  display: "block",
@@ -3208,81 +3087,106 @@ const primitive$h = {
3208
3087
  vectorEffect: "non-scaling-stroke",
3209
3088
  strokeWidth: "1.5px !important"
3210
3089
  },
3211
- "&:hover + span": {
3212
- "--color-checkbox-bg": "var(--color-tinted-default-bg-1)",
3213
- "--color-checkbox-border": "var(--color-tinted-default-border-2)",
3214
- "--color-checkbox-fg": "var(--color-tinted-default-fg-0)"
3215
- },
3216
- "&:checked + span": {
3217
- "--color-checkbox-bg": "var(--color-solid-default-bg-0)",
3218
- "--color-checkbox-border": "var(--color-solid-default-bg-0)",
3219
- "--color-checkbox-fg": "var(--color-solid-default-fg-0)"
3220
- // '--color-checkbox-bg': 'var(--color-input-default-enabled-fg)',
3221
- // '--color-checkbox-border': 'var(--color-input-default-enabled-fg)',
3222
- // '--color-checkbox-fg': 'var(--color-input-default-enabled-bg)',
3223
- // box-shadow: ${focusRingBorderStyle({
3224
- // color: color.input.default.enabled.fg,
3225
- // width: input.border.width,
3226
- // })},
3227
- },
3090
+ // show checkmark when checked
3228
3091
  "&:checked + span > svg:first-child": {
3229
3092
  opacity: 1
3230
3093
  },
3231
- // focus
3232
- "&:not(:disabled):focus:focus-visible + span": {
3233
- // box-shadow: ${focusRingStyle({focusRing})},
3234
- },
3235
- // focus when checked - uses a different offset
3236
- "&:not(:disabled):focus:focus-visible&:checked + span": {
3237
- // box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})},
3238
- },
3239
- "&[data-error] + span": {
3240
- "--color-checkbox-bg": "var(--color-input-invalid-enabled-border)",
3241
- "--color-checkbox-border": "var(--color-input-invalid-enabled-bg)",
3242
- "--color-checkbox-fg": "var(--color-input-invalid-enabled-fg)"
3243
- // box-shadow: ${focusRingBorderStyle({
3244
- // width: input.border.width,
3245
- // color: color.input.invalid.enabled.muted.bg,
3246
- // })},
3247
- },
3248
- "&[data-error]:checked + span": {
3249
- "--color-checkbox-bg": "var(--color-input-invalid-enabled-muted-bg)",
3250
- "--color-checkbox-fg": "var(--color-input-invalid-enabled-bg)"
3251
- },
3252
- "&[data-error]:checked:not(:disabled):focus:focus-visible + span": {
3253
- "--color-checkbox-border": "var(--color-input-invalid-readOnly-muted-bg)"
3254
- // box-shadow: ${focusRingStyle({
3255
- // border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},
3256
- // focusRing: {width: 1, offset: 1},
3257
- // })},
3258
- },
3259
- "&:disabled + span": {
3260
- "--color-checkbox-bg": "var(--color-tinted-default-bg-1)",
3261
- "--color-checkbox-border": "var(--color-tinted-default-border-0)",
3262
- "--color-checkbox-fg": "var(--color-tinted-default-border-2)"
3094
+ // show minus when indeterminate
3095
+ "&:indeterminate + span > svg:last-child": {
3096
+ opacity: 1
3263
3097
  },
3264
- "&:checked:disabled + span": {
3265
- "--color-checkbox-bg": "var(--color-tinted-default-border-2)",
3266
- "--color-checkbox-border": "var(--color-tinted-default-border-2)",
3267
- "--color-checkbox-fg": "var(--color-tinted-default-bg-0)"
3098
+ // checked, not disabled, not invalid
3099
+ "&:checked:not(:disabled):not([data-invalid]) + span": {
3100
+ vars: {
3101
+ [varNames.color.input.checkbox.bg]: vars.color.solid.default.bg[0],
3102
+ [varNames.color.input.checkbox.border]: vars.color.solid.default.bg[0],
3103
+ [varNames.color.input.checkbox.fg]: vars.color.solid.default.fg[0]
3104
+ }
3268
3105
  },
3269
- // '&:disabled:checked + span': {
3270
- // '--color-checkbox-bg': 'var(--color-input-default-disabled-muted-bg)',
3271
- // },
3272
- "&[data-read-only] + span": {
3273
- "--color-checkbox-bg": "var(--color-input-default-readOnly-bg)",
3274
- "--color-checkbox-border": "var(--color-input-default-readOnly-border)",
3275
- "--color-checkbox-fg": "var(--color-input-default-readOnly-fg)"
3276
- // box-shadow: ${focusRingBorderStyle({
3277
- // width: input.border.width,
3278
- // color: color.input.default.readOnly.border,
3279
- // })},
3280
- },
3281
- "&[data-read-only]:checked + span": {
3282
- "--color-checkbox-bg": "var(--color-input-default-readOnly-muted-bg)"
3106
+ // not checked, not invalid, hovered
3107
+ "&:not(:checked):not([data-invalid]):hover + span": {
3108
+ vars: {
3109
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.default.bg[1],
3110
+ [varNames.color.input.checkbox.border]: vars.color.tinted.default.border[4],
3111
+ [varNames.color.input.checkbox.fg]: vars.color.tinted.default.fg[0]
3112
+ }
3283
3113
  },
3284
- "&:indeterminate + span > svg:last-child": {
3285
- opacity: 1
3114
+ // not checked, not disabled, invalid
3115
+ "&:not(:checked):not(:disabled)[data-invalid] + span": {
3116
+ vars: {
3117
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.critical.bg[1],
3118
+ [varNames.color.input.checkbox.border]: vars.color.tinted.critical.border[3],
3119
+ [varNames.color.input.checkbox.fg]: vars.color.tinted.critical.fg[4]
3120
+ }
3121
+ },
3122
+ // not checked, invalid, hovered
3123
+ "&:not(:checked)[data-invalid]:hover + span": {
3124
+ vars: {
3125
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.critical.bg[2],
3126
+ [varNames.color.input.checkbox.border]: vars.color.tinted.critical.border[4],
3127
+ [varNames.color.input.checkbox.fg]: vars.color.tinted.critical.fg[1]
3128
+ // [varNames.color.input.checkbox.border]: vars.color.focusRing,
3129
+ }
3130
+ },
3131
+ // checked, not disabled, invalid
3132
+ "&:checked:not(:disabled)[data-invalid] + span": {
3133
+ vars: {
3134
+ [varNames.color.input.checkbox.bg]: vars.color.solid.critical.bg[0],
3135
+ [varNames.color.input.checkbox.border]: vars.color.solid.critical.bg[0],
3136
+ [varNames.color.input.checkbox.fg]: vars.color.solid.critical.fg[0]
3137
+ }
3138
+ },
3139
+ // not checked, not indeterminate, read only
3140
+ "&:not(:checked):not(:indeterminate)[data-read-only] + span": {
3141
+ vars: {
3142
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.default.bg[0],
3143
+ [varNames.color.input.checkbox.border]: vars.color.tinted.default.border[2],
3144
+ [varNames.color.input.checkbox.fg]: vars.color.tinted.default.fg[0]
3145
+ }
3146
+ },
3147
+ // checked, read only
3148
+ "&:checked[data-read-only] + span": {
3149
+ vars: {
3150
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.default.bg[1]
3151
+ }
3152
+ },
3153
+ // not checked, focused
3154
+ "&:not(:checked):focus:focus-visible + span": {
3155
+ vars: {
3156
+ [varNames.color.input.checkbox.border]: vars.color.focusRing
3157
+ }
3158
+ },
3159
+ // checked, focused
3160
+ "&:checked:focus:focus-visible + span": {
3161
+ vars: {
3162
+ [varNames.color.input.checkbox.border]: vars.color.focusRing,
3163
+ [varNames.color.input.checkbox.bg]: vars.color.focusRing,
3164
+ [varNames.color.input.checkbox.fg]: vars.color.solid.default.fg[0]
3165
+ }
3166
+ },
3167
+ // not checked, disabled
3168
+ "&:not(:checked):disabled + span": {
3169
+ vars: {
3170
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.default.bg[1],
3171
+ [varNames.color.input.checkbox.border]: vars.color.tinted.default.border[0],
3172
+ [varNames.color.input.checkbox.fg]: vars.color.tinted.default.border[2]
3173
+ }
3174
+ },
3175
+ // checked, disabled
3176
+ "&:checked:disabled + span": {
3177
+ vars: {
3178
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.default.border[2],
3179
+ [varNames.color.input.checkbox.border]: vars.color.tinted.default.border[2],
3180
+ [varNames.color.input.checkbox.fg]: vars.color.tinted.default.bg[0]
3181
+ }
3182
+ },
3183
+ // indeterminate, disabled
3184
+ "&:indeterminate:disabled + span": {
3185
+ vars: {
3186
+ [varNames.color.input.checkbox.bg]: vars.color.tinted.default.bg[1],
3187
+ [varNames.color.input.checkbox.border]: vars.color.tinted.default.border[0],
3188
+ [varNames.color.input.checkbox.fg]: vars.color.tinted.default.border[2]
3189
+ }
3286
3190
  }
3287
3191
  }
3288
3192
  }
@@ -3292,25 +3196,21 @@ const primitive$h = {
3292
3196
  }
3293
3197
  }, primitive$g = {
3294
3198
  ".code": {
3295
- "--font-weight-regular": "var(--font-code-weight-regular)",
3296
- "--font-weight-medium": "var(--font-code-weight-medium)",
3297
- "--font-weight-semibold": "var(--font-code-weight-semibold)",
3298
- "--font-weight-bold": "var(--font-code-weight-bold)",
3299
- "--font-family": "var(--font-code-family)",
3300
- "--font-feature-settings": "var(--font-code-feature-settings)",
3301
- color: "var(--color-code-fg)",
3302
- "@nest": {
3199
+ vars: {
3200
+ [varNames.font.weight.regular]: vars.font.code.weight.regular,
3201
+ [varNames.font.weight.medium]: vars.font.code.weight.medium,
3202
+ [varNames.font.weight.semibold]: vars.font.code.weight.semibold,
3203
+ [varNames.font.weight.bold]: vars.font.code.weight.bold,
3204
+ [varNames.font.family]: vars.font.code.family,
3205
+ [varNames.font.featureSettings]: vars.font.code.featureSettings
3206
+ },
3207
+ color: vars.color.code.fg,
3208
+ nest: {
3303
3209
  "& > code": {
3304
3210
  fontFamily: "inherit"
3305
3211
  },
3306
- // & code {
3307
- // font-family: inherit;
3308
- // &.refractor .token {
3309
- // ${codeSyntaxHighlightingStyle}
3310
- // }
3311
- // }
3312
3212
  "& a": {
3313
- color: "var(--color-link-fg)",
3213
+ color: vars.color.link.fg,
3314
3214
  textDecoration: "none",
3315
3215
  borderRadius: "1px"
3316
3216
  },
@@ -3325,16 +3225,19 @@ const primitive$h = {
3325
3225
  }
3326
3226
  }
3327
3227
  };
3328
- for (const size of FONT_CODE_SIZE)
3228
+ for (const size of FONT_CODE_SIZE) {
3229
+ const v = vars.font.code.sizes[size];
3329
3230
  _responsiveRule(primitive$g, `code-${size}`, {
3330
- "--font-size": `var(--font-code-${size}-size)`,
3331
- "--font-line-height": `var(--font-code-${size}-line-height)`,
3332
- "--font-letter-spacing": `var(--font-code-${size}-letter-spacing)`,
3333
- "--font-icon-size": `var(--font-code-${size}-icon-size)`,
3334
- "--font-ascender-height": `var(--font-code-${size}-ascender-height)`,
3335
- "--font-descender-height": `var(--font-code-${size}-descender-height)`
3336
- // '--font-cap-height': `var(--font-code-${size}-cap-height)`,
3231
+ vars: {
3232
+ [varNames.font.fontSize]: v.fontSize,
3233
+ [varNames.font.lineHeight]: v.lineHeight,
3234
+ [varNames.font.letterSpacing]: v.letterSpacing,
3235
+ [varNames.font.iconSize]: v.iconSize,
3236
+ [varNames.font.ascenderHeight]: v.ascenderHeight,
3237
+ [varNames.font.descenderHeight]: v.descenderHeight
3238
+ }
3337
3239
  });
3240
+ }
3338
3241
  const codeStyle = {
3339
3242
  layers: {
3340
3243
  primitive: primitive$g
@@ -3350,37 +3253,44 @@ const codeStyle = {
3350
3253
  }
3351
3254
  }, primitive$e = {
3352
3255
  ".heading": {
3353
- "--font-weight-regular": "var(--font-heading-weight-regular)",
3354
- "--font-weight-medium": "var(--font-heading-weight-medium)",
3355
- "--font-weight-semibold": "var(--font-heading-weight-semibold)",
3356
- "--font-weight-bold": "var(--font-heading-weight-bold)",
3357
- "--font-family": "var(--font-heading-family)",
3358
- "--font-feature-settings": "var(--font-heading-feature-settings)",
3359
- color: "var(--color-fg)",
3360
- "@nest": {
3256
+ vars: {
3257
+ [varNames.font.weight.regular]: vars.font.heading.weight.regular,
3258
+ [varNames.font.weight.medium]: vars.font.heading.weight.medium,
3259
+ [varNames.font.weight.semibold]: vars.font.heading.weight.semibold,
3260
+ [varNames.font.weight.bold]: vars.font.heading.weight.bold,
3261
+ [varNames.font.family]: vars.font.heading.family,
3262
+ [varNames.font.featureSettings]: vars.font.heading.featureSettings
3263
+ },
3264
+ color: vars.color.fg,
3265
+ nest: {
3361
3266
  "& a": {
3362
- color: "var(--color-link-fg)",
3267
+ color: vars.color.link.fg,
3363
3268
  textDecoration: "none"
3269
+ },
3270
+ "& a:hover": {
3271
+ color: "inherit"
3364
3272
  }
3365
3273
  }
3366
3274
  },
3367
- // '.heading-accent': {
3368
- // '--color-fg': 'var(--color-accent-fg)',
3369
- // },
3370
3275
  ".heading-muted": {
3371
- "--color-fg": "var(--color-tinted-default-fg-4)"
3276
+ vars: {
3277
+ [varNames.color.fg]: vars.color.muted.fg
3278
+ }
3372
3279
  }
3373
3280
  };
3374
- for (const size of FONT_HEADING_SIZE)
3281
+ for (const size of FONT_HEADING_SIZE) {
3282
+ const v = vars.font.heading.sizes[size];
3375
3283
  _responsiveRule(primitive$e, `heading-${size}`, {
3376
- "--font-size": `var(--font-heading-${size}-size)`,
3377
- "--font-line-height": `var(--font-heading-${size}-line-height)`,
3378
- "--font-letter-spacing": `var(--font-heading-${size}-letter-spacing)`,
3379
- "--font-icon-size": `var(--font-heading-${size}-icon-size)`,
3380
- "--font-ascender-height": `var(--font-heading-${size}-ascender-height)`,
3381
- "--font-descender-height": `var(--font-heading-${size}-descender-height)`
3382
- // '--font-cap-height': `var(--font-heading-${size}-cap-height)`,
3284
+ vars: {
3285
+ [varNames.font.fontSize]: v.fontSize,
3286
+ [varNames.font.lineHeight]: v.lineHeight,
3287
+ [varNames.font.letterSpacing]: v.letterSpacing,
3288
+ [varNames.font.iconSize]: v.iconSize,
3289
+ [varNames.font.ascenderHeight]: v.ascenderHeight,
3290
+ [varNames.font.descenderHeight]: v.descenderHeight
3291
+ }
3383
3292
  });
3293
+ }
3384
3294
  const headingStyle = {
3385
3295
  layers: {
3386
3296
  primitive: primitive$e
@@ -3391,7 +3301,7 @@ const headingStyle = {
3391
3301
  backgroundColor: vars.color.muted.bg,
3392
3302
  font: "inherit",
3393
3303
  verticalAlign: "top",
3394
- "@nest": {
3304
+ nest: {
3395
3305
  "&:not([hidden])": {
3396
3306
  display: "inline-block"
3397
3307
  }
@@ -3403,38 +3313,40 @@ const headingStyle = {
3403
3313
  }
3404
3314
  }, primitive$c = {
3405
3315
  ".label": {
3406
- "--font-weight-regular": "var(--font-label-weight-regular)",
3407
- "--font-weight-medium": "var(--font-label-weight-medium)",
3408
- "--font-weight-semibold": "var(--font-label-weight-semibold)",
3409
- "--font-weight-bold": "var(--font-label-weight-bold)",
3410
- "--font-family": "var(--font-label-family)",
3411
- "--font-feature-settings": "var(--font-label-feature-settings)",
3412
- color: "var(--color-fg)",
3316
+ vars: {
3317
+ [varNames.font.weight.regular]: vars.font.label.weight.regular,
3318
+ [varNames.font.weight.medium]: vars.font.label.weight.medium,
3319
+ [varNames.font.weight.semibold]: vars.font.label.weight.semibold,
3320
+ [varNames.font.weight.bold]: vars.font.label.weight.bold,
3321
+ [varNames.font.family]: vars.font.label.family,
3322
+ [varNames.font.featureSettings]: vars.font.label.featureSettings
3323
+ },
3324
+ color: vars.color.fg,
3413
3325
  textTransform: "uppercase",
3414
- "@nest": {
3326
+ nest: {
3415
3327
  "& a": {
3416
- color: "var(--color-link-fg)",
3328
+ color: vars.color.link.fg,
3417
3329
  textDecoration: "none"
3418
3330
  }
3419
3331
  }
3420
3332
  },
3421
- ".label-accent": {
3422
- "--color-fg": "var(--color-accent-fg)"
3423
- },
3424
3333
  ".label-muted": {
3425
- "--color-fg": "var(--color-muted-fg)"
3334
+ [varNames.color.fg]: vars.color.muted.fg
3426
3335
  }
3427
3336
  };
3428
- for (const size of FONT_LABEL_SIZE)
3337
+ for (const size of FONT_LABEL_SIZE) {
3338
+ const k = varNames.font, v = vars.font.label.sizes[size];
3429
3339
  _responsiveRule(primitive$c, `label-${size}`, {
3430
- "--font-size": `var(--font-label-${size}-size)`,
3431
- "--font-line-height": `var(--font-label-${size}-line-height)`,
3432
- "--font-letter-spacing": `var(--font-label-${size}-letter-spacing)`,
3433
- "--font-icon-size": `var(--font-label-${size}-icon-size)`,
3434
- "--font-ascender-height": `var(--font-label-${size}-ascender-height)`,
3435
- "--font-descender-height": `var(--font-label-${size}-descender-height)`
3436
- // '--font-cap-height': `var(--font-label-${size}-cap-height)`,
3340
+ vars: {
3341
+ [k.fontSize]: v.fontSize,
3342
+ [k.lineHeight]: v.lineHeight,
3343
+ [k.letterSpacing]: v.letterSpacing,
3344
+ [k.iconSize]: v.iconSize,
3345
+ [k.ascenderHeight]: v.ascenderHeight,
3346
+ [k.descenderHeight]: v.descenderHeight
3347
+ }
3437
3348
  });
3349
+ }
3438
3350
  const labelStyle = {
3439
3351
  layers: {
3440
3352
  primitive: primitive$c
@@ -3446,7 +3358,7 @@ const labelStyle = {
3446
3358
  }, primitive$a = {
3447
3359
  ".radio": {
3448
3360
  position: "relative",
3449
- "@nest": {
3361
+ nest: {
3450
3362
  "&:not([hidden])": {
3451
3363
  display: "inline-block"
3452
3364
  },
@@ -3465,86 +3377,48 @@ const labelStyle = {
3465
3377
  borderRadius: "9999px",
3466
3378
  border: "none"
3467
3379
  },
3468
- /* enabled */
3380
+ // enabled
3469
3381
  "& > input + span": {
3470
3382
  display: "block",
3471
3383
  position: "relative",
3472
- width: "var(--input-radio-size)",
3473
- height: "var(--input-radio-size)",
3384
+ width: vars.input.radio.size,
3385
+ height: vars.input.radio.size,
3474
3386
  borderRadius: "9999px",
3475
- backgroundColor: "var(--color-input-bg)",
3476
- boxShadow: "inset 0 0 0 1px var(--color-input-border)",
3477
- // border-radius: ${rem(input.radio.size / 2)};
3478
- // background: ${color.input.default.enabled.bg};
3479
- // box-shadow: ${focusRingBorderStyle({
3480
- // color: color.input.default.enabled.border,
3481
- // width: input.border.width,
3482
- // })};
3483
- "--color-input-fg": "var(--color-tinted-default-fg-0)",
3484
- "--color-input-bg": "var(--color-tinted-default-bg-0)",
3485
- "--color-input-border": "var(--color-tinted-default-border-1)"
3387
+ backgroundColor: vars.color.input.radio.bg,
3388
+ boxShadow: `inset 0 0 0 1px ${vars.color.input.radio.border}`,
3389
+ vars: {
3390
+ [varNames.color.input.radio.fg]: vars.color.tinted.default.fg[0],
3391
+ [varNames.color.input.radio.bg]: vars.color.tinted.default.bg[0],
3392
+ [varNames.color.input.radio.border]: vars.color.tinted.default.border[1]
3393
+ }
3486
3394
  },
3487
3395
  "& > input + span::after": {
3488
3396
  content: '""',
3489
3397
  position: "absolute",
3490
- top: "calc((var(--input-radio-size) - var(--input-radio-mark-size)) / 2)",
3491
- left: "calc((var(--input-radio-size) - var(--input-radio-mark-size)) / 2)",
3492
- width: "var(--input-radio-mark-size)",
3493
- height: "var(--input-radio-mark-size)",
3494
- backgroundColor: "var(--color-input-fg)",
3398
+ top: `calc((${vars.input.radio.size} - ${vars.input.radio.markSize}) / 2)`,
3399
+ left: `calc((${vars.input.radio.size} - ${vars.input.radio.markSize}) / 2)`,
3400
+ width: vars.input.radio.markSize,
3401
+ height: vars.input.radio.markSize,
3402
+ backgroundColor: vars.color.input.radio.fg,
3495
3403
  borderRadius: "9999px",
3496
3404
  opacity: 0
3497
3405
  },
3498
- /* hovered */
3406
+ // hovered
3499
3407
  "& > input:not(:disabled):hover + span": {
3500
- "--color-input-bg": "var(--color-tinted-default-bg-1)",
3501
- "--color-input-border": "var(--color-tinted-default-border-2)"
3408
+ vars: {
3409
+ [varNames.color.input.radio.bg]: vars.color.tinted.default.bg[1],
3410
+ [varNames.color.input.radio.border]: vars.color.tinted.default.border[2]
3411
+ }
3502
3412
  },
3503
- /* focused */
3413
+ // focused
3504
3414
  "& > input:not(:disabled):focus + span": {
3505
- "--color-input-border": "var(--color-tinted-default-border-2)"
3506
- // box-shadow: ${focusRingStyle({
3507
- // border: {width: input.border.width, color: color.input.default.enabled.border},
3508
- // focusRing: input.radio.focusRing,
3509
- // })};
3510
- },
3511
- "& > input:not(:disabled):focus:not(:focus-visible) + span": {
3512
- // box-shadow: ${focusRingBorderStyle({
3513
- // color: color.input.default.enabled.border,
3514
- // width: input.border.width,
3515
- // })};
3415
+ vars: {
3416
+ [varNames.color.input.radio.border]: vars.color.tinted.default.border[2]
3417
+ }
3516
3418
  },
3517
3419
  "& > input:checked + span::after": {
3518
3420
  opacity: 1
3519
3421
  }
3520
- // /* customValidity */
3521
- // &[data-error] + span {
3522
- // background-color: ${color.input.invalid.enabled.border};
3523
- // box-shadow: ${focusRingBorderStyle({
3524
- // width: input.border.width,
3525
- // color: color.input.invalid.enabled.muted.bg,
3526
- // })};
3527
- // &::after {
3528
- // background: ${color.input.invalid.enabled.muted.bg};
3529
- // }
3530
- // }
3531
- // /* read only */
3532
- // &[data-read-only] + span {
3533
- // box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};
3534
- // background: ${color.input.default.readOnly.bg};
3535
- // &::after {
3536
- // background: ${color.input.default.readOnly.border};
3537
- // }
3538
- // }
3539
- // /* disabled */
3540
- // &:not([data-read-only]):disabled + span {
3541
- // box-shadow: 0 0 0 1px ${color.input.default.disabled.border};
3542
- // background: ${color.input.default.disabled.bg};
3543
- // &::after {
3544
- // background: ${color.input.default.disabled.border};
3545
- // }
3546
- // }
3547
- // `
3548
3422
  }
3549
3423
  }
3550
3424
  }, radioStyle = {
@@ -3553,14 +3427,14 @@ const labelStyle = {
3553
3427
  }
3554
3428
  }, primitive$9 = {
3555
3429
  ".select": {
3556
- "@nest": {
3430
+ nest: {
3557
3431
  "& > select:disabled": {
3558
3432
  opacity: 1
3559
3433
  }
3560
3434
  }
3561
3435
  },
3562
3436
  ".select-presentation": {
3563
- "@nest": {
3437
+ nest: {
3564
3438
  "& > span": {
3565
3439
  // place icon to the right
3566
3440
  position: "absolute",
@@ -3618,60 +3492,69 @@ const labelStyle = {
3618
3492
  zIndex: 1
3619
3493
  },
3620
3494
  ".switch-presentation": {
3621
- "--switch-bg-color": "var(--color-tinted-default-border-2)",
3622
- "--switch-fg-color": "var(--color-tinted-default-bg-0)",
3623
- "--switch-thumb-offset": "0",
3624
- "--switch-thumb-size": "calc(var(--input-switch-height) - var(--input-switch-padding) * 2)",
3495
+ vars: {
3496
+ [varNames.color.input.switch.bg]: vars.color.tinted.default.border[2],
3497
+ [varNames.color.input.switch.fg]: vars.color.tinted.default.bg[0],
3498
+ [varNames.input.switch.thumb.offset]: "0",
3499
+ [varNames.input.switch.thumb.size]: `calc(${vars.input.switch.height} - ${vars.input.switch.padding} * 2)`
3500
+ },
3625
3501
  display: "block",
3626
3502
  position: "relative",
3627
- width: "var(--input-switch-width)",
3628
- height: "var(--input-switch-height)",
3629
- borderRadius: "calc(var(--input-switch-height) / 2)",
3630
- outlineOffset: "var(--input-switch-focus-ring-offset)",
3503
+ width: vars.input.switch.width,
3504
+ height: vars.input.switch.height,
3505
+ borderRadius: `calc(${vars.input.switch.height} / 2)`,
3506
+ outlineOffset: vars.input.switch.focusRing.offset,
3631
3507
  // Make sure it’s not possible to interact with the presentation element
3632
3508
  pointerEvents: "none",
3633
- "@nest": {
3634
- ".switch-element:focus + &": {
3635
- outline: "var(--input-switch-focus-ring-width) solid var(--color-focus-ring)"
3636
- },
3637
- "input:focus:not(:focus-visible) + &": {
3638
- outline: "none"
3509
+ nest: {
3510
+ "input:not(:checked):hover + &": {
3511
+ vars: {
3512
+ [varNames.color.input.switch.bg]: vars.color.tinted.default.border[4]
3513
+ }
3639
3514
  },
3640
3515
  "input:checked + &": {
3641
- "--switch-bg-color": "var(--color-solid-default-bg-0)",
3642
- "--switch-fg-color": "var(--color-solid-default-fg-0)"
3516
+ vars: {
3517
+ [varNames.color.input.switch.bg]: vars.color.solid.default.bg[0],
3518
+ [varNames.color.input.switch.fg]: vars.color.solid.default.fg[0],
3519
+ [varNames.input.switch.thumb.offset]: `calc(${vars.input.switch.width} - (${vars.input.switch.padding} * 2) - ${vars.input.switch.thumb.size})`
3520
+ }
3643
3521
  },
3644
- ".switch-element:checked + &": {
3645
- "--switch-thumb-offset": "calc(var(--input-switch-width) - (var(--input-switch-padding) * 2) - var(--switch-thumb-size))"
3522
+ "[data-indeterminate] > input + &": {
3523
+ vars: {
3524
+ [varNames.input.switch.thumb.offset]: `calc(${vars.input.switch.width} / 2 - ${vars.input.switch.thumb.size} / 2 - ${vars.input.switch.padding})`
3525
+ }
3526
+ },
3527
+ "input:focus + &": {
3528
+ outline: `${vars.input.switch.focusRing.width} solid ${vars.color.focusRing}`
3646
3529
  },
3647
- "[data-indeterminate] > .switch-element + &": {
3648
- "--switch-thumb-offset": "calc(var(--input-switch-width) / 2 - var(--switch-thumb-size) / 2 - var(--input-switch-padding))"
3530
+ "input:focus:not(:focus-visible) + &": {
3531
+ outline: "none"
3649
3532
  }
3650
3533
  }
3651
3534
  },
3652
3535
  ".switch-track": {
3653
3536
  display: "block",
3654
- backgroundColor: "var(--switch-bg-color)",
3537
+ backgroundColor: vars.color.input.switch.bg,
3655
3538
  position: "absolute",
3656
3539
  left: 0,
3657
3540
  top: 0,
3658
3541
  right: 0,
3659
3542
  bottom: 0,
3660
3543
  borderRadius: "inherit",
3661
- transition: "box-shadow, background-color var(--input-switch-transition-duration-ms) var(--input-switch-transition-timing-function)"
3544
+ transition: `box-shadow, background-color ${vars.input.switch.transitionDurationMs} ${vars.input.switch.transitionTimingFunction}`
3662
3545
  },
3663
3546
  ".switch-thumb": {
3664
3547
  display: "block",
3665
3548
  position: "absolute",
3666
- left: "var(--input-switch-padding)",
3667
- top: "var(--input-switch-padding)",
3668
- width: "var(--switch-thumb-size)",
3669
- height: "var(--switch-thumb-size)",
3670
- backgroundColor: "var(--switch-fg-color)",
3549
+ left: vars.input.switch.padding,
3550
+ top: vars.input.switch.padding,
3551
+ width: vars.input.switch.thumb.size,
3552
+ height: vars.input.switch.thumb.size,
3553
+ backgroundColor: vars.color.input.switch.fg,
3671
3554
  borderRadius: "9999px",
3672
- boxShadow: "0 0 0 0.5px var(--color-shadow-umbra), 0 0.5px 2px 0.5px var(--color-shadow-umbra)",
3673
- transform: "translate3d(var(--switch-thumb-offset), 0, 0)",
3674
- transition: "transform var(--input-switch-transition-duration-ms) var(--input-switch-transition-timing-function)"
3555
+ boxShadow: `0 0 0 0.5px ${vars.color.shadow.umbra}, 0 0.5px 2px 0.5px ${vars.color.shadow.umbra}`,
3556
+ transform: `translate3d(${vars.input.switch.thumb.offset}, 0, 0)`,
3557
+ transition: `transform ${vars.input.switch.transitionDurationMs} ${vars.input.switch.transitionTimingFunction}`
3675
3558
  }
3676
3559
  }, switchStyle = {
3677
3560
  layers: {
@@ -3679,46 +3562,51 @@ const labelStyle = {
3679
3562
  }
3680
3563
  }, primitive$5 = {
3681
3564
  ".text": {
3682
- "--font-weight-regular": "var(--font-text-weight-regular)",
3683
- "--font-weight-medium": "var(--font-text-weight-medium)",
3684
- "--font-weight-semibold": "var(--font-text-weight-semibold)",
3685
- "--font-weight-bold": "var(--font-text-weight-bold)",
3686
- "--font-family": "var(--font-text-family)",
3687
- "--font-feature-settings": "var(--font-text-feature-settings)",
3688
- color: "var(--color-fg)",
3689
- "@nest": {
3565
+ vars: {
3566
+ [varNames.font.family]: vars.font.text.family,
3567
+ [varNames.font.featureSettings]: vars.font.text.featureSettings,
3568
+ [varNames.font.weight.regular]: vars.font.text.weight.regular,
3569
+ [varNames.font.weight.medium]: vars.font.text.weight.medium,
3570
+ [varNames.font.weight.semibold]: vars.font.text.weight.semibold,
3571
+ [varNames.font.weight.bold]: vars.font.text.weight.bold
3572
+ },
3573
+ color: vars.color.fg,
3574
+ nest: {
3690
3575
  "& a": {
3691
- color: "var(--color-link-fg)",
3576
+ color: vars.color.link.fg,
3692
3577
  textDecoration: "none"
3693
3578
  },
3694
3579
  "& a:hover": {
3695
- color: "var(--color-fg)"
3580
+ color: vars.color.fg
3696
3581
  },
3697
3582
  "& code": {
3698
3583
  fontFamily: vars.font.code.family,
3699
- color: "var(--color-code-fg)",
3700
- backgroundColor: "var(--color-muted-bg)",
3584
+ color: vars.color.code.fg,
3585
+ backgroundColor: vars.color.code.bg,
3701
3586
  borderRadius: vars.radius[2]
3702
3587
  },
3703
3588
  "& svg": {
3704
- color: "var(--color-muted-fg)"
3589
+ color: vars.color.muted.fg
3705
3590
  }
3706
3591
  }
3707
3592
  },
3708
3593
  ".text-muted": {
3709
- color: "var(--color-muted-fg)"
3594
+ color: vars.color.muted.fg
3710
3595
  }
3711
3596
  };
3712
- for (const size of FONT_TEXT_SIZE)
3597
+ for (const size of FONT_TEXT_SIZE) {
3598
+ const v = vars.font.text.sizes[size];
3713
3599
  _responsiveRule(primitive$5, `text-${size}`, {
3714
- "--font-size": `var(--font-text-${size}-size)`,
3715
- "--font-line-height": `var(--font-text-${size}-line-height)`,
3716
- "--font-letter-spacing": `var(--font-text-${size}-letter-spacing)`,
3717
- "--font-icon-size": `var(--font-text-${size}-icon-size)`,
3718
- "--font-ascender-height": `var(--font-text-${size}-ascender-height)`,
3719
- "--font-descender-height": `var(--font-text-${size}-descender-height)`
3720
- // '--font-cap-height': `var(--font-text-${size}-cap-height)`,
3600
+ vars: {
3601
+ [varNames.font.fontSize]: v.fontSize,
3602
+ [varNames.font.lineHeight]: v.lineHeight,
3603
+ [varNames.font.letterSpacing]: v.letterSpacing,
3604
+ [varNames.font.iconSize]: v.iconSize,
3605
+ [varNames.font.ascenderHeight]: v.ascenderHeight,
3606
+ [varNames.font.descenderHeight]: v.descenderHeight
3607
+ }
3721
3608
  });
3609
+ }
3722
3610
  const textStyle = {
3723
3611
  layers: {
3724
3612
  primitive: primitive$5
@@ -3733,20 +3621,22 @@ const textStyle = {
3733
3621
  }
3734
3622
  }, primitive$3 = {
3735
3623
  ".text-input": {
3736
- "--font-family": vars.font.text.family,
3737
- "@nest": {
3624
+ vars: {
3625
+ [varNames.font.family]: vars.font.text.family
3626
+ },
3627
+ nest: {
3738
3628
  "& > span": {
3739
3629
  borderRadius: "inherit"
3740
3630
  }
3741
3631
  }
3742
3632
  },
3743
3633
  ".text-input-prefix": {
3744
- borderTop: "1px solid var(--color-border)",
3745
- borderLeft: "1px solid var(--color-border)",
3746
- borderBottom: "1px solid var(--color-border)",
3634
+ borderTop: `1px solid ${vars.color.border}`,
3635
+ borderLeft: `1px solid ${vars.color.border}`,
3636
+ borderBottom: `1px solid ${vars.color.border}`,
3747
3637
  borderTopRightRadius: "0 !important",
3748
3638
  borderBottomRightRadius: "0 !important",
3749
- "@nest": {
3639
+ nest: {
3750
3640
  "& > span": {
3751
3641
  display: "block",
3752
3642
  margin: "-1px"
@@ -3754,12 +3644,12 @@ const textStyle = {
3754
3644
  }
3755
3645
  },
3756
3646
  ".text-input-suffix": {
3757
- borderTop: "1px solid var(--color-border)",
3758
- borderRight: "1px solid var(--color-border)",
3759
- borderBottom: "1px solid var(--color-border)",
3647
+ borderTop: `1px solid ${vars.color.border}`,
3648
+ borderRight: `1px solid ${vars.color.border}`,
3649
+ borderBottom: `1px solid ${vars.color.border}`,
3760
3650
  borderTopLeftRadius: "0 !important",
3761
3651
  borderBottomLeftRadius: "0 !important",
3762
- "@nest": {
3652
+ nest: {
3763
3653
  "& > span": {
3764
3654
  display: "block",
3765
3655
  margin: "-1px"
@@ -3774,7 +3664,7 @@ const textStyle = {
3774
3664
  }, primitive$2 = {
3775
3665
  ".token": {
3776
3666
  _prefix: !1,
3777
- "@nest": {
3667
+ nest: {
3778
3668
  "&.atrule": {
3779
3669
  color: vars.color.code.token.atrule
3780
3670
  },
@@ -3898,10 +3788,11 @@ const textStyle = {
3898
3788
  },
3899
3789
  ".tooltip-card": {
3900
3790
  willChange: "transform",
3901
- "@nest": {
3791
+ nest: {
3902
3792
  "&[data-animate] > *": {
3793
+ // TODO
3903
3794
  // opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);
3904
- opacity: "var(--motion-content-opacity, 1)",
3795
+ // opacity: `var(--motion-content-opacity, 1)`,
3905
3796
  willChange: "opacity"
3906
3797
  }
3907
3798
  }
@@ -3937,6 +3828,7 @@ const textStyle = {
3937
3828
  },
3938
3829
  // aspects
3939
3830
  borderStyle,
3831
+ boxSizingStyle,
3940
3832
  displayStyle,
3941
3833
  flexStyle,
3942
3834
  flexAlignStyle,
@@ -4012,323 +3904,28 @@ const textStyle = {
4012
3904
  function _compileSystem() {
4013
3905
  return _compileStyle(_systemStyle);
4014
3906
  }
4015
- const THEME_COLOR_SCHEMES = ["dark", "light"], THEME_COLOR_VARIANTS = ["tinted", "solid"];
4016
- function _compileTheme_v3(theme) {
3907
+ function _compileTheme() {
4017
3908
  return _compileStyle({
4018
3909
  layers: {
4019
3910
  theme: {
4020
- ":root": compileThemeProperties(theme)
3911
+ ":root": properties
4021
3912
  }
4022
3913
  }
4023
3914
  });
4024
3915
  }
4025
- function compileThemeProperties(theme) {
4026
- return {
4027
- ...buildAvatarThemeProperties(theme),
4028
- ...buildButtonThemeProperties(theme),
4029
- // card
4030
- [varNames.card.shadow.outline]: px(theme.card.shadow.outline),
4031
- ...buildColorThemeProperties(theme),
4032
- ...buildContainerThemeProperties(theme),
4033
- ...buildFontCodeThemeProperties(theme),
4034
- ...buildFontHeadingThemeProperties(theme),
4035
- ...buildFontLabelThemeProperties(theme),
4036
- ...buildFontTextThemeProperties(theme),
4037
- ...buildInputThemeProperties(theme),
4038
- ...buildRadiusThemeProperties(theme),
4039
- ...buildShadowThemeProperties(theme),
4040
- ...buildSpaceThemeProperties(theme)
4041
- };
4042
- }
4043
- function buildAvatarThemeProperties(theme) {
4044
- return {
4045
- [varNames.avatar.focusRing.offset]: px(theme.avatar.focusRing.offset),
4046
- [varNames.avatar.focusRing.width]: px(theme.avatar.focusRing.width),
4047
- [varNames.avatar.sizes[0].distance]: rem(theme.avatar.sizes[0].distance),
4048
- [varNames.avatar.sizes[0].size]: rem(theme.avatar.sizes[0].size),
4049
- [varNames.avatar.sizes[1].distance]: rem(theme.avatar.sizes[1].distance),
4050
- [varNames.avatar.sizes[1].size]: rem(theme.avatar.sizes[1].size),
4051
- [varNames.avatar.sizes[2].distance]: rem(theme.avatar.sizes[2].distance),
4052
- [varNames.avatar.sizes[2].size]: rem(theme.avatar.sizes[2].size),
4053
- [varNames.avatar.sizes[3].distance]: rem(theme.avatar.sizes[3].distance),
4054
- [varNames.avatar.sizes[3].size]: rem(theme.avatar.sizes[3].size)
4055
- };
4056
- }
4057
- function buildButtonThemeProperties(theme) {
4058
- return {
4059
- [varNames.button.border.width]: px(theme.button.border.width),
4060
- [varNames.button.focusRing.offset]: px(theme.button.focusRing.offset),
4061
- [varNames.button.focusRing.width]: px(theme.button.focusRing.width)
4062
- };
4063
- }
4064
- function buildContainerThemeProperties(theme) {
4065
- return {
4066
- [varNames.container[0]]: rem(theme.container[0]),
4067
- [varNames.container[1]]: rem(theme.container[1]),
4068
- [varNames.container[2]]: rem(theme.container[2]),
4069
- [varNames.container[3]]: rem(theme.container[3]),
4070
- [varNames.container[4]]: rem(theme.container[4]),
4071
- [varNames.container[5]]: rem(theme.container[5])
4072
- };
4073
- }
4074
- function buildFontCodeThemeProperties(theme) {
4075
- const v = varNames.font.code, t = theme.font.code, props = {
4076
- [v.family]: t.family,
4077
- [v.featureSettings]: t.featureSettings || "normal",
4078
- [v.weights.regular]: t.weights.regular,
4079
- [v.weights.medium]: t.weights.medium,
4080
- [v.weights.semibold]: t.weights.semibold,
4081
- [v.weights.bold]: t.weights.bold
4082
- };
4083
- for (const size of FONT_CODE_SIZE) {
4084
- const _v = varNames.font.code.sizes[size], _t = theme.font.code.sizes[size];
4085
- props[_v.fontSize] = rem(_t.fontSize), props[_v.lineHeight] = rem(_t.lineHeight), props[_v.ascenderHeight] = rem(_t.ascenderHeight), props[_v.descenderHeight] = rem(_t.descenderHeight), props[_v.letterSpacing] = rem(_t.letterSpacing), props[_v.iconSize] = rem(_t.iconSize);
4086
- }
4087
- return props;
4088
- }
4089
- function buildFontHeadingThemeProperties(theme) {
4090
- const v = varNames.font.heading, t = theme.font.heading, props = {
4091
- [v.family]: t.family,
4092
- [v.featureSettings]: t.featureSettings,
4093
- [v.weights.regular]: t.weights.regular,
4094
- [v.weights.medium]: t.weights.medium,
4095
- [v.weights.semibold]: t.weights.semibold,
4096
- [v.weights.bold]: t.weights.bold
4097
- };
4098
- for (const size of FONT_HEADING_SIZE) {
4099
- const _v = v.sizes[size], _t = t.sizes[size];
4100
- props[_v.fontSize] = rem(_t.fontSize), props[_v.lineHeight] = rem(_t.lineHeight), props[_v.ascenderHeight] = rem(_t.ascenderHeight), props[_v.descenderHeight] = rem(_t.descenderHeight), props[_v.letterSpacing] = rem(_t.letterSpacing), props[_v.iconSize] = rem(_t.iconSize);
4101
- }
4102
- return props;
4103
- }
4104
- function buildFontLabelThemeProperties(theme) {
4105
- const v = varNames.font.label, t = theme.font.label, props = {
4106
- [v.family]: t.family,
4107
- [v.featureSettings]: t.featureSettings,
4108
- [v.weights.regular]: t.weights.regular,
4109
- [v.weights.medium]: t.weights.medium,
4110
- [v.weights.semibold]: t.weights.semibold,
4111
- [v.weights.bold]: t.weights.bold
4112
- };
4113
- for (const size of FONT_LABEL_SIZE) {
4114
- const _v = v.sizes[size], _t = t.sizes[size];
4115
- props[_v.fontSize] = rem(_t.fontSize), props[_v.lineHeight] = rem(_t.lineHeight), props[_v.ascenderHeight] = rem(_t.ascenderHeight), props[_v.descenderHeight] = rem(_t.descenderHeight), props[_v.letterSpacing] = rem(_t.letterSpacing), props[_v.iconSize] = rem(_t.iconSize);
4116
- }
4117
- return props;
4118
- }
4119
- function buildFontTextThemeProperties(theme) {
4120
- const v = varNames.font.text, t = theme.font.text, props = {
4121
- [v.family]: t.family,
4122
- [v.featureSettings]: t.featureSettings,
4123
- [v.weights.regular]: t.weights.regular,
4124
- [v.weights.medium]: t.weights.medium,
4125
- [v.weights.semibold]: t.weights.semibold,
4126
- [v.weights.bold]: t.weights.bold
4127
- };
4128
- for (const size of FONT_TEXT_SIZE) {
4129
- const _v = v.sizes[size], _t = t.sizes[size];
4130
- props[_v.fontSize] = rem(_t.fontSize), props[_v.lineHeight] = rem(_t.lineHeight), props[_v.ascenderHeight] = rem(_t.ascenderHeight), props[_v.descenderHeight] = rem(_t.descenderHeight), props[_v.letterSpacing] = rem(_t.letterSpacing), props[_v.iconSize] = rem(_t.iconSize);
4131
- }
4132
- return props;
4133
- }
4134
- function buildInputThemeProperties(theme) {
4135
- return {
4136
- [varNames.input.border.width]: px(theme.input.border.width),
4137
- [varNames.input.checkbox.focusRing.offset]: px(theme.input.checkbox.focusRing.offset),
4138
- [varNames.input.checkbox.focusRing.width]: px(theme.input.checkbox.focusRing.width),
4139
- [varNames.input.checkbox.size]: rem(theme.input.checkbox.size),
4140
- [varNames.input.radio.focusRing.offset]: px(theme.input.radio.focusRing.offset),
4141
- [varNames.input.radio.focusRing.width]: px(theme.input.radio.focusRing.width),
4142
- [varNames.input.radio.markSize]: rem(theme.input.radio.markSize),
4143
- [varNames.input.radio.size]: rem(theme.input.radio.size),
4144
- [varNames.input.select.focusRing.offset]: px(theme.input.select.focusRing.offset),
4145
- [varNames.input.select.focusRing.width]: px(theme.input.select.focusRing.width),
4146
- [varNames.input.switch.focusRing.offset]: px(theme.input.switch.focusRing.offset),
4147
- [varNames.input.switch.focusRing.width]: px(theme.input.switch.focusRing.width),
4148
- [varNames.input.switch.height]: rem(theme.input.switch.height),
4149
- [varNames.input.switch.padding]: rem(theme.input.switch.padding),
4150
- [varNames.input.switch.transitionDurationMs]: `${theme.input.switch.transitionDurationMs}ms`,
4151
- [varNames.input.switch.transitionTimingFunction]: theme.input.switch.transitionTimingFunction,
4152
- [varNames.input.switch.width]: rem(theme.input.switch.width),
4153
- [varNames.input.text.focusRing.offset]: px(theme.input.text.focusRing.offset),
4154
- [varNames.input.text.focusRing.width]: px(theme.input.text.focusRing.width)
4155
- };
4156
- }
4157
- function buildRadiusThemeProperties(theme) {
4158
- return {
4159
- [varNames.radius[0]]: px(theme.radius[0]),
4160
- [varNames.radius[1]]: px(theme.radius[1]),
4161
- [varNames.radius[2]]: px(theme.radius[2]),
4162
- [varNames.radius[3]]: px(theme.radius[3]),
4163
- [varNames.radius[4]]: px(theme.radius[4]),
4164
- [varNames.radius[5]]: px(theme.radius[5]),
4165
- [varNames.radius[6]]: px(theme.radius[6])
4166
- };
4167
- }
4168
- function buildShadowThemeProperties(theme) {
4169
- return {
4170
- [varNames.shadow[0].umbra]: toBoxShadow(theme.shadow[0]?.umbra),
4171
- [varNames.shadow[0].penumbra]: toBoxShadow(theme.shadow[0]?.penumbra),
4172
- [varNames.shadow[0].ambient]: toBoxShadow(theme.shadow[0]?.ambient),
4173
- [varNames.shadow[1].umbra]: toBoxShadow(theme.shadow[1]?.umbra),
4174
- [varNames.shadow[1].penumbra]: toBoxShadow(theme.shadow[1]?.penumbra),
4175
- [varNames.shadow[1].ambient]: toBoxShadow(theme.shadow[1]?.ambient),
4176
- [varNames.shadow[2].umbra]: toBoxShadow(theme.shadow[2]?.umbra),
4177
- [varNames.shadow[2].penumbra]: toBoxShadow(theme.shadow[2]?.penumbra),
4178
- [varNames.shadow[2].ambient]: toBoxShadow(theme.shadow[2]?.ambient),
4179
- [varNames.shadow[3].umbra]: toBoxShadow(theme.shadow[3]?.umbra),
4180
- [varNames.shadow[3].penumbra]: toBoxShadow(theme.shadow[3]?.penumbra),
4181
- [varNames.shadow[3].ambient]: toBoxShadow(theme.shadow[3]?.ambient),
4182
- [varNames.shadow[4].umbra]: toBoxShadow(theme.shadow[4]?.umbra),
4183
- [varNames.shadow[4].penumbra]: toBoxShadow(theme.shadow[4]?.penumbra),
4184
- [varNames.shadow[4].ambient]: toBoxShadow(theme.shadow[4]?.ambient),
4185
- [varNames.shadow[5].umbra]: toBoxShadow(theme.shadow[5]?.umbra),
4186
- [varNames.shadow[5].penumbra]: toBoxShadow(theme.shadow[5]?.penumbra),
4187
- [varNames.shadow[5].ambient]: toBoxShadow(theme.shadow[5]?.ambient)
4188
- };
4189
- }
4190
- function buildSpaceThemeProperties(theme) {
4191
- return {
4192
- [varNames.space[0]]: px(theme.space[0]),
4193
- [varNames.space[0.5]]: px(theme.space[1] / 2),
4194
- [varNames.space[1]]: px(theme.space[1]),
4195
- [varNames.space[2]]: px(theme.space[2]),
4196
- [varNames.space[3]]: px(theme.space[3]),
4197
- [varNames.space[4]]: px(theme.space[4]),
4198
- [varNames.space[5]]: px(theme.space[5]),
4199
- [varNames.space[6]]: px(theme.space[6]),
4200
- [varNames.space[7]]: px(theme.space[7]),
4201
- [varNames.space[8]]: px(theme.space[8]),
4202
- [varNames.space[9]]: px(theme.space[9])
4203
- };
4204
- }
4205
- function buildColorThemeProperties(theme) {
4206
- const props = {};
4207
- for (const scheme of THEME_COLOR_SCHEMES)
4208
- for (const cardTone of THEME_COLOR_CARD_TONES) {
4209
- Object.assign(props, buildColorAvatarThemeProperties(theme, {
4210
- scheme,
4211
- cardTone
4212
- })), Object.assign(props, buildColorCardThemeProperties(theme, {
4213
- scheme,
4214
- cardTone
4215
- }));
4216
- for (const colorVariant of THEME_COLOR_VARIANTS)
4217
- for (const elementTone of THEME_COLOR_STATE_TONES) {
4218
- const v = varNames.color[scheme][cardTone][colorVariant][elementTone], t = theme._tokens.color[cardTone].variant[colorVariant][elementTone], context = {
4219
- bgValue: "transparent",
4220
- bgVar: v.bg[0],
4221
- hue: t._hue,
4222
- scheme
4223
- };
4224
- Object.assign(props, {
4225
- [v.bg[0]]: renderColor(t.bg[0], context),
4226
- [v.bg[1]]: `color-mix(in srgb, var(${v.bg[0]}), var(${v.bg[4]}) 25%)`,
4227
- [v.bg[2]]: `color-mix(in srgb, var(${v.bg[0]}), var(${v.bg[4]}) 50%)`,
4228
- [v.bg[3]]: `color-mix(in srgb, var(${v.bg[0]}), var(${v.bg[4]}) 75%)`,
4229
- [v.bg[4]]: renderColor(t.bg[4], context),
4230
- [v.border[0]]: renderColor(t.border[0], context),
4231
- [v.border[1]]: `color-mix(in srgb, var(${v.border[0]}), var(${v.border[4]}) 25%)`,
4232
- [v.border[2]]: `color-mix(in srgb, var(${v.border[0]}), var(${v.border[4]}) 50%)`,
4233
- [v.border[3]]: `color-mix(in srgb, var(${v.border[0]}), var(${v.border[4]}) 75%)`,
4234
- [v.border[4]]: renderColor(t.border[4], context),
4235
- [v.fg[0]]: renderColor(t.fg[0], context),
4236
- [v.fg[1]]: `color-mix(in srgb, var(${v.fg[0]}), var(${v.fg[4]}) 25%)`,
4237
- [v.fg[2]]: `color-mix(in srgb, var(${v.fg[0]}), var(${v.fg[4]}) 50%)`,
4238
- [v.fg[3]]: `color-mix(in srgb, var(${v.fg[0]}), var(${v.fg[4]}) 75%)`,
4239
- [v.fg[4]]: renderColor(t.fg[4], context)
4240
- });
4241
- }
4242
- }
4243
- return props;
3916
+ function _getClassNames(...classNames) {
3917
+ return classNames.map((n) => typeof n == "string" && n.trim()).filter(Boolean).join(" ").split(" ").filter(Boolean);
4244
3918
  }
4245
- function buildColorAvatarThemeProperties(theme, options) {
4246
- const {
4247
- scheme,
4248
- cardTone
4249
- } = options, v = varNames.color[scheme][cardTone], t = theme._tokens.color[cardTone], props = {};
4250
- for (const hue of HUES) {
4251
- const context = {
4252
- bgValue: "transparent",
4253
- bgVar: varNames.color.bg,
4254
- hue: t.avatar[hue]._hue ?? hue,
4255
- scheme
4256
- };
4257
- Object.assign(props, {
4258
- [v.avatar[hue].bg]: renderColor(t.avatar[hue].bg, context),
4259
- [v.avatar[hue].fg]: renderColor(t.avatar[hue].fg, context)
4260
- });
4261
- }
4262
- return props;
3919
+ function _composeClassNames(...classNames) {
3920
+ return unique(_getClassNames(...classNames)).join(" ") || void 0;
4263
3921
  }
4264
- function buildColorCardThemeProperties(theme, options) {
4265
- const {
4266
- scheme,
4267
- cardTone
4268
- } = options, v = varNames.color[scheme][cardTone], t = theme._tokens.color[cardTone], context = {
4269
- bgValue: "transparent",
4270
- bgVar: varNames.color.bg,
4271
- hue: t._hue,
4272
- scheme
4273
- };
4274
- return {
4275
- // backdrop
4276
- [v.backdrop]: renderColor(t.backdrop, context),
4277
- // code
4278
- [v.code.bg]: renderColor(t.code.bg, context),
4279
- [v.code.fg]: renderColor(t.code.fg, context),
4280
- // code / token
4281
- [v.code.token.atrule]: renderColor(t.code.token.atrule, context),
4282
- [v.code.token.attrName]: renderColor(t.code.token.attrName, context),
4283
- [v.code.token.attrValue]: renderColor(t.code.token.attrValue, context),
4284
- [v.code.token.attribute]: renderColor(t.code.token.attribute, context),
4285
- [v.code.token.boolean]: renderColor(t.code.token.boolean, context),
4286
- [v.code.token.builtin]: renderColor(t.code.token.builtin, context),
4287
- [v.code.token.cdata]: renderColor(t.code.token.cdata, context),
4288
- [v.code.token.char]: renderColor(t.code.token.char, context),
4289
- [v.code.token.className]: renderColor(t.code.token.className, context),
4290
- [v.code.token.class]: renderColor(t.code.token.class, context),
4291
- [v.code.token.comment]: renderColor(t.code.token.comment, context),
4292
- [v.code.token.constant]: renderColor(t.code.token.constant, context),
4293
- [v.code.token.deleted]: renderColor(t.code.token.deleted, context),
4294
- [v.code.token.doctype]: renderColor(t.code.token.doctype, context),
4295
- [v.code.token.entity]: renderColor(t.code.token.entity, context),
4296
- [v.code.token.function]: renderColor(t.code.token.function, context),
4297
- [v.code.token.hexcode]: renderColor(t.code.token.hexcode, context),
4298
- [v.code.token.id]: renderColor(t.code.token.id, context),
4299
- [v.code.token.important]: renderColor(t.code.token.important, context),
4300
- [v.code.token.inserted]: renderColor(t.code.token.inserted, context),
4301
- [v.code.token.keyword]: renderColor(t.code.token.keyword, context),
4302
- [v.code.token.number]: renderColor(t.code.token.number, context),
4303
- [v.code.token.operator]: renderColor(t.code.token.operator, context),
4304
- [v.code.token.prolog]: renderColor(t.code.token.prolog, context),
4305
- [v.code.token.property]: renderColor(t.code.token.property, context),
4306
- [v.code.token.pseudoClass]: renderColor(t.code.token.pseudoClass, context),
4307
- [v.code.token.pseudoElement]: renderColor(t.code.token.pseudoElement, context),
4308
- [v.code.token.punctuation]: renderColor(t.code.token.punctuation, context),
4309
- [v.code.token.regex]: renderColor(t.code.token.regex, context),
4310
- [v.code.token.selector]: renderColor(t.code.token.selector, context),
4311
- [v.code.token.string]: renderColor(t.code.token.string, context),
4312
- [v.code.token.symbol]: renderColor(t.code.token.symbol, context),
4313
- [v.code.token.tag]: renderColor(t.code.token.tag, context),
4314
- [v.code.token.unit]: renderColor(t.code.token.unit, context),
4315
- [v.code.token.url]: renderColor(t.code.token.url, context),
4316
- [v.code.token.variable]: renderColor(t.code.token.variable, context),
4317
- // focus ring
4318
- [v.focusRing]: renderColor(t.focusRing, context),
4319
- // link
4320
- [v.link.fg]: renderColor(t.link.fg, context),
4321
- // shadow
4322
- [v.shadow.outline]: renderColor(t.shadow.outline, context),
4323
- [v.shadow.umbra]: renderColor(t.shadow.umbra, context),
4324
- [v.shadow.penumbra]: renderColor(t.shadow.penumbra, context),
4325
- [v.shadow.ambient]: renderColor(t.shadow.ambient, context)
4326
- };
3922
+ function unique(array) {
3923
+ return Array.from(new Set(array));
4327
3924
  }
4328
- function _compileTheme(theme) {
4329
- return theme.v3 ? _compileTheme_v3(theme.v3) : theme.v2 ? `/* v2 - not supported */
4330
- ` : `/* v0 - not supported */
4331
- `;
3925
+ const p = PREFIX === "__PREFIX__" ? "s-" : PREFIX;
3926
+ function _scopeClassName(className) {
3927
+ if (className !== void 0)
3928
+ return `${p}${className.trim()}`;
4332
3929
  }
4333
3930
  function _resp(prefix, prop) {
4334
3931
  if (!(prop === void 0 || prop === !1))
@@ -4338,335 +3935,310 @@ function _resp(prefix, prop) {
4338
3935
  return index === 0 ? className : `${index}:${className}`;
4339
3936
  }).filter(Boolean).join(" ") : (typeof prop == "boolean" ? [prefix] : [prefix, prop]).filter((s) => s === 0 || !!s).join("-").replace(/\./g, "_");
4340
3937
  }
4341
- function _getClassNames(...classNames) {
4342
- return classNames.map((n) => typeof n == "string" && n.trim()).filter(Boolean).join(" ").split(" ");
4343
- }
4344
- function composeClassNames(...classNames) {
4345
- return unique(_getClassNames(...classNames)).join(" ") || void 0;
4346
- }
4347
- function unique(array) {
4348
- return Array.from(new Set(array));
3938
+ function _scopeClassNames(...classNames) {
3939
+ return _getClassNames(...classNames).map(_scopeClassName).join(" ") || void 0;
4349
3940
  }
4350
3941
  function border(props) {
4351
- return composeClassNames(_resp("border", props.border), _resp("border-t", props.borderTop), _resp("border-r", props.borderRight), _resp("border-b", props.borderBottom), _resp("border-l", props.borderLeft));
3942
+ return _scopeClassNames(_resp("border", props.border), _resp("border-t", props.borderTop), _resp("border-r", props.borderRight), _resp("border-b", props.borderBottom), _resp("border-l", props.borderLeft));
3943
+ }
3944
+ function boxSizing(props) {
3945
+ return _scopeClassNames(_resp("box", props.boxSizing));
4352
3946
  }
4353
3947
  function display(props) {
4354
- return composeClassNames(_resp(void 0, props.display));
3948
+ return _scopeClassNames(_resp(void 0, props.display));
4355
3949
  }
4356
3950
  function flex(props) {
4357
- return composeClassNames(_resp("flex-align", props.align), _resp("f", props.direction), _resp("flex-justify", props.justify), _resp("flex", props.wrap));
3951
+ return _scopeClassNames(_resp("flex-align", props.align), _resp("f", props.direction), _resp("flex-justify", props.justify), _resp("flex", props.wrap));
4358
3952
  }
4359
3953
  function flexItem(props) {
4360
- return composeClassNames(_resp("f", props.flex));
3954
+ return _scopeClassNames(_resp("f", props.flex));
4361
3955
  }
4362
3956
  function font(props) {
4363
- return composeClassNames("font", props.weight && `font-${props.weight}`);
3957
+ return _scopeClassNames("font", props.weight && `font-${props.weight}`);
4364
3958
  }
4365
3959
  function gap(props) {
4366
- return composeClassNames(_resp("g", props.gap), _resp("gx", props.gapX), _resp("gy", props.gapY));
3960
+ return _scopeClassNames(_resp("g", props.gap), _resp("gx", props.gapX), _resp("gy", props.gapY));
4367
3961
  }
4368
3962
  function grid(props) {
4369
- return composeClassNames(_resp("auto-cols", props.autoCols), _resp("auto-flow", props.autoFlow), _resp("auto-rows", props.autoRows), _resp("cols", props.columns), _resp("rows", props.rows));
3963
+ return _scopeClassNames(_resp("auto-cols", props.autoCols), _resp("auto-flow", props.autoFlow), _resp("auto-rows", props.autoRows), _resp("cols", props.columns), _resp("rows", props.rows));
4370
3964
  }
4371
3965
  function gridItem(props) {
4372
- return composeClassNames(_resp("col", props.column), _resp("col-start", props.columnStart), _resp("col-end", props.columnEnd), _resp("row", props.row), _resp("row-start", props.rowStart), _resp("row-end", props.rowEnd));
3966
+ return _scopeClassNames(_resp("col", props.column), _resp("col-start", props.columnStart), _resp("col-end", props.columnEnd), _resp("row", props.row), _resp("row-start", props.rowStart), _resp("row-end", props.rowEnd));
4373
3967
  }
4374
3968
  function height(props) {
4375
- return composeClassNames(_resp("h", props.height));
3969
+ return _scopeClassNames(_resp("h", props.height));
4376
3970
  }
4377
3971
  function inset(props) {
4378
- return composeClassNames(_resp("inset", props.inset), _resp("top", props.insetTop), _resp("right", props.insetRight), _resp("bottom", props.insetBottom), _resp("left", props.insetLeft));
3972
+ return _scopeClassNames(_resp("inset", props.inset), _resp("top", props.insetTop), _resp("right", props.insetRight), _resp("bottom", props.insetBottom), _resp("left", props.insetLeft));
4379
3973
  }
4380
3974
  function margin(props) {
4381
- return composeClassNames(_resp("m", props.margin), _resp("mx", props.marginX), _resp("my", props.marginY), _resp("mt", props.marginTop), _resp("mr", props.marginRight), _resp("mb", props.marginBottom), _resp("ml", props.marginLeft));
3975
+ return _scopeClassNames(_resp("m", props.margin), _resp("mx", props.marginX), _resp("my", props.marginY), _resp("mt", props.marginTop), _resp("mr", props.marginRight), _resp("mb", props.marginBottom), _resp("ml", props.marginLeft));
4382
3976
  }
4383
3977
  function maxWidth(props) {
4384
- return _resp("max-w", props.maxWidth) ?? "";
3978
+ return _scopeClassNames(_resp("max-w", props.maxWidth) ?? "");
4385
3979
  }
4386
3980
  function minWidth(props) {
4387
- return _resp("min-w", props.minWidth) ?? "";
3981
+ return _scopeClassNames(_resp("min-w", props.minWidth) ?? "");
4388
3982
  }
4389
3983
  function overflow(props) {
4390
- return composeClassNames(_resp("overflow", props.overflow), _resp("overflow-x", props.overflowX), _resp("overflow-y", props.overflowY));
3984
+ return _scopeClassNames(_resp("overflow", props.overflow), _resp("overflow-x", props.overflowX), _resp("overflow-y", props.overflowY));
4391
3985
  }
4392
3986
  function padding(props) {
4393
- return composeClassNames(_resp("p", props.padding), _resp("px", props.paddingX), _resp("py", props.paddingY), _resp("pt", props.paddingTop), _resp("pr", props.paddingRight), _resp("pb", props.paddingBottom), _resp("pl", props.paddingLeft));
3987
+ return _scopeClassNames(_resp("p", props.padding), _resp("px", props.paddingX), _resp("py", props.paddingY), _resp("pt", props.paddingTop), _resp("pr", props.paddingRight), _resp("pb", props.paddingBottom), _resp("pl", props.paddingLeft));
4394
3988
  }
4395
3989
  function pointerEvents(props) {
4396
- return composeClassNames(props.pointerEvents && `pointer-events-${props.pointerEvents}`);
3990
+ return _scopeClassNames(props.pointerEvents && `pointer-events-${props.pointerEvents}`);
4397
3991
  }
4398
3992
  function position(props) {
4399
- return composeClassNames(_resp("position", props.position));
3993
+ return _scopeClassNames(_resp("position", props.position));
4400
3994
  }
4401
3995
  function radius(props) {
4402
- return composeClassNames(_resp("r", props.radius));
3996
+ return _scopeClassNames(_resp("r", props.radius));
4403
3997
  }
4404
3998
  function shadow(props) {
4405
- return composeClassNames(_resp("shadow", props.shadow));
3999
+ return _scopeClassNames(_resp("shadow", props.shadow));
4406
4000
  }
4407
4001
  function textAlign(props) {
4408
- return composeClassNames(_resp("text-align", props.textAlign));
4409
- }
4410
- function scopeClassName(className) {
4411
- if (className !== void 0)
4412
- return `${PREFIX}${className.trim()}`;
4413
- }
4414
- function _comp(...classNames) {
4415
- return _getClassNames(...classNames).filter(Boolean).map(scopeClassName).join(" ") || void 0;
4002
+ return _scopeClassNames(_resp("text-align", props.textAlign));
4416
4003
  }
4417
4004
  function textOverflow(props) {
4418
- return _comp(props.textOverflow && `text-overflow-${props.textOverflow}`);
4005
+ return _scopeClassNames(props.textOverflow && `text-overflow-${props.textOverflow}`);
4419
4006
  }
4420
4007
  function width(props) {
4421
- return _resp("w", props.width) ?? "";
4008
+ return _scopeClassNames(_resp("w", props.width) ?? "");
4422
4009
  }
4423
4010
  function breadcrumbs() {
4424
- return _comp("breadcrumbs");
4011
+ return _scopeClassNames("breadcrumbs");
4425
4012
  }
4426
4013
  function dialog() {
4427
- return _comp("dialog", inset({
4014
+ return _composeClassNames(_scopeClassNames("dialog"), inset({
4428
4015
  inset: 0
4429
4016
  }));
4430
4017
  }
4431
4018
  function dialogContainer() {
4432
- return _comp("dialog-container");
4019
+ return _scopeClassNames("dialog-container");
4433
4020
  }
4434
4021
  function dialogCardRoot() {
4435
- return _comp("dialog-card-root");
4022
+ return _scopeClassNames("dialog-card-root");
4436
4023
  }
4437
4024
  function dialogLayout() {
4438
- return _comp("dialog-layout");
4025
+ return _scopeClassNames("dialog-layout");
4439
4026
  }
4440
4027
  function dialogHeader() {
4441
- return _comp("dialog-header");
4028
+ return _scopeClassNames("dialog-header");
4442
4029
  }
4443
4030
  function dialogContent() {
4444
- return _comp("dialog-content");
4031
+ return _scopeClassNames("dialog-content");
4445
4032
  }
4446
4033
  function dialogFooter() {
4447
- return _comp("dialog-footer");
4034
+ return _scopeClassNames("dialog-footer");
4448
4035
  }
4449
4036
  function menu() {
4450
- return _comp("menu");
4037
+ return _scopeClassNames("menu");
4451
4038
  }
4452
4039
  function menuDivider() {
4453
- return _comp("menu-divider");
4040
+ return _scopeClassNames("menu-divider");
4454
4041
  }
4455
4042
  function skeleton(props) {
4456
- return _comp("skeleton", radius(props));
4043
+ return _composeClassNames(_scopeClassNames("skeleton"), radius(props));
4457
4044
  }
4458
4045
  function codeSkeleton(props) {
4459
- return _comp("font-skeleton", _resp("code-skeleton", props.size));
4046
+ return _scopeClassNames("font-skeleton", _resp("code-skeleton", props.size));
4460
4047
  }
4461
4048
  function headingSkeleton(props) {
4462
- return _comp("font-skeleton", _resp("heading-skeleton", props.size));
4049
+ return _scopeClassNames("font-skeleton", _resp("heading-skeleton", props.size));
4463
4050
  }
4464
4051
  function labelSkeleton(props) {
4465
- return _comp("font-skeleton", _resp("label-skeleton", props.size));
4052
+ return _scopeClassNames("font-skeleton", _resp("label-skeleton", props.size));
4466
4053
  }
4467
4054
  function textSkeleton(props) {
4468
- return _comp("font-skeleton", _resp("text-skeleton", props.size));
4055
+ return _scopeClassNames("font-skeleton", _resp("text-skeleton", props.size));
4469
4056
  }
4470
4057
  function toastLayer() {
4471
- return _comp("toast-layer");
4058
+ return _scopeClassNames("toast-layer");
4472
4059
  }
4473
4060
  function toast() {
4474
- return _comp("toast");
4061
+ return _scopeClassNames("toast");
4475
4062
  }
4476
4063
  function toastLoadingBar() {
4477
- return _comp("toast-loading-bar");
4064
+ return _scopeClassNames("toast-loading-bar");
4478
4065
  }
4479
4066
  function toastLoadingBarProgress() {
4480
- return _comp("toast-loading-bar-progress");
4067
+ return _scopeClassNames("toast-loading-bar-progress");
4481
4068
  }
4482
4069
  function toastLoadingBarMask() {
4483
- return _comp("toast-loading-bar-mask");
4070
+ return _scopeClassNames("toast-loading-bar-mask");
4484
4071
  }
4485
4072
  function treeItem() {
4486
- return _comp("tree-item");
4073
+ return _scopeClassNames("tree-item");
4487
4074
  }
4075
+ const BREAKPOINTS = {
4076
+ 0: 0,
4077
+ 1: 360,
4078
+ 2: 600,
4079
+ 3: 900,
4080
+ 4: 1200,
4081
+ 5: 1800,
4082
+ 6: 2400
4083
+ };
4488
4084
  function _arrow() {
4489
- return _comp("arrow");
4085
+ return _scopeClassNames("arrow");
4490
4086
  }
4491
4087
  function _arrowStroke() {
4492
- return _comp("arrow-stroke");
4088
+ return _scopeClassNames("arrow-stroke");
4493
4089
  }
4494
4090
  function _arrowStrokeMask() {
4495
- return _comp("arrow-stroke-mask");
4091
+ return _scopeClassNames("arrow-stroke-mask");
4496
4092
  }
4497
4093
  function _arrowShape() {
4498
- return _comp("arrow-shape");
4094
+ return _scopeClassNames("arrow-shape");
4499
4095
  }
4500
4096
  function _input(props) {
4501
- return _comp("input", props.border ? "input-b" : void 0, _resp("input", props.fontSize), _resp("input-p", props.padding), _resp("input-g", props.gap), radius(props), width(props));
4097
+ return _composeClassNames(_scopeClassNames("input", props.border ? "input-b" : void 0, _resp("input", props.fontSize), _resp("input-p", props.padding), _resp("input-g", props.gap)), radius(props), width(props));
4502
4098
  }
4503
4099
  function _inputElement() {
4504
- return _comp("input-element");
4100
+ return _scopeClassNames("input-element");
4505
4101
  }
4506
4102
  function _inputPresentation() {
4507
- return _comp("input-presentation");
4103
+ return _scopeClassNames("input-presentation");
4508
4104
  }
4509
4105
  function _selectable(props) {
4510
- return _comp("selectable", props.tone ?? "default", radius(props));
4106
+ return _composeClassNames(_scopeClassNames("selectable", props.tone ?? "default"), radius(props));
4511
4107
  }
4512
4108
  function avatar(props) {
4513
- return _comp("avatar", props.color || "gray", _resp("avatar", props.size));
4109
+ return _scopeClassNames("avatar", props.color || "gray", _resp("avatar", props.size));
4514
4110
  }
4515
4111
  function avatarArrow() {
4516
- return _comp("avatar-arrow");
4112
+ return _scopeClassNames("avatar-arrow");
4517
4113
  }
4518
4114
  function avatarInitials() {
4519
- return _comp("avatar-initials");
4115
+ return _scopeClassNames("avatar-initials");
4520
4116
  }
4521
4117
  function avatarImage() {
4522
- return _comp("avatar-image");
4118
+ return _scopeClassNames("avatar-image");
4523
4119
  }
4524
4120
  function avatarCounter(props) {
4525
- return _comp("avatar-counter", _resp("avatar", props.size));
4121
+ return _scopeClassNames("avatar-counter", _resp("avatar", props.size));
4526
4122
  }
4527
4123
  function avatarStack(props) {
4528
- return _comp("avatar-stack", _resp("avatar", props.size));
4124
+ return _scopeClassNames("avatar-stack", _resp("avatar", props.size));
4529
4125
  }
4530
4126
  function badge(props) {
4531
- return _comp("badge", props.tone && `badge-${props.tone}`, radius(props));
4127
+ return _composeClassNames(_scopeClassNames("badge", props.tone && `badge-${props.tone}`), radius(props));
4532
4128
  }
4533
4129
  function box(props) {
4534
- return _comp(
4535
- "box",
4536
- props.muted && "muted",
4537
- // todo: consider this naming
4538
- _resp("box", props.sizing),
4539
- border(props),
4540
- display(props),
4541
- height(props),
4542
- flex(props),
4543
- flexItem(props),
4544
- grid(props),
4545
- gridItem(props),
4546
- gap(props),
4547
- inset(props),
4548
- margin(props),
4549
- maxWidth(props),
4550
- minWidth(props),
4551
- props.outline && `outline-${props.outline}`,
4552
- overflow(props),
4553
- padding(props),
4554
- pointerEvents(props),
4555
- position(props),
4556
- radius(props),
4557
- textAlign(props),
4558
- width(props)
4559
- );
4130
+ return _composeClassNames(_scopeClassNames("box", props.muted && "muted", props.outline && `outline-${props.outline}`), border(props), boxSizing({
4131
+ boxSizing: props.sizing
4132
+ }), display(props), height(props), flex(props), flexItem(props), grid(props), gridItem(props), gap(props), inset(props), margin(props), maxWidth(props), minWidth(props), overflow(props), padding(props), pointerEvents(props), position(props), radius(props), textAlign(props), width(props));
4560
4133
  }
4561
4134
  function button(props) {
4562
- return _comp("button", display(props), flexItem(props), radius(props), width(props));
4135
+ return _composeClassNames(_scopeClassNames("button"), display(props), flexItem(props), radius(props), width(props));
4563
4136
  }
4564
4137
  function buttonLoadingBox() {
4565
- return "button-loading-box";
4138
+ return _scopeClassNames("button-loading-box");
4566
4139
  }
4567
4140
  function card(props) {
4568
- return _comp(props.scheme, props.tone ?? "default", "card", props.checkered && "card-checkered", shadow(props));
4141
+ return _composeClassNames(_scopeClassNames(props.scheme, props.tone, "card", props.checkered && "card-checkered"), shadow(props));
4569
4142
  }
4570
4143
  function checkbox() {
4571
- return _comp("checkbox");
4144
+ return _scopeClassNames("checkbox");
4572
4145
  }
4573
4146
  function checkboxInput() {
4574
- return _comp("checkbox-input");
4147
+ return _scopeClassNames("checkbox-input");
4575
4148
  }
4576
4149
  function code(props) {
4577
- return _comp("code", "block", font(props), _resp("code", props.size));
4150
+ return _composeClassNames(_scopeClassNames("code", "block", _resp("code", props.size)), font(props));
4578
4151
  }
4579
4152
  function container(props) {
4580
- return _comp("container", maxWidth({
4153
+ return _composeClassNames(_scopeClassNames("container"), maxWidth({
4581
4154
  maxWidth: props.width
4582
4155
  }));
4583
4156
  }
4584
4157
  function heading(props) {
4585
- return _comp("block", "heading", font(props), props.accent && "heading-accent", props.muted && "heading-muted", _resp("heading", props.size), flexItem(props), textAlign({
4158
+ return _composeClassNames(_scopeClassNames("block", "heading", props.muted && "heading-muted", _resp("heading", props.size)), font(props), flexItem(props), textAlign({
4586
4159
  textAlign: props.align
4587
4160
  }));
4588
4161
  }
4589
4162
  function kbd(props) {
4590
- return _comp("kbd", radius(props));
4163
+ return _composeClassNames(_scopeClassNames("kbd"), radius(props));
4591
4164
  }
4592
4165
  function label(props) {
4593
- return _comp("label", "block", font(props), props.accent && "label-accent", props.muted && "label-muted", _resp("label", props.size), textAlign({
4166
+ return _composeClassNames(_scopeClassNames("label", "block", props.muted && "label-muted", _resp("label", props.size)), font(props), textAlign({
4594
4167
  textAlign: props.align
4595
4168
  }));
4596
4169
  }
4597
4170
  function popover() {
4598
- return _comp("popover");
4171
+ return _scopeClassNames("popover");
4599
4172
  }
4600
4173
  function popoverCard() {
4601
- return _comp("popover-card");
4174
+ return _scopeClassNames("popover-card");
4602
4175
  }
4603
4176
  function radio() {
4604
- return _comp("radio");
4177
+ return _scopeClassNames("radio");
4605
4178
  }
4606
4179
  function select(props) {
4607
- return composeClassNames(_comp("select"), _input(props));
4180
+ return _composeClassNames(_scopeClassNames("select"), _input(props));
4608
4181
  }
4609
4182
  function selectPresentation() {
4610
- return composeClassNames(_comp("select-presentation"), _inputPresentation());
4183
+ return _composeClassNames(_scopeClassNames("select-presentation"), _inputPresentation());
4611
4184
  }
4612
4185
  function spinner() {
4613
- return _comp("spinner");
4186
+ return _scopeClassNames("spinner");
4614
4187
  }
4615
4188
  function animatedSpinnerIcon() {
4616
- return _comp("animated-spinner-icon");
4189
+ return _scopeClassNames("animated-spinner-icon");
4617
4190
  }
4618
4191
  function stack() {
4619
- return _comp("stack");
4192
+ return _scopeClassNames("stack");
4620
4193
  }
4621
4194
  function _switch() {
4622
- return _comp("switch");
4195
+ return _scopeClassNames("switch");
4623
4196
  }
4624
4197
  function _switchElement() {
4625
- return _comp("switch-element");
4198
+ return _scopeClassNames("switch-element");
4626
4199
  }
4627
4200
  function _switchPresentation() {
4628
- return _comp("switch-presentation");
4201
+ return _scopeClassNames("switch-presentation");
4629
4202
  }
4630
4203
  function _switchThumb() {
4631
- return _comp("switch-thumb");
4204
+ return _scopeClassNames("switch-thumb");
4632
4205
  }
4633
4206
  function _switchTrack() {
4634
- return _comp("switch-track");
4207
+ return _scopeClassNames("switch-track");
4635
4208
  }
4636
4209
  function text(props) {
4637
- return _comp("text", "block", flexItem(props), font(props), props.accent && "text-accent", props.muted && "text-muted", _resp("text", props.size), textAlign({
4210
+ return _composeClassNames(_scopeClassNames("text", "block", props.muted && "text-muted", _resp("text", props.size)), flexItem(props), font(props), textAlign({
4638
4211
  textAlign: props.align
4639
4212
  }));
4640
4213
  }
4641
4214
  function textArea(props) {
4642
- return composeClassNames(_comp("text-area"), _input(props));
4215
+ return _composeClassNames(_scopeClassNames("text-area"), _input(props));
4643
4216
  }
4644
4217
  function textInput(props) {
4645
- return composeClassNames(_input(props), _comp("text-input"));
4218
+ return _composeClassNames(_scopeClassNames("text-input"), _input(props));
4646
4219
  }
4647
4220
  function tooltip() {
4648
- return _comp("tooltip");
4221
+ return _scopeClassNames("tooltip");
4649
4222
  }
4650
4223
  function tooltipCard() {
4651
- return _comp("tooltip-card");
4224
+ return _scopeClassNames("tooltip-card");
4652
4225
  }
4653
4226
  function srOnly() {
4654
- return _comp(composeClassNames("sr-only"));
4227
+ return _scopeClassNames(_composeClassNames("sr-only"));
4655
4228
  }
4656
4229
  export {
4657
4230
  BREAKPOINTS,
4658
- PREFIX,
4659
4231
  _arrow,
4660
4232
  _arrowShape,
4661
4233
  _arrowStroke,
4662
4234
  _arrowStrokeMask,
4663
- _compilePalette,
4664
4235
  _compileSystem,
4665
4236
  _compileTheme,
4666
- _getClassNames,
4237
+ _composeClassNames,
4667
4238
  _input,
4668
4239
  _inputElement,
4669
4240
  _inputPresentation,
4241
+ _scopeClassName,
4670
4242
  _selectable,
4671
4243
  _switch,
4672
4244
  _switchElement,
@@ -4683,6 +4255,7 @@ export {
4683
4255
  badge,
4684
4256
  border,
4685
4257
  box,
4258
+ boxSizing,
4686
4259
  breadcrumbs,
4687
4260
  button,
4688
4261
  buttonLoadingBox,
@@ -4691,7 +4264,6 @@ export {
4691
4264
  checkboxInput,
4692
4265
  code,
4693
4266
  codeSkeleton,
4694
- composeClassNames,
4695
4267
  container,
4696
4268
  dialog,
4697
4269
  dialogCardRoot,
@@ -4727,11 +4299,11 @@ export {
4727
4299
  popover,
4728
4300
  popoverCard,
4729
4301
  position,
4730
- px,
4302
+ properties,
4303
+ px$1 as px,
4731
4304
  radio,
4732
4305
  radius,
4733
- rem,
4734
- scopeClassName,
4306
+ rem$1 as rem,
4735
4307
  select,
4736
4308
  selectPresentation,
4737
4309
  shadow,
@@ -4745,7 +4317,7 @@ export {
4745
4317
  textInput,
4746
4318
  textOverflow,
4747
4319
  textSkeleton,
4748
- toBoxShadow,
4320
+ toBoxShadow$1 as toBoxShadow,
4749
4321
  toast,
4750
4322
  toastLayer,
4751
4323
  toastLoadingBar,