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