@sanity/ui 2.10.0-corel.0 → 3.0.0-static.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/bin/ui.js +6 -0
  2. package/dist/_chunks-cjs/buildCommand.js +2836 -0
  3. package/dist/_chunks-cjs/buildCommand.js.map +1 -0
  4. package/dist/_chunks-cjs/getTheme_v2.js +1 -27
  5. package/dist/_chunks-cjs/getTheme_v2.js.map +1 -1
  6. package/dist/_chunks-es/getTheme_v2.mjs +1 -27
  7. package/dist/_chunks-es/getTheme_v2.mjs.map +1 -1
  8. package/dist/_legacy/getTheme_v2.esm.js +1 -27
  9. package/dist/_legacy/getTheme_v2.esm.js.map +1 -1
  10. package/dist/cli.d.ts +1 -0
  11. package/dist/cli.js +23 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/css.d.mts +943 -0
  14. package/dist/css.d.ts +943 -0
  15. package/dist/css.esm.js +3135 -0
  16. package/dist/css.esm.js.map +1 -0
  17. package/dist/css.js +3135 -0
  18. package/dist/css.js.map +1 -0
  19. package/dist/css.mjs +3135 -0
  20. package/dist/css.mjs.map +1 -0
  21. package/dist/index.d.mts +175 -164
  22. package/dist/index.d.ts +175 -164
  23. package/dist/index.esm.js +864 -1955
  24. package/dist/index.esm.js.map +1 -1
  25. package/dist/index.js +870 -1962
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +864 -1955
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/sanity-theme.css +25 -0
  30. package/dist/system.css +2953 -0
  31. package/dist/theme.d.mts +84 -22
  32. package/dist/theme.d.ts +84 -22
  33. package/dist/theme.esm.js +232 -283
  34. package/dist/theme.esm.js.map +1 -1
  35. package/dist/theme.js +232 -283
  36. package/dist/theme.js.map +1 -1
  37. package/dist/theme.mjs +232 -283
  38. package/dist/theme.mjs.map +1 -1
  39. package/exports/css.ts +1 -0
  40. package/package.json +25 -4
  41. package/src/core/__workshop__/constants.ts +15 -15
  42. package/src/core/__workshop__/fontsPlugin.tsx +1 -1
  43. package/src/core/components/autocomplete/autocomplete.styles.tsx +1 -1
  44. package/src/core/components/autocomplete/autocomplete.tsx +12 -4
  45. package/src/core/components/breadcrumbs/__workshop__/example.tsx +1 -3
  46. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -5
  47. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +14 -2
  48. package/src/core/components/breadcrumbs/breadcrumbs.tsx +14 -9
  49. package/src/core/components/dialog/__workshop__/panes.tsx +1 -1
  50. package/src/core/components/dialog/dialog.tsx +77 -92
  51. package/src/core/components/hotkeys/hotkeys.tsx +18 -29
  52. package/src/core/components/menu/menu.tsx +8 -5
  53. package/src/core/components/menu/menuDivider.ts +2 -1
  54. package/src/core/components/menu/menuGroup.tsx +16 -8
  55. package/src/core/components/menu/menuItem.tsx +23 -14
  56. package/src/core/components/skeleton/skeleton.tsx +1 -1
  57. package/src/core/components/skeleton/styles.ts +1 -1
  58. package/src/core/components/skeleton/textSkeleton.tsx +1 -1
  59. package/src/core/components/tab/tab.tsx +6 -7
  60. package/src/core/components/tab/tabList.tsx +3 -2
  61. package/src/core/components/toast/styles.ts +1 -1
  62. package/src/core/components/toast/toast.tsx +6 -4
  63. package/src/core/components/toast/toastProvider.tsx +31 -22
  64. package/src/core/components/tree/style.ts +1 -1
  65. package/src/core/components/tree/tree.tsx +8 -2
  66. package/src/core/components/tree/treeGroup.tsx +1 -1
  67. package/src/core/components/tree/treeItem.tsx +38 -25
  68. package/src/core/components/tree/types.ts +5 -1
  69. package/src/core/lib/styled/elements.ts +135 -0
  70. package/src/core/lib/styled/index.ts +2 -0
  71. package/src/core/lib/styled/members.ts +15 -0
  72. package/src/core/lib/styled/styled.ts +79 -0
  73. package/src/core/primitives/_selectable/selectable.tsx +27 -14
  74. package/src/core/primitives/avatar/avatar.tsx +52 -32
  75. package/src/core/primitives/avatar/avatarCounter.tsx +1 -1
  76. package/src/core/primitives/avatar/avatarStack.tsx +1 -1
  77. package/src/core/primitives/badge/__workshop__/tones.tsx +9 -16
  78. package/src/core/primitives/badge/badge.tsx +18 -20
  79. package/src/core/primitives/box/box.tsx +62 -74
  80. package/src/core/primitives/button/__workshop__/props.tsx +3 -1
  81. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +1 -1
  82. package/src/core/primitives/button/__workshop__/styled1.tsx +1 -1
  83. package/src/core/primitives/button/__workshop__/styled2.tsx +1 -1
  84. package/src/core/primitives/button/button.tsx +38 -45
  85. package/src/core/primitives/button/styles.ts +2 -2
  86. package/src/core/primitives/card/RootCardContext.ts +3 -0
  87. package/src/core/primitives/card/__workshop__/selected.tsx +1 -1
  88. package/src/core/primitives/card/__workshop__/styled.tsx +1 -1
  89. package/src/core/primitives/card/card.tsx +44 -46
  90. package/src/core/primitives/card/styles.ts +1 -1
  91. package/src/core/primitives/checkbox/checkbox.tsx +6 -8
  92. package/src/core/primitives/code/code.tsx +23 -12
  93. package/src/core/primitives/code/styles.ts +1 -1
  94. package/src/core/primitives/container/container.tsx +7 -15
  95. package/src/core/primitives/flex/__workshop__/example.tsx +1 -1
  96. package/src/core/primitives/flex/flex.tsx +6 -19
  97. package/src/core/primitives/grid/grid.tsx +2 -1
  98. package/src/core/primitives/heading/heading.tsx +32 -19
  99. package/src/core/primitives/heading/styles.ts +1 -1
  100. package/src/core/primitives/inline/inline.tsx +22 -13
  101. package/src/core/primitives/kbd/kbd.tsx +30 -37
  102. package/src/core/primitives/label/label.tsx +15 -4
  103. package/src/core/primitives/label/styles.ts +1 -1
  104. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -1
  105. package/src/core/primitives/popover/popover.tsx +21 -15
  106. package/src/core/primitives/popover/popoverCard.tsx +36 -38
  107. package/src/core/primitives/radio/radio.tsx +1 -1
  108. package/src/core/primitives/radio/styles.ts +1 -1
  109. package/src/core/primitives/select/select.tsx +1 -1
  110. package/src/core/primitives/select/styles.ts +1 -1
  111. package/src/core/primitives/spinner/spinner.tsx +6 -20
  112. package/src/core/primitives/stack/stack.tsx +12 -10
  113. package/src/core/primitives/switch/styles.ts +9 -9
  114. package/src/core/primitives/switch/switch.tsx +20 -21
  115. package/src/core/primitives/text/__workshop__/colored.tsx +1 -1
  116. package/src/core/primitives/text/styles.ts +1 -2
  117. package/src/core/primitives/text/text.tsx +17 -21
  118. package/src/core/primitives/textArea/textArea.tsx +1 -1
  119. package/src/core/primitives/textInput/__workshop__/plain.tsx +1 -1
  120. package/src/core/primitives/textInput/textInput.tsx +176 -123
  121. package/src/core/primitives/tooltip/tooltip.test.tsx +1 -0
  122. package/src/core/primitives/tooltip/tooltip.tsx +13 -13
  123. package/src/core/primitives/tooltip/tooltipCard.tsx +15 -14
  124. package/src/core/primitives/types.ts +35 -16
  125. package/src/core/styles/border/borderStyle.ts +6 -0
  126. package/src/core/styles/border/types.ts +1 -0
  127. package/src/core/styles/box/boxStyle.ts +6 -0
  128. package/src/core/styles/card/_cardColorStyle.ts +0 -8
  129. package/src/core/styles/flex/flexStyle.ts +0 -18
  130. package/src/core/styles/flex/types.ts +1 -3
  131. package/src/core/styles/grid/gridStyle.ts +0 -10
  132. package/src/core/styles/helpers.ts +9 -0
  133. package/src/core/styles/input/textInputStyle.ts +1 -1
  134. package/src/core/theme/__workshop__/build/Root.tsx +1 -1
  135. package/src/core/theme/themeProvider.tsx +1 -1
  136. package/src/core/theme/useTheme.ts +1 -1
  137. package/src/core/types/avatar.ts +6 -1
  138. package/src/core/types/button.ts +1 -0
  139. package/src/core/types/flex.ts +27 -26
  140. package/src/core/types/gridItem.ts +32 -24
  141. package/src/core/types/radius.ts +7 -4
  142. package/src/core/utils/arrow/arrow.tsx +1 -1
  143. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +1 -1
  144. package/src/core/utils/layer/layer.tsx +28 -11
  145. package/src/core/utils/srOnly/srOnly.tsx +1 -1
  146. package/src/core/utils/virtualList/virtualList.tsx +1 -1
  147. package/src/css/_resp.ts +28 -0
  148. package/src/css/cli/buildCommand.ts +36 -0
  149. package/src/css/cli/index.ts +38 -0
  150. package/src/css/compile/comileRules.ts +59 -0
  151. package/src/css/compile/compileRule.ts +58 -0
  152. package/src/css/compile/compileSystem.ts +7 -0
  153. package/src/css/compile/compileTheme.ts +509 -0
  154. package/src/css/components/breadcrumbs/breadcrumbs.ts +5 -0
  155. package/src/css/components/breadcrumbs/index.ts +1 -0
  156. package/src/css/components/breadcrumbs/rules.ts +7 -0
  157. package/src/css/components/dialog/classes.ts +29 -0
  158. package/src/css/components/dialog/index.ts +1 -0
  159. package/src/css/components/dialog/rules.ts +75 -0
  160. package/src/css/components/tree/index.ts +1 -0
  161. package/src/css/components/tree/rules.ts +52 -0
  162. package/src/css/components/tree/tree.ts +5 -0
  163. package/src/css/composeClassNames.ts +3 -0
  164. package/src/css/index.ts +47 -0
  165. package/src/css/primitives/avatar/avatar.ts +32 -0
  166. package/src/css/primitives/avatar/index.ts +2 -0
  167. package/src/css/primitives/avatar/rules.ts +190 -0
  168. package/src/css/primitives/avatar/types.ts +9 -0
  169. package/src/css/primitives/badge/badge.ts +8 -0
  170. package/src/css/primitives/badge/index.ts +2 -0
  171. package/src/css/primitives/badge/rules.ts +25 -0
  172. package/src/css/primitives/badge/types.ts +8 -0
  173. package/src/css/primitives/box/box.ts +34 -0
  174. package/src/css/primitives/box/index.ts +2 -0
  175. package/src/css/primitives/box/rules.ts +25 -0
  176. package/src/css/primitives/box/types.ts +49 -0
  177. package/src/css/primitives/button/button.ts +26 -0
  178. package/src/css/primitives/button/index.ts +1 -0
  179. package/src/css/primitives/button/rules.ts +58 -0
  180. package/src/css/primitives/card/card.ts +21 -0
  181. package/src/css/primitives/card/index.ts +1 -0
  182. package/src/css/primitives/card/rules.ts +93 -0
  183. package/src/{core/primitives/checkbox/styles.ts → css/primitives/checkbox/__styles.ts} +3 -3
  184. package/src/css/primitives/checkbox/checkbox.ts +9 -0
  185. package/src/css/primitives/checkbox/index.ts +1 -0
  186. package/src/css/primitives/checkbox/rules.ts +136 -0
  187. package/src/css/primitives/code/code.ts +9 -0
  188. package/src/css/primitives/code/index.ts +2 -0
  189. package/src/css/primitives/code/rules.ts +71 -0
  190. package/src/css/primitives/code/types.ts +10 -0
  191. package/src/css/primitives/container/container.ts +7 -0
  192. package/src/css/primitives/container/index.ts +2 -0
  193. package/src/css/primitives/container/rules.ts +8 -0
  194. package/src/css/primitives/container/types.ts +6 -0
  195. package/src/css/primitives/heading/heading.ts +16 -0
  196. package/src/css/primitives/heading/index.ts +2 -0
  197. package/src/css/primitives/heading/rules.ts +84 -0
  198. package/src/css/primitives/heading/types.ts +12 -0
  199. package/src/css/primitives/kbd/index.ts +2 -0
  200. package/src/css/primitives/kbd/kbd.ts +7 -0
  201. package/src/css/primitives/kbd/rules.ts +20 -0
  202. package/src/css/primitives/kbd/types.ts +5 -0
  203. package/src/css/primitives/label/index.ts +2 -0
  204. package/src/css/primitives/label/label.ts +16 -0
  205. package/src/css/primitives/label/rules.ts +85 -0
  206. package/src/css/primitives/label/types.ts +12 -0
  207. package/src/css/primitives/popover/index.ts +1 -0
  208. package/src/css/primitives/popover/popover.ts +5 -0
  209. package/src/css/primitives/popover/rules.ts +5 -0
  210. package/src/css/primitives/radio/index.ts +1 -0
  211. package/src/css/primitives/radio/radio.ts +5 -0
  212. package/src/css/primitives/radio/rules.ts +5 -0
  213. package/src/css/primitives/select/index.ts +1 -0
  214. package/src/css/primitives/select/rules.ts +5 -0
  215. package/src/css/primitives/select/select.ts +5 -0
  216. package/src/{core/primitives/_selectable/style.ts → css/primitives/selectable/__style.ts} +5 -4
  217. package/src/css/primitives/selectable/index.ts +2 -0
  218. package/src/css/primitives/selectable/rules.ts +27 -0
  219. package/src/css/primitives/selectable/selectable.ts +9 -0
  220. package/src/css/primitives/selectable/types.ts +6 -0
  221. package/src/css/primitives/spinner/index.ts +1 -0
  222. package/src/css/primitives/spinner/rules.ts +22 -0
  223. package/src/css/primitives/spinner/spinner.ts +5 -0
  224. package/src/css/primitives/switch/index.ts +1 -0
  225. package/src/css/primitives/switch/rules.ts +132 -0
  226. package/src/css/primitives/switch/switch.ts +5 -0
  227. package/src/css/primitives/text/index.ts +2 -0
  228. package/src/css/primitives/text/rules.ts +75 -0
  229. package/src/css/primitives/text/text.ts +16 -0
  230. package/src/css/primitives/text/types.ts +11 -0
  231. package/src/css/primitives/textArea/index.ts +1 -0
  232. package/src/css/primitives/textArea/rules.ts +5 -0
  233. package/src/css/primitives/textArea/textArea.ts +5 -0
  234. package/src/css/primitives/textInput/index.ts +1 -0
  235. package/src/css/primitives/textInput/rules.ts +226 -0
  236. package/src/css/primitives/textInput/textInput.ts +7 -0
  237. package/src/css/primitives/token/rules.ts +45 -0
  238. package/src/css/primitives/tooltip/index.ts +1 -0
  239. package/src/css/primitives/tooltip/rules.ts +17 -0
  240. package/src/css/primitives/tooltip/tooltip.ts +9 -0
  241. package/src/css/responsiveRules.ts +25 -0
  242. package/src/css/rules.ts +121 -0
  243. package/src/css/styles/border/border.ts +22 -0
  244. package/src/css/styles/border/index.ts +2 -0
  245. package/src/css/styles/border/rules.ts +24 -0
  246. package/src/css/styles/border/types.ts +10 -0
  247. package/src/css/styles/display/rules.ts +62 -0
  248. package/src/css/styles/flex/flex.ts +20 -0
  249. package/src/css/styles/flex/index.ts +2 -0
  250. package/src/css/styles/flex/rules.ts +28 -0
  251. package/src/css/styles/flex/types.ts +35 -0
  252. package/src/css/styles/flexItem/flexItem.ts +8 -0
  253. package/src/css/styles/flexItem/index.ts +2 -0
  254. package/src/css/styles/flexItem/rules.ts +11 -0
  255. package/src/css/styles/flexItem/types.ts +11 -0
  256. package/src/css/styles/font/font.ts +12 -0
  257. package/src/css/styles/font/index.ts +2 -0
  258. package/src/css/styles/font/rules.ts +125 -0
  259. package/src/css/styles/font/types.ts +6 -0
  260. package/src/css/styles/gap/gap.ts +8 -0
  261. package/src/css/styles/gap/index.ts +2 -0
  262. package/src/css/styles/gap/rules.ts +33 -0
  263. package/src/css/styles/gap/types.ts +9 -0
  264. package/src/css/styles/grid/rules.ts +35 -0
  265. package/src/css/styles/gridItem/gridItem.ts +15 -0
  266. package/src/css/styles/gridItem/index.ts +2 -0
  267. package/src/css/styles/gridItem/rules.ts +96 -0
  268. package/src/css/styles/gridItem/types.ts +41 -0
  269. package/src/css/styles/height/rules.ts +7 -0
  270. package/src/css/styles/margin/index.ts +2 -0
  271. package/src/css/styles/margin/margin.ts +15 -0
  272. package/src/css/styles/margin/rules.ts +59 -0
  273. package/src/css/styles/margin/types.ts +11 -0
  274. package/src/css/styles/maxWidth/index.ts +2 -0
  275. package/src/css/styles/maxWidth/maxWidth.ts +6 -0
  276. package/src/css/styles/maxWidth/rules.ts +36 -0
  277. package/src/css/styles/maxWidth/types.ts +6 -0
  278. package/src/css/styles/overflow/rules.ts +9 -0
  279. package/src/css/styles/padding/index.ts +2 -0
  280. package/src/css/styles/padding/padding.ts +15 -0
  281. package/src/css/styles/padding/rules.ts +59 -0
  282. package/src/css/styles/padding/types.ts +12 -0
  283. package/src/css/styles/pointerEvents/index.ts +2 -0
  284. package/src/css/styles/pointerEvents/pointerEvents.ts +6 -0
  285. package/src/css/styles/pointerEvents/rules.ts +11 -0
  286. package/src/css/styles/pointerEvents/types.ts +7 -0
  287. package/src/css/styles/position/index.ts +2 -0
  288. package/src/css/styles/position/position.ts +7 -0
  289. package/src/css/styles/position/rules.ts +31 -0
  290. package/src/css/styles/position/types.ts +13 -0
  291. package/src/css/styles/radius/index.ts +2 -0
  292. package/src/css/styles/radius/radius.ts +8 -0
  293. package/src/css/styles/radius/rules.ts +13 -0
  294. package/src/css/styles/radius/types.ts +7 -0
  295. package/src/css/styles/shadow/rules.ts +53 -0
  296. package/src/css/styles/width/index.ts +2 -0
  297. package/src/css/styles/width/rules.ts +7 -0
  298. package/src/css/styles/width/types.ts +8 -0
  299. package/src/css/styles/width/width.ts +6 -0
  300. package/src/css/types.ts +591 -0
  301. package/src/css/varNames.ts +381 -0
  302. package/src/css/vars.ts +313 -0
  303. package/src/theme/build/_deprecated/color/factory.ts +1 -1
  304. package/src/theme/build/_deprecated/color/muted/createMuted.ts +2 -2
  305. package/src/theme/build/buildColorTheme.ts +39 -45
  306. package/src/theme/build/renderColorTheme.ts +65 -239
  307. package/src/theme/build/resolveColorTokens.ts +115 -51
  308. package/src/theme/config/tokens/color/types.ts +18 -4
  309. package/src/theme/defaults/colorTokens.ts +10 -17
  310. package/src/theme/defaults/config.ts +1 -1
  311. package/src/theme/getScopedTheme.ts +2 -9
  312. package/src/theme/system/_constants.ts +25 -0
  313. package/src/theme/system/_types.ts +41 -0
  314. package/src/theme/system/color/_constants.ts +0 -8
  315. package/src/theme/system/color/badge.ts +7 -3
  316. package/src/theme/system/index.ts +2 -0
  317. package/src/theme/system/v0/color/_system.ts +4 -8
  318. package/src/theme/system/v0/color/color.ts +2 -3
  319. package/src/theme/versioning/themeColor_v0_v2.ts +0 -26
  320. package/src/theme/versioning/v0_v2.ts +0 -4
  321. package/src/core/components/breadcrumbs/__workshop__/buttons.tsx +0 -58
  322. package/src/core/components/dialog/styles.ts +0 -76
@@ -0,0 +1,3135 @@
1
+ import { THEME_COLOR_AVATAR_COLORS, SPACE, THEME_COLOR_CARD_TONES, THEME_COLOR_STATE_TONES, THEME_COLOR_INPUT_MODES, THEME_COLOR_INPUT_STATES, THEME_COLOR_BUTTON_MODES } from "@sanity/ui/theme";
2
+ const breadcrumbsRules = {
3
+ breadcrumbs: {
4
+ lineHeight: 0
5
+ }
6
+ }, dialogRules = {
7
+ dialog: {
8
+ top: 0,
9
+ left: 0,
10
+ right: 0,
11
+ bottom: 0,
12
+ alignItems: "center",
13
+ justifyContent: "center",
14
+ outline: "none",
15
+ background: "var(--color-backdrop)",
16
+ "@keyframes": {
17
+ "dialog-zoom-in": {
18
+ from: {
19
+ opacity: 0,
20
+ transform: "scale(0.95)"
21
+ },
22
+ to: {
23
+ opacity: 1,
24
+ transform: "scale(1)"
25
+ }
26
+ },
27
+ "dialog-fade-in": {
28
+ from: {
29
+ opacity: 0
30
+ },
31
+ to: {
32
+ opacity: 1
33
+ }
34
+ }
35
+ },
36
+ "@nest": {
37
+ "&[data-animate]": {
38
+ animation: "dialog-fade-in 200ms ease-out"
39
+ },
40
+ // Animates the dialog card.
41
+ '&[data-animate] > [data-ui="DialogCard"]': {
42
+ animation: "dialog-zoom-in 200ms ease-out"
43
+ }
44
+ }
45
+ },
46
+ "dialog-container": {
47
+ width: "100%",
48
+ height: "100%"
49
+ },
50
+ "dialog-card-root": {
51
+ width: "100%",
52
+ maxHeight: "100%",
53
+ overflow: ["hidden", "clip"]
54
+ },
55
+ "dialog-layout": {
56
+ width: "100%"
57
+ },
58
+ "dialog-header": {
59
+ zIndex: 2
60
+ },
61
+ "dialog-content": {
62
+ zIndex: 1,
63
+ outline: "none"
64
+ },
65
+ "dialog-footer": {
66
+ zIndex: 3
67
+ }
68
+ };
69
+ function responsiveRules(className, props) {
70
+ return {
71
+ [className]: props,
72
+ [`_1:${className}`]: {
73
+ "@media": { "screen and (min-width: 360px)": props }
74
+ },
75
+ [`_2:${className}`]: {
76
+ "@media": { "screen and (min-width: 600px)": props }
77
+ },
78
+ [`_3:${className}`]: {
79
+ "@media": { "screen and (min-width: 900px)": props }
80
+ },
81
+ [`_4:${className}`]: {
82
+ "@media": { "screen and (min-width: 1200px)": props }
83
+ },
84
+ [`_5:${className}`]: {
85
+ "@media": { "screen and (min-width: 1800px)": props }
86
+ },
87
+ [`_6:${className}`]: {
88
+ "@media": { "screen and (min-width: 2400px)": props }
89
+ }
90
+ };
91
+ }
92
+ const avatarRules = {
93
+ avatar: {
94
+ backgroundColor: "var(--avatar-bg-color)",
95
+ position: "relative",
96
+ boxSizing: "border-box",
97
+ userSelect: "none",
98
+ boxShadow: "0 0 0 1px var(--card-bg-color)",
99
+ "@nest": {
100
+ '&[data-status="inactive"]': {
101
+ opacity: 0.5
102
+ },
103
+ "& > svg:not([hidden])": {
104
+ display: "block"
105
+ },
106
+ /* &:is(button) */
107
+ '&[data-as="button"]': {
108
+ WebkitFontSmoothing: "inherit",
109
+ appearance: "none",
110
+ margin: 0,
111
+ padding: 0,
112
+ border: 0,
113
+ font: "inherit",
114
+ color: "inherit",
115
+ outline: "none"
116
+ },
117
+ '&[data-as="button"]:focus': {
118
+ // boxShadow: focusRingStyle({focusRing: avatar.focusRing}),
119
+ },
120
+ '&[data-as="button"]:focus:not(:focus-visible)': {
121
+ boxShadow: "none"
122
+ }
123
+ }
124
+ },
125
+ ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color) => ({
126
+ ...acc,
127
+ [`avatar-${color}`]: {
128
+ "--avatar-bg-color": `var(--card-avatar-${color}-bg-color)`,
129
+ "--avatar-fg-color": `var(--card-avatar-${color}-fg-color)`
130
+ }
131
+ }), {}),
132
+ "avatar-arrow": {
133
+ position: "absolute",
134
+ boxSizing: "border-box",
135
+ zIndex: 0,
136
+ opacity: 0,
137
+ transition: "all 0.2s linear",
138
+ transform: "rotate(-90deg) translate3d(0, 6px, 0)",
139
+ left: 0,
140
+ right: 0,
141
+ top: 0,
142
+ bottom: 0,
143
+ "@nest": {
144
+ "& > svg": {
145
+ width: "11px",
146
+ height: "7px",
147
+ position: "absolute",
148
+ top: "-5px",
149
+ left: "50%",
150
+ transform: "translateX(-6px)"
151
+ },
152
+ "& > svg:not([hidden])": {
153
+ display: "block"
154
+ },
155
+ ".arrow-position-inside > &": {
156
+ transform: "rotate(-90deg) translate3d(0, 6px, 0)",
157
+ opacity: 0
158
+ },
159
+ ".arrow-position-top > &": {
160
+ opacity: 1,
161
+ transform: "rotate(0deg)"
162
+ },
163
+ ".arrow-position-bottom > &": {
164
+ opacity: 1,
165
+ transform: "rotate(-180deg)"
166
+ }
167
+ }
168
+ },
169
+ ...responsiveRules("avatar-0", {
170
+ width: "var(--avatar-0-size)",
171
+ height: "var(--avatar-0-size)",
172
+ borderRadius: "var(--avatar-0-size)",
173
+ "@nest": {
174
+ "& > svg": {
175
+ width: "var(--avatar-0-size)",
176
+ height: "var(--avatar-0-size)",
177
+ borderRadius: "var(--avatar-0-size)"
178
+ }
179
+ }
180
+ }),
181
+ ...responsiveRules("avatar-1", {
182
+ width: "var(--avatar-1-size)",
183
+ height: "var(--avatar-1-size)",
184
+ borderRadius: "var(--avatar-1-size)",
185
+ "@nest": {
186
+ "& > svg": {
187
+ width: "var(--avatar-1-size)",
188
+ height: "var(--avatar-1-size)",
189
+ borderRadius: "var(--avatar-1-size)"
190
+ }
191
+ }
192
+ }),
193
+ ...responsiveRules("avatar-2", {
194
+ width: "var(--avatar-2-size)",
195
+ height: "var(--avatar-2-size)",
196
+ borderRadius: "var(--avatar-2-size)",
197
+ "@nest": {
198
+ "& > svg": {
199
+ width: "var(--avatar-2-size)",
200
+ height: "var(--avatar-2-size)",
201
+ borderRadius: "var(--avatar-2-size)"
202
+ }
203
+ }
204
+ }),
205
+ ...responsiveRules("avatar-3", {
206
+ width: "var(--avatar-3-size)",
207
+ height: "var(--avatar-3-size)",
208
+ borderRadius: "var(--avatar-3-size)",
209
+ "@nest": {
210
+ "& > svg": {
211
+ width: "var(--avatar-3-size)",
212
+ height: "var(--avatar-3-size)",
213
+ borderRadius: "var(--avatar-3-size)"
214
+ }
215
+ }
216
+ }),
217
+ "avatar-initials": {
218
+ width: "100%",
219
+ height: "100%",
220
+ color: "var(--avatar-fg-color)",
221
+ alignItems: "center",
222
+ justifyContent: "center",
223
+ textTransform: "uppercase",
224
+ textAlign: "center",
225
+ borderRadius: "50%",
226
+ "@nest": {
227
+ "&:not([hidden])": {
228
+ display: "flex"
229
+ }
230
+ }
231
+ },
232
+ "avatar-bg-stroke": {
233
+ strokeWidth: "4px",
234
+ stroke: "var(--card-bg-color)"
235
+ },
236
+ "avatar-stroke": {
237
+ strokeWidth: "2px",
238
+ stroke: "var(--avatar-bg-color)",
239
+ "@nest": {
240
+ '[data-status="editing"] &': {
241
+ strokeDasharray: "2 4",
242
+ strokeLinecap: "round"
243
+ }
244
+ }
245
+ },
246
+ "avatar-image": {
247
+ position: "relative"
248
+ }
249
+ }, varNames = {
250
+ color: {
251
+ dark: {
252
+ transparent: buildColorCardVarNames({ scheme: "dark", tone: "transparent" }),
253
+ default: buildColorCardVarNames({ scheme: "dark", tone: "default" }),
254
+ primary: buildColorCardVarNames({ scheme: "dark", tone: "primary" }),
255
+ positive: buildColorCardVarNames({ scheme: "dark", tone: "positive" }),
256
+ caution: buildColorCardVarNames({ scheme: "dark", tone: "caution" }),
257
+ critical: buildColorCardVarNames({ scheme: "dark", tone: "critical" })
258
+ },
259
+ light: {
260
+ transparent: buildColorCardVarNames({ scheme: "light", tone: "transparent" }),
261
+ default: buildColorCardVarNames({ scheme: "light", tone: "default" }),
262
+ primary: buildColorCardVarNames({ scheme: "light", tone: "primary" }),
263
+ positive: buildColorCardVarNames({ scheme: "light", tone: "positive" }),
264
+ caution: buildColorCardVarNames({ scheme: "light", tone: "caution" }),
265
+ critical: buildColorCardVarNames({ scheme: "light", tone: "critical" })
266
+ },
267
+ //
268
+ accent: {
269
+ fg: "--color-accent-fg"
270
+ },
271
+ avatar: {
272
+ gray: {
273
+ bg: "--color-avatar-gray-bg",
274
+ fg: "--color-avatar-gray-fg"
275
+ },
276
+ blue: {
277
+ bg: "--color-avatar-blue-bg",
278
+ fg: "--color-avatar-blue-fg"
279
+ },
280
+ purple: {
281
+ bg: "--color-avatar-purple-bg",
282
+ fg: "--color-avatar-purple-fg"
283
+ },
284
+ magenta: {
285
+ bg: "--color-avatar-magenta-bg",
286
+ fg: "--color-avatar-magenta-fg"
287
+ },
288
+ red: {
289
+ bg: "--color-avatar-red-bg",
290
+ fg: "--color-avatar-red-fg"
291
+ },
292
+ orange: {
293
+ bg: "--color-avatar-orange-bg",
294
+ fg: "--color-avatar-orange-fg"
295
+ },
296
+ yellow: {
297
+ bg: "--color-avatar-yellow-bg",
298
+ fg: "--color-avatar-yellow-fg"
299
+ },
300
+ green: {
301
+ bg: "--color-avatar-green-bg",
302
+ fg: "--color-avatar-green-fg"
303
+ },
304
+ cyan: {
305
+ bg: "--color-avatar-cyan-bg",
306
+ fg: "--color-avatar-cyan-fg"
307
+ }
308
+ },
309
+ badge: {
310
+ bg: "--color-badge-bg",
311
+ dot: "--color-badge-dot",
312
+ fg: "--color-badge-fg",
313
+ icon: "--color-badge-icon",
314
+ default: {
315
+ bg: "--color-badge-default-bg",
316
+ dot: "--color-badge-default-dot",
317
+ fg: "--color-badge-default-fg",
318
+ icon: "--color-badge-default-icon"
319
+ },
320
+ primary: {
321
+ bg: "--color-badge-primary-bg",
322
+ dot: "--color-badge-primary-dot",
323
+ fg: "--color-badge-primary-fg",
324
+ icon: "--color-badge-primary-icon"
325
+ },
326
+ positive: {
327
+ bg: "--color-badge-positive-bg",
328
+ dot: "--color-badge-positive-dot",
329
+ fg: "--color-badge-positive-fg",
330
+ icon: "--color-badge-positive-icon"
331
+ },
332
+ caution: {
333
+ bg: "--color-badge-caution-bg",
334
+ dot: "--color-badge-caution-dot",
335
+ fg: "--color-badge-caution-fg",
336
+ icon: "--color-badge-caution-icon"
337
+ },
338
+ critical: {
339
+ bg: "--color-badge-critical-bg",
340
+ dot: "--color-badge-critical-dot",
341
+ fg: "--color-badge-critical-fg",
342
+ icon: "--color-badge-critical-icon"
343
+ }
344
+ },
345
+ bg: "--color-bg",
346
+ border: "--color-border",
347
+ code: {
348
+ bg: "--color-code-bg",
349
+ fg: "--color-code-fg"
350
+ },
351
+ fg: "--color-fg",
352
+ icon: "--color-icon",
353
+ kbd: {
354
+ bg: "--color-kbd-bg",
355
+ border: "--color-kbd-border",
356
+ fg: "--color-kbd-fg"
357
+ },
358
+ link: {
359
+ fg: "--color-link-fg"
360
+ },
361
+ muted: {
362
+ bg: "--color-muted-bg",
363
+ fg: "--color-muted-fg"
364
+ },
365
+ shadow: {
366
+ outline: "--color-shadow-outline",
367
+ umbra: "--color-shadow-umbra",
368
+ penumbra: "--color-shadow-penumbra",
369
+ ambient: "--color-shadow-ambient"
370
+ },
371
+ skeleton: {
372
+ from: "--color-skeleton-from",
373
+ to: "--color-skeleton-to"
374
+ },
375
+ syntax: {
376
+ atrule: "--color-syntax-atrule",
377
+ attrName: "--color-syntax-attrName",
378
+ attrValue: "--color-syntax-attrValue",
379
+ attribute: "--color-syntax-attribute",
380
+ boolean: "--color-syntax-boolean",
381
+ builtin: "--color-syntax-builtin",
382
+ cdata: "--color-syntax-cdata",
383
+ char: "--color-syntax-char",
384
+ class: "--color-syntax-class",
385
+ className: "--color-syntax-className",
386
+ comment: "--color-syntax-comment",
387
+ constant: "--color-syntax-constant",
388
+ deleted: "--color-syntax-deleted",
389
+ doctype: "--color-syntax-doctype",
390
+ entity: "--color-syntax-entity",
391
+ function: "--color-syntax-function",
392
+ hexcode: "--color-syntax-hexcode",
393
+ id: "--color-syntax-id",
394
+ important: "--color-syntax-important",
395
+ inserted: "--color-syntax-inserted",
396
+ keyword: "--color-syntax-keyword",
397
+ number: "--color-syntax-number",
398
+ operator: "--color-syntax-operator",
399
+ prolog: "--color-syntax-prolog",
400
+ property: "--color-syntax-property",
401
+ pseudoClass: "--color-syntax-pseudoClass",
402
+ pseudoElement: "--color-syntax-pseudoElement",
403
+ punctuation: "--color-syntax-punctuation",
404
+ regex: "--color-syntax-regex",
405
+ selector: "--color-syntax-selector",
406
+ string: "--color-syntax-string",
407
+ symbol: "--color-syntax-symbol",
408
+ tag: "--color-syntax-tag",
409
+ unit: "--color-syntax-unit",
410
+ url: "--color-syntax-url",
411
+ variable: "--color-syntax-variable"
412
+ }
413
+ },
414
+ avatar: {
415
+ focusRing: {
416
+ offset: "--avatar-focus-ring-offset",
417
+ width: "--avatar-focus-ring-width"
418
+ }
419
+ },
420
+ space: Object.fromEntries(
421
+ SPACE.map((space) => [space, `--space-${space}`])
422
+ )
423
+ };
424
+ function buildColorCardVarNames(props) {
425
+ const { scheme, tone } = props, prefix = `--color-${scheme}-${tone}`;
426
+ return {
427
+ accent: {
428
+ fg: `${prefix}-accent-fg`
429
+ },
430
+ avatar: {
431
+ gray: {
432
+ bg: `${prefix}-avatar-gray-bg`,
433
+ fg: `${prefix}-avatar-gray-fg`
434
+ },
435
+ blue: {
436
+ bg: `${prefix}-avatar-blue-bg`,
437
+ fg: `${prefix}-avatar-blue-fg`
438
+ },
439
+ purple: {
440
+ bg: `${prefix}-avatar-purple-bg`,
441
+ fg: `${prefix}-avatar-purple-fg`
442
+ },
443
+ magenta: {
444
+ bg: `${prefix}-avatar-magenta-bg`,
445
+ fg: `${prefix}-avatar-magenta-fg`
446
+ },
447
+ red: {
448
+ bg: `${prefix}-avatar-red-bg`,
449
+ fg: `${prefix}-avatar-red-fg`
450
+ },
451
+ orange: {
452
+ bg: `${prefix}-avatar-orange-bg`,
453
+ fg: `${prefix}-avatar-gray-fg`
454
+ },
455
+ yellow: {
456
+ bg: `${prefix}-avatar-yellow-bg`,
457
+ fg: `${prefix}-avatar-yellow-fg`
458
+ },
459
+ green: {
460
+ bg: `${prefix}-avatar-green-bg`,
461
+ fg: `${prefix}-avatar-green-fg`
462
+ },
463
+ cyan: {
464
+ bg: `${prefix}-avatar-cyan-bg`,
465
+ fg: `${prefix}-avatar-yellow-fg`
466
+ }
467
+ },
468
+ backdrop: `${prefix}-backdrop`,
469
+ badge: {
470
+ default: {
471
+ bg: `${prefix}-badge-default-bg`,
472
+ dot: `${prefix}-badge-default-dot`,
473
+ fg: `${prefix}-badge-default-fg`,
474
+ icon: `${prefix}-badge-default-icon`
475
+ },
476
+ primary: {
477
+ bg: `${prefix}-badge-primary-bg`,
478
+ dot: `${prefix}-badge-primary-dot`,
479
+ fg: `${prefix}-badge-primary-fg`,
480
+ icon: `${prefix}-badge-primary-icon`
481
+ },
482
+ positive: {
483
+ bg: `${prefix}-badge-positive-bg`,
484
+ dot: `${prefix}-badge-positive-dot`,
485
+ fg: `${prefix}-badge-positive-fg`,
486
+ icon: `${prefix}-badge-positive-icon`
487
+ },
488
+ caution: {
489
+ bg: `${prefix}-badge-caution-bg`,
490
+ dot: `${prefix}-badge-caution-dot`,
491
+ fg: `${prefix}-badge-caution-fg`,
492
+ icon: `${prefix}-badge-caution-icon`
493
+ },
494
+ critical: {
495
+ bg: `${prefix}-badge-critical-bg`,
496
+ dot: `${prefix}-badge-critical-dot`,
497
+ fg: `${prefix}-badge-critical-fg`,
498
+ icon: `${prefix}-badge-critical-icon`
499
+ }
500
+ },
501
+ bg: `${prefix}-bg`,
502
+ border: `${prefix}-border`,
503
+ code: {
504
+ bg: `${prefix}-code-bg`,
505
+ fg: `${prefix}-code-fg`
506
+ },
507
+ fg: `${prefix}-fg`,
508
+ focusRing: `${prefix}-focus-ring`,
509
+ icon: `${prefix}-icon`,
510
+ input: {
511
+ default: {
512
+ enabled: buildColorInputStateVarNames({ mode: "default", scheme, state: "enabled", tone }),
513
+ hovered: buildColorInputStateVarNames({ mode: "default", scheme, state: "hovered", tone }),
514
+ readOnly: buildColorInputStateVarNames({ mode: "default", scheme, state: "readOnly", tone }),
515
+ disabled: buildColorInputStateVarNames({ mode: "default", scheme, state: "disabled", tone })
516
+ },
517
+ invalid: {
518
+ enabled: buildColorInputStateVarNames({ mode: "invalid", scheme, state: "enabled", tone }),
519
+ hovered: buildColorInputStateVarNames({ mode: "invalid", scheme, state: "hovered", tone }),
520
+ readOnly: buildColorInputStateVarNames({ mode: "invalid", scheme, state: "readOnly", tone }),
521
+ disabled: buildColorInputStateVarNames({ mode: "invalid", scheme, state: "disabled", tone })
522
+ }
523
+ },
524
+ kbd: {
525
+ bg: `${prefix}-kbd-bg`,
526
+ border: `${prefix}-kbd-border`,
527
+ fg: `${prefix}-kbd-fg`
528
+ },
529
+ link: {
530
+ fg: `${prefix}-link-fg`
531
+ },
532
+ muted: {
533
+ bg: `${prefix}-muted-bg`,
534
+ fg: `${prefix}-muted-fg`
535
+ },
536
+ skeleton: {
537
+ from: `${prefix}-skeleton-from`,
538
+ to: `${prefix}-skeleton-to`
539
+ },
540
+ shadow: {
541
+ outline: `${prefix}-shadow-outline`,
542
+ umbra: `${prefix}-shadow-umbra`,
543
+ penumbra: `${prefix}-shadow-penumbra`,
544
+ ambient: `${prefix}-shadow-ambient`
545
+ },
546
+ syntax: {
547
+ atrule: `${prefix}-syntax-atrule`,
548
+ attrName: `${prefix}-syntax-attrName`,
549
+ attrValue: `${prefix}-syntax-attrValue`,
550
+ attribute: `${prefix}-syntax-attribute`,
551
+ boolean: `${prefix}-syntax-boolean`,
552
+ builtin: `${prefix}-syntax-builtin`,
553
+ cdata: `${prefix}-syntax-cdata`,
554
+ char: `${prefix}-syntax-char`,
555
+ class: `${prefix}-syntax-class`,
556
+ className: `${prefix}-syntax-className`,
557
+ comment: `${prefix}-syntax-comment`,
558
+ constant: `${prefix}-syntax-constant`,
559
+ deleted: `${prefix}-syntax-deleted`,
560
+ doctype: `${prefix}-syntax-doctype`,
561
+ entity: `${prefix}-syntax-entity`,
562
+ function: `${prefix}-syntax-function`,
563
+ hexcode: `${prefix}-syntax-hexcode`,
564
+ id: `${prefix}-syntax-id`,
565
+ important: `${prefix}-syntax-important`,
566
+ inserted: `${prefix}-syntax-inserted`,
567
+ keyword: `${prefix}-syntax-keyword`,
568
+ number: `${prefix}-syntax-number`,
569
+ operator: `${prefix}-syntax-operator`,
570
+ prolog: `${prefix}-syntax-prolog`,
571
+ property: `${prefix}-syntax-property`,
572
+ pseudoClass: `${prefix}-syntax-pseudoClass`,
573
+ pseudoElement: `${prefix}-syntax-pseudoElement`,
574
+ punctuation: `${prefix}-syntax-punctuation`,
575
+ regex: `${prefix}-syntax-regex`,
576
+ selector: `${prefix}-syntax-selector`,
577
+ string: `${prefix}-syntax-string`,
578
+ symbol: `${prefix}-syntax-symbol`,
579
+ tag: `${prefix}-syntax-tag`,
580
+ unit: `${prefix}-syntax-unit`,
581
+ url: `${prefix}-syntax-url`,
582
+ variable: `${prefix}-syntax-variable`
583
+ }
584
+ };
585
+ }
586
+ function buildColorInputStateVarNames(props) {
587
+ const { mode, scheme, state, tone } = props, prefix = `--color-${scheme}-${tone}-input-${mode}-${state}`;
588
+ return {
589
+ bg: `${prefix}-bg`,
590
+ border: `${prefix}-border`,
591
+ fg: `${prefix}-fg`,
592
+ muted: {
593
+ bg: `${prefix}-muted-bg`
594
+ },
595
+ placeholder: `${prefix}-placeholder`
596
+ };
597
+ }
598
+ const vars = {
599
+ color: {
600
+ dark: THEME_COLOR_CARD_TONES.reduce((acc, tone) => ({
601
+ ...acc,
602
+ [tone]: buildColorCardVars({ scheme: "dark", tone })
603
+ }), {}),
604
+ light: THEME_COLOR_CARD_TONES.reduce((acc, tone) => ({
605
+ ...acc,
606
+ [tone]: buildColorCardVars({ scheme: "light", tone })
607
+ }), {}),
608
+ accent: {
609
+ fg: "var(--color-accent-fg)"
610
+ },
611
+ avatar: {
612
+ ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color) => ({
613
+ ...acc,
614
+ [color]: {
615
+ bg: `var(--color-avatar-${color}-bg)`,
616
+ fg: `var(--color-avatar-${color}-fg)`
617
+ }
618
+ }), {})
619
+ },
620
+ badge: {
621
+ bg: "var(--color-badge-bg)",
622
+ dot: "var(--color-badge-dot)",
623
+ fg: "var(--color-badge-fg)",
624
+ icon: "var(--color-badge-icon)",
625
+ ...THEME_COLOR_STATE_TONES.reduce((acc, tone) => ({
626
+ ...acc,
627
+ [tone]: {
628
+ bg: `var(--color-badge-${tone}-bg)`,
629
+ dot: `var(--color-badge-${tone}-dot)`,
630
+ fg: `var(--color-badge-${tone}-fg)`,
631
+ icon: `var(--color-badge-${tone}-icon)`
632
+ }
633
+ }), {})
634
+ },
635
+ bg: "var(--color-bg)",
636
+ border: "var(--color-border)",
637
+ code: {
638
+ bg: "var(--color-code-bg)",
639
+ fg: "var(--color-code-fg)"
640
+ },
641
+ fg: "var(--color-fg)",
642
+ icon: "var(--color-icon)",
643
+ input: {
644
+ ...THEME_COLOR_INPUT_MODES.reduce((acc, mode) => ({
645
+ ...acc,
646
+ [mode]: {
647
+ ...THEME_COLOR_INPUT_STATES.reduce((acc2, state) => ({
648
+ ...acc2,
649
+ [state]: {
650
+ bg: "var(--color-bg)",
651
+ border: "var(--color-border)",
652
+ fg: "var(--color-fg)",
653
+ muted: {
654
+ fg: "var(--color-muted-fg)"
655
+ },
656
+ placeholder: "var(--color-placeholder)"
657
+ }
658
+ }), {})
659
+ }
660
+ }), {})
661
+ },
662
+ kbd: {
663
+ bg: "var(--color-kbd-bg)",
664
+ border: "var(--color-kbd-border)",
665
+ fg: "var(--color-kbd-fg)"
666
+ },
667
+ link: {
668
+ fg: "var(--color-link-fg)"
669
+ },
670
+ muted: {
671
+ bg: "var(--color-muted-bg)",
672
+ fg: "var(--color-muted-fg)"
673
+ },
674
+ shadow: {
675
+ outline: "var(--color-shadow-outline)",
676
+ umbra: "var(--color-shadow-umbra)",
677
+ penumbra: "var(--color-shadow-penumbra)",
678
+ ambient: "var(--color-shadow-ambient)"
679
+ },
680
+ skeleton: {
681
+ from: "var(--color-skeleton-from)",
682
+ to: "var(--color-skeleton-to)"
683
+ },
684
+ syntax: {
685
+ atrule: "var(--color-syntax-atrule)",
686
+ attrName: "var(--color-syntax-attrName)",
687
+ attrValue: "var(--color-syntax-attrValue)",
688
+ attribute: "var(--color-syntax-attribute)",
689
+ boolean: "var(--color-syntax-boolean)",
690
+ builtin: "var(--color-syntax-builtin)",
691
+ cdata: "var(--color-syntax-cdata)",
692
+ char: "var(--color-syntax-char)",
693
+ class: "var(--color-syntax-class)",
694
+ className: "var(--color-syntax-className)",
695
+ comment: "var(--color-syntax-comment)",
696
+ constant: "var(--color-syntax-constant)",
697
+ deleted: "var(--color-syntax-deleted)",
698
+ doctype: "var(--color-syntax-doctype)",
699
+ entity: "var(--color-syntax-entity)",
700
+ function: "var(--color-syntax-function)",
701
+ hexcode: "var(--color-syntax-hexcode)",
702
+ id: "var(--color-syntax-id)",
703
+ important: "var(--color-syntax-important)",
704
+ inserted: "var(--color-syntax-inserted)",
705
+ keyword: "var(--color-syntax-keyword)",
706
+ number: "var(--color-syntax-number)",
707
+ operator: "var(--color-syntax-operator)",
708
+ prolog: "var(--color-syntax-prolog)",
709
+ property: "var(--color-syntax-property)",
710
+ pseudoClass: "var(--color-syntax-pseudoClass)",
711
+ pseudoElement: "var(--color-syntax-pseudoElement)",
712
+ punctuation: "var(--color-syntax-punctuation)",
713
+ regex: "var(--color-syntax-regex)",
714
+ selector: "var(--color-syntax-selector)",
715
+ string: "var(--color-syntax-string)",
716
+ symbol: "var(--color-syntax-symbol)",
717
+ tag: "var(--color-syntax-tag)",
718
+ unit: "var(--color-syntax-unit)",
719
+ url: "var(--color-syntax-url)",
720
+ variable: "var(--color-syntax-variable)"
721
+ }
722
+ },
723
+ space: Object.fromEntries(
724
+ SPACE.map((space) => [space, `var(${varNames.space[space]})`])
725
+ )
726
+ };
727
+ function buildColorCardVars(props) {
728
+ const { scheme, tone } = props, prefix = `--color-${scheme}-${tone}`;
729
+ return {
730
+ accent: {
731
+ fg: `var(${prefix}-accent-fg)`
732
+ },
733
+ avatar: {
734
+ ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color) => ({
735
+ ...acc,
736
+ [color]: {
737
+ bg: `var(${prefix}-avatar-${color}-bg)`,
738
+ fg: `var(${prefix}-avatar-${color}-fg)`
739
+ }
740
+ }), {})
741
+ },
742
+ backdrop: `var(${prefix}-backdrop)`,
743
+ badge: {
744
+ ...THEME_COLOR_STATE_TONES.reduce((acc, tone2) => ({
745
+ ...acc,
746
+ [tone2]: {
747
+ bg: `var(${prefix}-badge-${tone2}-bg)`,
748
+ dot: `var(${prefix}-badge-${tone2}-dot)`,
749
+ fg: `var(${prefix}-badge-${tone2}-fg)`,
750
+ icon: `var(${prefix}-badge-${tone2}-icon)`
751
+ }
752
+ }), {})
753
+ },
754
+ bg: `var(${prefix}-bg)`,
755
+ border: `var(${prefix}-border)`,
756
+ code: {
757
+ bg: `var(${prefix}-code-bg)`,
758
+ fg: `var(${prefix}-code-fg)`
759
+ },
760
+ fg: `var(${prefix}-fg)`,
761
+ focusRing: `var(${prefix}-focus-ring)`,
762
+ icon: `var(${prefix}-icon)`,
763
+ input: {
764
+ ...THEME_COLOR_INPUT_MODES.reduce((acc, mode) => ({
765
+ ...acc,
766
+ [mode]: {
767
+ ...THEME_COLOR_INPUT_STATES.reduce((acc2, state) => ({
768
+ ...acc2,
769
+ [state]: buildColorInputStateVars({ mode, scheme, state, tone })
770
+ }), {})
771
+ }
772
+ }), {})
773
+ },
774
+ kbd: {
775
+ bg: `var(${prefix}-kbd-bg)`,
776
+ border: `var(${prefix}-kbd-border)`,
777
+ fg: `var(${prefix}-kbd-fg)`
778
+ },
779
+ link: {
780
+ fg: `var(${prefix}-link-fg)`
781
+ },
782
+ muted: {
783
+ bg: `var(${prefix}-muted-bg)`,
784
+ fg: `var(${prefix}-muted-fg)`
785
+ },
786
+ skeleton: {
787
+ from: `var(${prefix}-skeleton-from)`,
788
+ to: `var(${prefix}-skeleton-to)`
789
+ },
790
+ shadow: {
791
+ outline: `var(${prefix}-shadow-outline)`,
792
+ umbra: `var(${prefix}-shadow-umbra)`,
793
+ penumbra: `var(${prefix}-shadow-penumbra)`,
794
+ ambient: `var(${prefix}-shadow-ambient)`
795
+ },
796
+ syntax: {
797
+ atrule: `var(${prefix}-syntax-atrule)`,
798
+ attrName: `var(${prefix}-syntax-attrName)`,
799
+ attrValue: `var(${prefix}-syntax-attrValue)`,
800
+ attribute: `var(${prefix}-syntax-attribute)`,
801
+ boolean: `var(${prefix}-syntax-boolean)`,
802
+ builtin: `var(${prefix}-syntax-builtin)`,
803
+ cdata: `var(${prefix}-syntax-cdata)`,
804
+ char: `var(${prefix}-syntax-char)`,
805
+ class: `var(${prefix}-syntax-class)`,
806
+ className: `var(${prefix}-syntax-className)`,
807
+ comment: `var(${prefix}-syntax-comment)`,
808
+ constant: `var(${prefix}-syntax-constant)`,
809
+ deleted: `var(${prefix}-syntax-deleted)`,
810
+ doctype: `var(${prefix}-syntax-doctype)`,
811
+ entity: `var(${prefix}-syntax-entity)`,
812
+ function: `var(${prefix}-syntax-function)`,
813
+ hexcode: `var(${prefix}-syntax-hexcode)`,
814
+ id: `var(${prefix}-syntax-id)`,
815
+ important: `var(${prefix}-syntax-important)`,
816
+ inserted: `var(${prefix}-syntax-inserted)`,
817
+ keyword: `var(${prefix}-syntax-keyword)`,
818
+ number: `var(${prefix}-syntax-number)`,
819
+ operator: `var(${prefix}-syntax-operator)`,
820
+ prolog: `var(${prefix}-syntax-prolog)`,
821
+ property: `var(${prefix}-syntax-property)`,
822
+ pseudoClass: `var(${prefix}-syntax-pseudoClass)`,
823
+ pseudoElement: `var(${prefix}-syntax-pseudoElement)`,
824
+ punctuation: `var(${prefix}-syntax-punctuation)`,
825
+ regex: `var(${prefix}-syntax-regex)`,
826
+ selector: `var(${prefix}-syntax-selector)`,
827
+ string: `var(${prefix}-syntax-string)`,
828
+ symbol: `var(${prefix}-syntax-symbol)`,
829
+ tag: `var(${prefix}-syntax-tag)`,
830
+ unit: `var(${prefix}-syntax-unit)`,
831
+ url: `var(${prefix}-syntax-url)`,
832
+ variable: `var(${prefix}-syntax-variable)`
833
+ }
834
+ };
835
+ }
836
+ function buildColorInputStateVars(props) {
837
+ const { mode, scheme, state, tone } = props, prefix = `--color-${scheme}-${tone}-input-${mode}-${state}`;
838
+ return {
839
+ bg: `var(${prefix}-bg)`,
840
+ border: `var(${prefix}-border)`,
841
+ fg: `var(${prefix}-fg)`,
842
+ muted: {
843
+ bg: `var(${prefix}-muted-bg)`
844
+ },
845
+ placeholder: `var(${prefix}-placeholder)`
846
+ };
847
+ }
848
+ const badgeRules = {
849
+ badge: {
850
+ backgroundColor: vars.color.badge.bg,
851
+ color: vars.color.badge.fg,
852
+ verticalAlign: "top"
853
+ },
854
+ ...THEME_COLOR_STATE_TONES.reduce(
855
+ (acc, tone) => ({
856
+ ...acc,
857
+ [`badge-${tone}`]: {
858
+ [varNames.color.badge.bg]: vars.color.badge[tone].bg,
859
+ [varNames.color.badge.dot]: vars.color.badge[tone].dot,
860
+ [varNames.color.badge.fg]: vars.color.badge[tone].fg,
861
+ [varNames.color.badge.icon]: vars.color.badge[tone].icon
862
+ }
863
+ }),
864
+ {}
865
+ )
866
+ }, boxRules = {
867
+ box: {
868
+ minWidth: 0,
869
+ minHeight: 0,
870
+ "@nest": {
871
+ // 'ul.&, ol.&': {
872
+ '&[data-as="ul"], &[data-as="ol"]': {
873
+ listStyle: "none"
874
+ }
875
+ }
876
+ },
877
+ // sizing
878
+ "box-content": {
879
+ boxSizing: "content-box"
880
+ },
881
+ "box-border": {
882
+ boxSizing: "border-box"
883
+ }
884
+ }, buttonRules = {
885
+ button: {
886
+ WebkitFontSmoothing: "inherit",
887
+ appearance: "none",
888
+ display: "inline-flex",
889
+ alignItems: "center",
890
+ font: "inherit",
891
+ outline: "none",
892
+ userSelect: "none",
893
+ textDecoration: "none",
894
+ border: 0,
895
+ boxSizing: "border-box",
896
+ padding: 0,
897
+ overflow: "hidden",
898
+ margin: 0,
899
+ textAlign: "left",
900
+ position: "relative",
901
+ verticalAlign: "top",
902
+ backgroundColor: "var(--card-bg-color)",
903
+ color: "var(--card-fg-color)"
904
+ },
905
+ // variants
906
+ ...THEME_COLOR_BUTTON_MODES.reduce((acc, mode) => ({
907
+ ...acc,
908
+ [`button-mode-${mode}`]: {
909
+ "@nest": THEME_COLOR_STATE_TONES.reduce((acc2, tone) => ({
910
+ ...acc2,
911
+ [`&.button-tone-${tone}`]: {
912
+ "--card-bg-color": `var(--card-button-${mode}-${tone}-enabled-bg-color, rgba(127, 127, 127, 0.1))`,
913
+ "--card-fg-color": `var(--card-button-${mode}-${tone}-enabled-fg-color, currentColor)`
914
+ }
915
+ }), {})
916
+ }
917
+ }), {}),
918
+ "button-loading-box": {
919
+ position: "absolute",
920
+ top: 0,
921
+ left: 0,
922
+ right: 0,
923
+ bottom: 0,
924
+ // display: 'flex',
925
+ // alignItems: 'center',
926
+ // justifyContent: 'center',
927
+ backgroundColor: "var(--card-bg-color)",
928
+ borderRadius: "inherit",
929
+ zIndex: 1
930
+ // boxShadow: 'inherit',
931
+ }
932
+ }, cardRules = {
933
+ card: {
934
+ backgroundColor: "var(--card-bg-color)",
935
+ color: "var(--card-fg-color)",
936
+ /* deprecated variables (kept for legacy) */
937
+ "--card-accent-fg-color": "var(--color-accent-fg)",
938
+ ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color) => ({
939
+ ...acc,
940
+ [`--card-avatar-${color}-bg-color`]: `var(--color-avatar-${color}-bg)`,
941
+ [`--card-avatar-${color}-fg-color`]: `var(--color-avatar-${color}-fg)`
942
+ }), {}),
943
+ "--card-backdrop-color": "var(--color-backdrop)",
944
+ ...THEME_COLOR_STATE_TONES.reduce((acc, tone) => ({
945
+ ...acc,
946
+ [`--card-badge-${tone}-bg-color`]: `var(--color-badge-${tone}-bg)`,
947
+ [`--card-badge-${tone}-dot-color`]: `var(--color-badge-${tone}-dot)`,
948
+ [`--card-badge-${tone}-fg-color`]: `var(--color-badge-${tone}-fg)`,
949
+ [`--card-badge-${tone}-icon-color`]: `var(--color-badge-${tone}-icon)`
950
+ }), {}),
951
+ "--card-bg-color": "var(--color-bg)",
952
+ "--card-border-color": "var(--color-border)",
953
+ "--card-code-bg-color": "var(--color-code-bg)",
954
+ "--card-code-fg-color": "var(--color-code-fg)",
955
+ "--card-fg-color": "var(--color-fg)",
956
+ "--card-focus-ring-color": "var(--color-focus-ring)",
957
+ "--card-icon-color": "var(--color-icon)",
958
+ "--card-kbd-bg-color": "var(--color-kbd-bg)",
959
+ "--card-kbd-border-color": "var(--color-kbd-border)",
960
+ "--card-kbd-fg-color": "var(--color-kbd-fg)",
961
+ "--card-link-fg-color": "var(--color-link-fg)",
962
+ "--card-muted-bg-color": "var(--color-muted-bg)",
963
+ "--card-muted-fg-color": "var(--color-muted-fg)",
964
+ "--card-shadow-outline-color": "var(--color-shadow-outline)",
965
+ "--card-shadow-umbra-color": "var(--color-shadow-umbra)",
966
+ "--card-shadow-penumbra-color": "var(--color-shadow-penumbra)",
967
+ "--card-shadow-ambient-color": "var(--color-shadow-ambient)",
968
+ "--card-skeleton-from-color": "var(--color-skeleton-from)",
969
+ "--card-skeleton-to-color": "var(--color-skeleton-to)",
970
+ /*
971
+ '--card-bg-image': checkered
972
+ ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`
973
+ : undefined,
974
+
975
+ '--card-bg-image': checkered
976
+ ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`
977
+ : undefined,
978
+
979
+ '--card-bg2-color': color.muted.bg,
980
+ '--card-link-color': color.link.fg,
981
+ '--card-hairline-soft-color': color.border,
982
+ '--card-hairline-hard-color': color.border, */
983
+ "@nest": {
984
+ '&[data-as="button"]': {
985
+ WebkitFontSmoothing: "inherit",
986
+ appearance: "none",
987
+ outline: "none",
988
+ font: "inherit",
989
+ textAlign: "inherit",
990
+ border: 0,
991
+ width: ["-moz-available", "-webkit-fill-available", "stretch"]
992
+ },
993
+ '&[data-as="a"]': {
994
+ outline: "none",
995
+ textDecoration: "none"
996
+ },
997
+ '&[data-as="pre"]': {
998
+ font: "inherit"
999
+ }
1000
+ }
1001
+ }
1002
+ }, checkboxRules = {
1003
+ checkbox: {
1004
+ position: "relative",
1005
+ display: "inline-block"
1006
+ },
1007
+ "checkbox-input": {
1008
+ position: "absolute",
1009
+ top: 0,
1010
+ left: 0,
1011
+ width: "100%",
1012
+ height: "100%",
1013
+ outline: "none",
1014
+ opacity: 0,
1015
+ zIndex: 1,
1016
+ padding: 0,
1017
+ margin: 0,
1018
+ "@nest": {
1019
+ "& + span": {
1020
+ position: "relative",
1021
+ display: "block",
1022
+ width: "var(--input-checkbox-size)",
1023
+ height: "var(--input-checkbox-size)",
1024
+ boxSizing: "border-box",
1025
+ borderRadius: "var(--radius-2)",
1026
+ lineHeight: 1,
1027
+ backgroundColor: "var(--color-checkbox-bg)",
1028
+ boxShadow: "inset 0 0 0 1px var(--color-checkbox-border)",
1029
+ color: "var(--color-checkbox-fg)",
1030
+ "--color-checkbox-bg": "var(--color-input-default-enabled-bg)",
1031
+ "--color-checkbox-border": "var(--color-input-default-enabled-border)",
1032
+ "--color-checkbox-fg": "var(--color-input-default-enabled-fg)"
1033
+ // box-shadow: ${focusRingBorderStyle({
1034
+ // color: color.input.default.enabled.border,
1035
+ // width: input.border.width,
1036
+ // })},
1037
+ },
1038
+ "& + span > svg": {
1039
+ display: "block",
1040
+ position: "absolute",
1041
+ opacity: 0,
1042
+ height: "100%",
1043
+ width: "100%"
1044
+ },
1045
+ "& + span > svg > path": {
1046
+ vectorEffect: "non-scaling-stroke",
1047
+ strokeWidth: "1.5px !important"
1048
+ },
1049
+ "&:checked + span": {
1050
+ "--color-checkbox-bg": "var(--color-input-default-enabled-fg)",
1051
+ "--color-checkbox-border": "var(--color-input-default-enabled-fg)",
1052
+ "--color-checkbox-fg": "var(--color-input-default-enabled-bg)"
1053
+ // box-shadow: ${focusRingBorderStyle({
1054
+ // color: color.input.default.enabled.fg,
1055
+ // width: input.border.width,
1056
+ // })},
1057
+ },
1058
+ "&:checked + span > svg:first-child": {
1059
+ opacity: 1
1060
+ },
1061
+ // focus
1062
+ "&:not(:disabled):focus:focus-visible + span": {
1063
+ // box-shadow: ${focusRingStyle({focusRing})},
1064
+ },
1065
+ // focus when checked - uses a different offset
1066
+ "&:not(:disabled):focus:focus-visible&:checked + span": {
1067
+ // box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})},
1068
+ },
1069
+ "&[data-error] + span": {
1070
+ "--color-checkbox-bg": "var(--color-input-invalid-enabled-border)",
1071
+ "--color-checkbox-border": "var(--color-input-invalid-enabled-bg)",
1072
+ "--color-checkbox-fg": "var(--color-input-invalid-enabled-fg)"
1073
+ // box-shadow: ${focusRingBorderStyle({
1074
+ // width: input.border.width,
1075
+ // color: color.input.invalid.enabled.muted.bg,
1076
+ // })},
1077
+ },
1078
+ "&[data-error]:checked + span": {
1079
+ "--color-checkbox-bg": "var(--color-input-invalid-enabled-muted-bg)",
1080
+ "--color-checkbox-fg": "var(--color-input-invalid-enabled-bg)"
1081
+ },
1082
+ "&[data-error]:checked:not(:disabled):focus:focus-visible + span": {
1083
+ "--color-checkbox-border": "var(--color-input-invalid-readOnly-muted-bg)"
1084
+ // box-shadow: ${focusRingStyle({
1085
+ // border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},
1086
+ // focusRing: {width: 1, offset: 1},
1087
+ // })},
1088
+ },
1089
+ "&:disabled + span": {
1090
+ "--color-checkbox-bg": "var(--color-input-default-disabled-bg)",
1091
+ "--color-checkbox-border": "var(--color-input-default-disabled-border)",
1092
+ "--color-checkbox-fg": "var(--color-input-default-disabled-fg)"
1093
+ // box-shadow: ${focusRingBorderStyle({
1094
+ // width: input.border.width,
1095
+ // color: color.input.default.disabled.border,
1096
+ // })},
1097
+ },
1098
+ "&:disabled:checked + span": {
1099
+ "--color-checkbox-bg": "var(--color-input-default-disabled-muted-bg)"
1100
+ },
1101
+ "&[data-read-only] + span": {
1102
+ "--color-checkbox-bg": "var(--color-input-default-readOnly-bg)",
1103
+ "--color-checkbox-border": "var(--color-input-default-readOnly-border)",
1104
+ "--color-checkbox-fg": "var(--color-input-default-readOnly-fg)"
1105
+ // box-shadow: ${focusRingBorderStyle({
1106
+ // width: input.border.width,
1107
+ // color: color.input.default.readOnly.border,
1108
+ // })},
1109
+ },
1110
+ "&[data-read-only]:checked + span": {
1111
+ "--color-checkbox-bg": "var(--color-input-default-readOnly-muted-bg)"
1112
+ },
1113
+ "&:indeterminate + span > svg:last-child": {
1114
+ opacity: 1
1115
+ }
1116
+ }
1117
+ }
1118
+ }, codeRules = {
1119
+ code: {
1120
+ "--font-weight-regular": "var(--font-code-weight-regular)",
1121
+ "--font-weight-medium": "var(--font-code-weight-medium)",
1122
+ "--font-weight-semibold": "var(--font-code-weight-semibold)",
1123
+ "--font-weight-bold": "var(--font-code-weight-bold)",
1124
+ "--font-family": "var(--font-code-family)",
1125
+ color: "var(--color-fg)",
1126
+ "@nest": {
1127
+ "& > code": {
1128
+ font: "inherit"
1129
+ },
1130
+ "& a": {
1131
+ color: "var(--color-link-fg)",
1132
+ textDecoration: "none"
1133
+ }
1134
+ }
1135
+ },
1136
+ ...responsiveRules("code-0", {
1137
+ "--font-size": "var(--font-code-0-size)",
1138
+ "--font-line-height": "var(--font-code-0-line-height)",
1139
+ "--font-letter-spacing": "var(--font-code-0-letter-spacing)",
1140
+ "--font-icon-size": "var(--font-code-0-icon-size)",
1141
+ "--font-ascender-height": "var(--font-code-0-ascender-height)",
1142
+ "--font-descender-height": "var(--font-code-0-descender-height)"
1143
+ }),
1144
+ ...responsiveRules("code-1", {
1145
+ "--font-size": "var(--font-code-1-size)",
1146
+ "--font-line-height": "var(--font-code-1-line-height)",
1147
+ "--font-letter-spacing": "var(--font-code-1-letter-spacing)",
1148
+ "--font-icon-size": "var(--font-code-1-icon-size)",
1149
+ "--font-ascender-height": "var(--font-code-1-ascender-height)",
1150
+ "--font-descender-height": "var(--font-code-1-descender-height)"
1151
+ }),
1152
+ ...responsiveRules("code-2", {
1153
+ "--font-size": "var(--font-code-2-size)",
1154
+ "--font-line-height": "var(--font-code-2-line-height)",
1155
+ "--font-letter-spacing": "var(--font-code-2-letter-spacing)",
1156
+ "--font-icon-size": "var(--font-code-2-icon-size)",
1157
+ "--font-ascender-height": "var(--font-code-2-ascender-height)",
1158
+ "--font-descender-height": "var(--font-code-2-descender-height)"
1159
+ }),
1160
+ ...responsiveRules("code-3", {
1161
+ "--font-size": "var(--font-code-3-size)",
1162
+ "--font-line-height": "var(--font-code-3-line-height)",
1163
+ "--font-letter-spacing": "var(--font-code-3-letter-spacing)",
1164
+ "--font-icon-size": "var(--font-code-3-icon-size)",
1165
+ "--font-ascender-height": "var(--font-code-3-ascender-height)",
1166
+ "--font-descender-height": "var(--font-code-3-descender-height)"
1167
+ }),
1168
+ ...responsiveRules("code-4", {
1169
+ "--font-size": "var(--font-code-4-size)",
1170
+ "--font-line-height": "var(--font-code-4-line-height)",
1171
+ "--font-letter-spacing": "var(--font-code-4-letter-spacing)",
1172
+ "--font-icon-size": "var(--font-code-4-icon-size)",
1173
+ "--font-ascender-height": "var(--font-code-4-ascender-height)",
1174
+ "--font-descender-height": "var(--font-code-4-descender-height)"
1175
+ })
1176
+ }, containerRules = {
1177
+ container: {
1178
+ margin: "0 auto",
1179
+ width: "100%"
1180
+ }
1181
+ }, headingRules = {
1182
+ heading: {
1183
+ "--font-weight-regular": "var(--font-heading-weight-regular)",
1184
+ "--font-weight-medium": "var(--font-heading-weight-medium)",
1185
+ "--font-weight-semibold": "var(--font-heading-weight-semibold)",
1186
+ "--font-weight-bold": "var(--font-heading-weight-bold)",
1187
+ "--font-family": "var(--font-heading-family)",
1188
+ color: "var(--color-fg)",
1189
+ "@nest": {
1190
+ "& a": {
1191
+ color: "var(--color-link-fg)",
1192
+ textDecoration: "none"
1193
+ }
1194
+ }
1195
+ },
1196
+ "heading-accent": {
1197
+ "--fg-color": "var(--color-accent-fg)"
1198
+ },
1199
+ "heading-muted": {
1200
+ "--fg-color": "var(--color-muted-fg)"
1201
+ },
1202
+ ...responsiveRules("heading-0", {
1203
+ "--font-size": "var(--font-heading-0-size)",
1204
+ "--font-line-height": "var(--font-heading-0-line-height)",
1205
+ "--font-letter-spacing": "var(--font-heading-0-letter-spacing)",
1206
+ "--font-icon-size": "var(--font-heading-0-icon-size)",
1207
+ "--font-ascender-height": "var(--font-heading-0-ascender-height)",
1208
+ "--font-descender-height": "var(--font-heading-0-descender-height)"
1209
+ }),
1210
+ ...responsiveRules("heading-1", {
1211
+ "--font-size": "var(--font-heading-1-size)",
1212
+ "--font-line-height": "var(--font-heading-1-line-height)",
1213
+ "--font-letter-spacing": "var(--font-heading-1-letter-spacing)",
1214
+ "--font-icon-size": "var(--font-heading-1-icon-size)",
1215
+ "--font-ascender-height": "var(--font-heading-1-ascender-height)",
1216
+ "--font-descender-height": "var(--font-heading-1-descender-height)"
1217
+ }),
1218
+ ...responsiveRules("heading-2", {
1219
+ "--font-size": "var(--font-heading-2-size)",
1220
+ "--font-line-height": "var(--font-heading-2-line-height)",
1221
+ "--font-letter-spacing": "var(--font-heading-2-letter-spacing)",
1222
+ "--font-icon-size": "var(--font-heading-2-icon-size)",
1223
+ "--font-ascender-height": "var(--font-heading-2-ascender-height)",
1224
+ "--font-descender-height": "var(--font-heading-2-descender-height)"
1225
+ }),
1226
+ ...responsiveRules("heading-3", {
1227
+ "--font-size": "var(--font-heading-3-size)",
1228
+ "--font-line-height": "var(--font-heading-3-line-height)",
1229
+ "--font-letter-spacing": "var(--font-heading-3-letter-spacing)",
1230
+ "--font-icon-size": "var(--font-heading-3-icon-size)",
1231
+ "--font-ascender-height": "var(--font-label-3-ascender-height)",
1232
+ "--font-descender-height": "var(--font-label-3-descender-height)"
1233
+ }),
1234
+ ...responsiveRules("heading-4", {
1235
+ "--font-size": "var(--font-heading-4-size)",
1236
+ "--font-line-height": "var(--font-heading-4-line-height)",
1237
+ "--font-letter-spacing": "var(--font-heading-4-letter-spacing)",
1238
+ "--font-icon-size": "var(--font-heading-4-icon-size)",
1239
+ "--font-ascender-height": "var(--font-heading-4-ascender-height)",
1240
+ "--font-descender-height": "var(--font-heading-4-descender-height)"
1241
+ }),
1242
+ ...responsiveRules("heading-5", {
1243
+ "--font-size": "var(--font-heading-5-size)",
1244
+ "--font-line-height": "var(--font-heading-5-line-height)",
1245
+ "--font-letter-spacing": "var(--font-heading-5-letter-spacing)",
1246
+ "--font-icon-size": "var(--font-heading-5-icon-size)",
1247
+ "--font-ascender-height": "var(--font-heading-5-ascender-height)",
1248
+ "--font-descender-height": "var(--font-heading-5-descender-height)"
1249
+ })
1250
+ }, kbdRules = {
1251
+ kbd: {
1252
+ "--card-bg-color": "var(--card-kbd-bg-color)",
1253
+ "--card-border-color": "var(--card-kbd-border-color)",
1254
+ "--card-fg-color": "var(--card-kbd-fg-color)",
1255
+ boxShadow: "inset 0 0 0 1px var(--card-border-color)",
1256
+ background: "var(--card-bg-color)",
1257
+ font: "inherit",
1258
+ verticalAlign: "top",
1259
+ "@nest": {
1260
+ "&:not([hidden])": {
1261
+ display: "inline-block"
1262
+ }
1263
+ }
1264
+ }
1265
+ }, labelRules = {
1266
+ label: {
1267
+ "--font-weight-regular": "var(--font-label-weight-regular)",
1268
+ "--font-weight-medium": "var(--font-label-weight-medium)",
1269
+ "--font-weight-semibold": "var(--font-label-weight-semibold)",
1270
+ "--font-weight-bold": "var(--font-label-weight-bold)",
1271
+ "--font-family": "var(--font-label-family)",
1272
+ color: "var(--color-fg)",
1273
+ textTransform: "uppercase",
1274
+ "@nest": {
1275
+ "& a": {
1276
+ color: "var(--color-link-fg)",
1277
+ textDecoration: "none"
1278
+ }
1279
+ }
1280
+ },
1281
+ "label-accent": {
1282
+ "--fg-color": "var(--color-accent-fg)"
1283
+ },
1284
+ "label-muted": {
1285
+ "--fg-color": "var(--color-muted-fg)"
1286
+ },
1287
+ ...responsiveRules("label-0", {
1288
+ "--font-size": "var(--font-label-0-size)",
1289
+ "--font-line-height": "var(--font-label-0-line-height)",
1290
+ "--font-letter-spacing": "var(--font-label-0-letter-spacing)",
1291
+ "--font-icon-size": "var(--font-label-0-icon-size)",
1292
+ "--font-ascender-height": "var(--font-label-0-ascender-height)",
1293
+ "--font-descender-height": "var(--font-label-0-descender-height)"
1294
+ }),
1295
+ ...responsiveRules("label-1", {
1296
+ "--font-size": "var(--font-label-1-size)",
1297
+ "--font-line-height": "var(--font-label-1-line-height)",
1298
+ "--font-letter-spacing": "var(--font-label-1-letter-spacing)",
1299
+ "--font-icon-size": "var(--font-label-1-icon-size)",
1300
+ "--font-ascender-height": "var(--font-label-1-ascender-height)",
1301
+ "--font-descender-height": "var(--font-label-1-descender-height)"
1302
+ }),
1303
+ ...responsiveRules("label-2", {
1304
+ "--font-size": "var(--font-label-2-size)",
1305
+ "--font-line-height": "var(--font-label-2-line-height)",
1306
+ "--font-letter-spacing": "var(--font-label-2-letter-spacing)",
1307
+ "--font-icon-size": "var(--font-label-2-icon-size)",
1308
+ "--font-ascender-height": "var(--font-label-2-ascender-height)",
1309
+ "--font-descender-height": "var(--font-label-2-descender-height)"
1310
+ }),
1311
+ ...responsiveRules("label-3", {
1312
+ "--font-size": "var(--font-label-3-size)",
1313
+ "--font-line-height": "var(--font-label-3-line-height)",
1314
+ "--font-letter-spacing": "var(--font-label-3-letter-spacing)",
1315
+ "--font-icon-size": "var(--font-label-3-icon-size)",
1316
+ "--font-ascender-height": "var(--font-label-3-ascender-height)",
1317
+ "--font-descender-height": "var(--font-label-3-descender-height)"
1318
+ }),
1319
+ ...responsiveRules("label-4", {
1320
+ "--font-size": "var(--font-label-4-size)",
1321
+ "--font-line-height": "var(--font-label-4-line-height)",
1322
+ "--font-letter-spacing": "var(--font-label-4-letter-spacing)",
1323
+ "--font-icon-size": "var(--font-label-4-icon-size)",
1324
+ "--font-ascender-height": "var(--font-label-4-ascender-height)",
1325
+ "--font-descender-height": "var(--font-label-4-descender-height)"
1326
+ }),
1327
+ ...responsiveRules("label-5", {
1328
+ "--font-size": "var(--font-label-5-size)",
1329
+ "--font-line-height": "var(--font-label-5-line-height)",
1330
+ "--font-letter-spacing": "var(--font-label-5-letter-spacing)",
1331
+ "--font-icon-size": "var(--font-label-5-icon-size)",
1332
+ "--font-ascender-height": "var(--font-label-5-ascender-height)",
1333
+ "--font-descender-height": "var(--font-label-5-descender-height)"
1334
+ })
1335
+ }, popoverRules = {
1336
+ //
1337
+ }, radioRules = {
1338
+ //
1339
+ }, selectRules = {
1340
+ //
1341
+ }, selectableRules = {
1342
+ selectable: {
1343
+ backgroundColor: "inherit",
1344
+ color: "inherit",
1345
+ "@nest": {
1346
+ '&[data-as="button"]': {
1347
+ WebkitFontSmoothing: "inherit",
1348
+ appearance: "none",
1349
+ outline: "none",
1350
+ font: "inherit",
1351
+ textAlign: "inherit",
1352
+ border: 0,
1353
+ // width: '-moz-available',
1354
+ // width: '-webkit-fill-available',
1355
+ width: "stretch"
1356
+ },
1357
+ /* &:is(a) */
1358
+ '&[data-as="a"]': {
1359
+ textDecoration: "none"
1360
+ }
1361
+ }
1362
+ }
1363
+ }, spinnerRules = {
1364
+ spinner: {
1365
+ "@keyframes": {
1366
+ "spinner-rotate": {
1367
+ from: {
1368
+ transform: "rotate(0deg)"
1369
+ },
1370
+ to: {
1371
+ transform: "rotate(360deg)"
1372
+ }
1373
+ }
1374
+ },
1375
+ "@nest": {
1376
+ "& > span > svg": {
1377
+ animation: "spinner-rotate 500ms linear infinite"
1378
+ }
1379
+ }
1380
+ }
1381
+ }, switchRules = {
1382
+ switch: {},
1383
+ "switch-input": {
1384
+ position: "absolute",
1385
+ top: 0,
1386
+ right: 0,
1387
+ bottom: 0,
1388
+ left: 0,
1389
+ opacity: 0,
1390
+ height: "100%",
1391
+ width: "100%",
1392
+ outline: "none",
1393
+ padding: 0,
1394
+ margin: 0,
1395
+ /* Place the input element above the representation element */
1396
+ zIndex: 1
1397
+ },
1398
+ "switch-presentation": {
1399
+ // --switch-bg-color: ${color.input.default.enabled.border};
1400
+ // --switch-fg-color: ${color.input.default.enabled.bg};
1401
+ // --switch-box-shadow: none;
1402
+ // &:not([hidden]) {
1403
+ // display: block;
1404
+ // }
1405
+ // position: relative;
1406
+ // width: ${rem(input.switch.width)};
1407
+ // height: ${rem(input.switch.height)};
1408
+ // border-radius: ${rem(input.switch.height / 2)};
1409
+ // /* Make sure it’s not possible to interact with the wrapper element */
1410
+ // pointer-events: none;
1411
+ // &:after {
1412
+ // content: '';
1413
+ // display: block;
1414
+ // position: absolute;
1415
+ // top: 0;
1416
+ // left: 0;
1417
+ // right: 0;
1418
+ // bottom: 0;
1419
+ // z-index: 1;
1420
+ // box-shadow: var(--switch-box-shadow);
1421
+ // border-radius: inherit;
1422
+ // }
1423
+ // /* Focus styles */
1424
+ // input:focus + && {
1425
+ // --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};
1426
+ // }
1427
+ // input:focus:not(:focus-visible) + && {
1428
+ // --switch-box-shadow: none;
1429
+ // }
1430
+ // input:checked + && {
1431
+ // --switch-bg-color: ${color.input.default.enabled.fg};
1432
+ // --switch-fg-color: ${color.input.default.enabled.bg};
1433
+ // }
1434
+ // @media (hover: hover) {
1435
+ // input:not(:disabled):hover + && {
1436
+ // --switch-bg-color: ${color.input.default.hovered.border};
1437
+ // --switch-fg-color: ${color.input.default.hovered.bg};
1438
+ // }
1439
+ // input:not(:disabled):checked:hover + && {
1440
+ // --switch-bg-color: ${color.input.default.enabled.fg};
1441
+ // --switch-fg-color: ${color.input.default.enabled.bg};
1442
+ // }
1443
+ // }
1444
+ // input:not([data-read-only]):disabled + && {
1445
+ // --switch-bg-color: ${color.input.default.disabled.border};
1446
+ // --switch-fg-color: ${color.input.default.disabled.bg};
1447
+ // }
1448
+ // input[data-read-only]:disabled + && {
1449
+ // --switch-bg-color: ${color.input.default.readOnly.border};
1450
+ // --switch-fg-color: ${color.input.default.readOnly.bg};
1451
+ // }
1452
+ // input:checked[data-read-only]:disabled + && {
1453
+ // --switch-bg-color: ${color.input.default.readOnly.fg};
1454
+ // --switch-fg-color: ${color.input.default.readOnly.bg};
1455
+ // }
1456
+ },
1457
+ "switch-track": {
1458
+ // &:not([hidden]) {
1459
+ // display: block;
1460
+ // }
1461
+ // background-color: var(--switch-bg-color);
1462
+ // position: absolute;
1463
+ // left: 0;
1464
+ // top: 0;
1465
+ // width: ${rem(input.switch.width)};
1466
+ // height: ${rem(input.switch.height)};
1467
+ // border-radius: ${rem(input.switch.height / 2)};
1468
+ },
1469
+ "switch-thumb": {
1470
+ // const {$indeterminate} = props
1471
+ // const {input} = getTheme_v2(props.theme)
1472
+ // const trackWidth = input.switch.width
1473
+ // const trackHeight = input.switch.height
1474
+ // const trackPadding = input.switch.padding
1475
+ // const size = trackHeight - input.switch.padding * 2
1476
+ // const checkedOffset = trackWidth - trackPadding * 2 - size
1477
+ // const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding
1478
+ // const checked = $indeterminate !== true && props.$checked === true
1479
+ // return css`
1480
+ // &:not([hidden]) {
1481
+ // display: block;
1482
+ // }
1483
+ // position: absolute;
1484
+ // left: ${rem(trackPadding)};
1485
+ // top: ${rem(trackPadding)};
1486
+ // height: ${rem(size)};
1487
+ // width: ${rem(size)};
1488
+ // border-radius: ${rem(size / 2)};
1489
+ // transition-property: transform;
1490
+ // transition-duration: ${input.switch.transitionDurationMs}ms;
1491
+ // transition-timing-function: ${input.switch.transitionTimingFunction};
1492
+ // background: var(--switch-fg-color);
1493
+ // transform: translate3d(0, 0, 0);
1494
+ // box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);
1495
+ // ${checked &&
1496
+ // css`
1497
+ // transform: translate3d(${checkedOffset}px, 0, 0);
1498
+ // `}
1499
+ // ${$indeterminate &&
1500
+ // css`
1501
+ // transform: translate3d(${indeterminateOffset}px, 0, 0);
1502
+ // `}
1503
+ // `
1504
+ }
1505
+ }, textRules = {
1506
+ text: {
1507
+ "--font-weight-regular": "var(--font-text-weight-regular)",
1508
+ "--font-weight-medium": "var(--font-text-weight-medium)",
1509
+ "--font-weight-semibold": "var(--font-text-weight-semibold)",
1510
+ "--font-weight-bold": "var(--font-text-weight-bold)",
1511
+ "--font-family": "var(--font-text-family)",
1512
+ color: "var(--color-fg)",
1513
+ "@nest": {
1514
+ "& a": {
1515
+ color: "var(--color-link-fg)",
1516
+ textDecoration: "none"
1517
+ }
1518
+ }
1519
+ },
1520
+ "text-accent": {
1521
+ "--fg-color": "var(--color-accent-fg)"
1522
+ },
1523
+ "text-muted": {
1524
+ "--fg-color": "var(--color-muted-fg)"
1525
+ },
1526
+ ...responsiveRules("text-0", {
1527
+ "--font-size": "var(--font-text-0-size)",
1528
+ "--font-line-height": "var(--font-text-0-line-height)",
1529
+ "--font-letter-spacing": "var(--font-text-0-letter-spacing)",
1530
+ "--font-icon-size": "var(--font-text-0-icon-size)",
1531
+ "--font-ascender-height": "var(--font-text-0-ascender-height)",
1532
+ "--font-descender-height": "var(--font-text-0-descender-height)"
1533
+ }),
1534
+ ...responsiveRules("text-1", {
1535
+ "--font-size": "var(--font-text-1-size)",
1536
+ "--font-line-height": "var(--font-text-1-line-height)",
1537
+ "--font-letter-spacing": "var(--font-text-1-letter-spacing)",
1538
+ "--font-icon-size": "var(--font-text-1-icon-size)",
1539
+ "--font-ascender-height": "var(--font-text-1-ascender-height)",
1540
+ "--font-descender-height": "var(--font-text-1-descender-height)"
1541
+ }),
1542
+ ...responsiveRules("text-2", {
1543
+ "--font-size": "var(--font-text-2-size)",
1544
+ "--font-line-height": "var(--font-text-2-line-height)",
1545
+ "--font-letter-spacing": "var(--font-text-2-letter-spacing)",
1546
+ "--font-icon-size": "var(--font-text-2-icon-size)",
1547
+ "--font-ascender-height": "var(--font-text-2-ascender-height)",
1548
+ "--font-descender-height": "var(--font-text-2-descender-height)"
1549
+ }),
1550
+ ...responsiveRules("text-3", {
1551
+ "--font-size": "var(--font-text-3-size)",
1552
+ "--font-line-height": "var(--font-text-3-line-height)",
1553
+ "--font-letter-spacing": "var(--font-text-3-letter-spacing)",
1554
+ "--font-icon-size": "var(--font-text-3-icon-size)",
1555
+ "--font-ascender-height": "var(--font-text-3-ascender-height)",
1556
+ "--font-descender-height": "var(--font-text-3-descender-height)"
1557
+ }),
1558
+ ...responsiveRules("text-4", {
1559
+ "--font-size": "var(--font-text-4-size)",
1560
+ "--font-line-height": "var(--font-text-4-line-height)",
1561
+ "--font-letter-spacing": "var(--font-text-4-letter-spacing)",
1562
+ "--font-icon-size": "var(--font-text-4-icon-size)",
1563
+ "--font-ascender-height": "var(--font-text-4-ascender-height)",
1564
+ "--font-descender-height": "var(--font-text-4-descender-height)"
1565
+ })
1566
+ }, textAreaRules = {
1567
+ //
1568
+ }, textInputRules = {
1569
+ "text-input": {
1570
+ //
1571
+ },
1572
+ "text-input-wrapper": {
1573
+ "@nest": {
1574
+ "& > input": {
1575
+ appearance: "none",
1576
+ background: "none",
1577
+ border: 0,
1578
+ borderRadius: 0,
1579
+ outline: "none",
1580
+ width: "100%",
1581
+ boxSizing: "border-box",
1582
+ fontFamily: "var(--font-family)",
1583
+ fontSize: "var(--font-size)",
1584
+ /* font-family: ${font.text.family}, */
1585
+ /* font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular}, */
1586
+ margin: 0,
1587
+ position: "relative",
1588
+ zIndex: 1,
1589
+ display: "block",
1590
+ color: "var(--input-fg-color)",
1591
+ "@nest": {
1592
+ // NOTE: This is a hack to disable Chrome’s autofill styles
1593
+ "&:-webkit-autofill, &:-webkit-autofill:hover, &:-webkit-autofill:focus, &:-webkit-autofill:active": {
1594
+ WebkitTextFillColor: "var(--input-fg-color) !important",
1595
+ transition: "background-color 5000s",
1596
+ transitionDelay: "86400s"
1597
+ // 24h
1598
+ }
1599
+ // /* &:is(textarea) */
1600
+ // &[data-as='textarea'] {
1601
+ // resize: none;
1602
+ // }
1603
+ // &::placeholder {
1604
+ // color: var(--input-placeholder-color);
1605
+ // }
1606
+ // &[data-scheme='${$scheme}'][data-tone='${$tone}'] {
1607
+ // /* --input-fg-color: ${color.input.default.enabled.fg}; */
1608
+ // /* --input-placeholder-color: ${color.input.default.enabled.placeholder}; */
1609
+ // /* enabled */
1610
+ // &:not(:invalid):not(:disabled):not(:read-only) {
1611
+ // /* --input-fg-color: ${color.input.default.enabled.fg}; */
1612
+ // /* --input-placeholder-color: ${color.input.default.enabled.placeholder}; */
1613
+ // }
1614
+ // /* disabled */
1615
+ // &:not(:invalid):disabled {
1616
+ // /* --input-fg-color: ${color.input.default.disabled.fg}; */
1617
+ // /* --input-placeholder-color: ${color.input.default.disabled.placeholder}; */
1618
+ // }
1619
+ // /* invalid */
1620
+ // &:invalid {
1621
+ // /* --input-fg-color: ${color.input.invalid.enabled.fg}; */
1622
+ // /* --input-placeholder-color: ${color.input.invalid.enabled.placeholder}; */
1623
+ // }
1624
+ // /* readOnly */
1625
+ // &:read-only {
1626
+ // /* --input-fg-color: ${color.input.default.readOnly.fg}; */
1627
+ // /* --input-placeholder-color: ${color.input.default.readOnly.placeholder}; */
1628
+ // }
1629
+ // }
1630
+ }
1631
+ }
1632
+ }
1633
+ },
1634
+ "text-input-prefix": {
1635
+ borderTopRightRadius: 0,
1636
+ borderBottomRightRadius: 0,
1637
+ "@nest": {
1638
+ "& > span": {
1639
+ display: "block",
1640
+ margin: "-1px"
1641
+ }
1642
+ }
1643
+ },
1644
+ "text-input-suffix": {
1645
+ borderTopRightRadius: 0,
1646
+ borderBottomRightRadius: 0,
1647
+ "@nest": {
1648
+ "& > span": {
1649
+ display: "block",
1650
+ margin: "-1px"
1651
+ }
1652
+ }
1653
+ },
1654
+ "text-input-presentation": {
1655
+ "--input-box-shadow": "none",
1656
+ position: "absolute",
1657
+ top: 0,
1658
+ left: 0,
1659
+ right: 0,
1660
+ bottom: 0,
1661
+ display: "block",
1662
+ pointerEvents: "none",
1663
+ zIndex: 0,
1664
+ backgroundColor: "var(--card-bg-color)",
1665
+ boxShadow: "var(--input-box-shadow)"
1666
+ // border-top-left-radius: ${$hasPrefix ? 0 : undefined};
1667
+ // border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};
1668
+ // border-top-right-radius: ${$hasSuffix ? 0 : undefined};
1669
+ // border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};
1670
+ // &[data-scheme='${$scheme}'][data-tone='${$tone}'] {
1671
+ // --card-bg-color: ${color.input.default.enabled.bg};
1672
+ // --card-fg-color: ${color.input.default.enabled.fg};
1673
+ // /* enabled */
1674
+ // *:not(:disabled) + &[data-border] {
1675
+ // --input-box-shadow: ${focusRingBorderStyle({
1676
+ // color: color.input.default.enabled.border,
1677
+ // width: input.border.width,
1678
+ // })};
1679
+ // }
1680
+ // /* invalid */
1681
+ // *:not(:disabled):invalid + & {
1682
+ // --card-bg-color: ${color.input.invalid.enabled.bg};
1683
+ // --card-fg-color: ${color.input.invalid.enabled.fg};
1684
+ // &[data-border] {
1685
+ // --input-box-shadow: ${focusRingBorderStyle({
1686
+ // color: color.input.invalid.enabled.border,
1687
+ // width: input.border.width,
1688
+ // })};
1689
+ // }
1690
+ // }
1691
+ // /* focused */
1692
+ // *:not(:disabled):focus + & {
1693
+ // &[data-border] {
1694
+ // --input-box-shadow: ${$unstableDisableFocusRing
1695
+ // ? undefined
1696
+ // : focusRingStyle({
1697
+ // border: {color: color.input.default.enabled.border, width: input.border.width},
1698
+ // focusRing: input.text.focusRing,
1699
+ // })};
1700
+ // }
1701
+ // &:not([data-border]) {
1702
+ // --input-box-shadow: ${$unstableDisableFocusRing
1703
+ // ? undefined
1704
+ // : focusRingStyle({focusRing: input.text.focusRing})};
1705
+ // }
1706
+ // }
1707
+ // /* disabled */
1708
+ // *:not(:invalid):disabled + & {
1709
+ // --card-bg-color: ${color.input.default.disabled.bg} !important;
1710
+ // --card-fg-color: ${color.input.default.disabled.fg} !important;
1711
+ // --card-icon-color: ${color.input.default.disabled.fg} !important;
1712
+ // &[data-border] {
1713
+ // --input-box-shadow: ${focusRingBorderStyle({
1714
+ // color: color.input.default.disabled.border,
1715
+ // width: input.border.width,
1716
+ // })};
1717
+ // }
1718
+ // }
1719
+ // *:invalid:disabled + & {
1720
+ // --card-bg-color: ${color.input.invalid.disabled.bg} !important;
1721
+ // --card-fg-color: ${color.input.invalid.disabled.fg} !important;
1722
+ // --card-icon-color: ${color.input.invalid.disabled.fg} !important;
1723
+ // &[data-border] {
1724
+ // --input-box-shadow: ${focusRingBorderStyle({
1725
+ // color: color.input.invalid.disabled.border,
1726
+ // width: input.border.width,
1727
+ // })};
1728
+ // }
1729
+ // }
1730
+ // /* readOnly */
1731
+ // *:not(:invalid):read-only + & {
1732
+ // --card-bg-color: ${color.input.default.readOnly.bg} !important;
1733
+ // --card-fg-color: ${color.input.default.readOnly.fg} !important;
1734
+ // }
1735
+ // *:invalid:read-only + & {
1736
+ // --card-bg-color: ${color.input.invalid.readOnly.bg} !important;
1737
+ // --card-fg-color: ${color.input.invalid.readOnly.fg} !important;
1738
+ // }
1739
+ // /* hovered */
1740
+ // @media (hover: hover) {
1741
+ // *:not(:disabled):not(:read-only):not(:invalid):hover + & {
1742
+ // --card-bg-color: ${color.input.default.hovered.bg};
1743
+ // --card-fg-color: ${color.input.default.hovered.fg};
1744
+ // }
1745
+ // *:invalid:not(:disabled):not(:read-only):hover + & {
1746
+ // --card-bg-color: ${color.input.invalid.hovered.bg};
1747
+ // --card-fg-color: ${color.input.invalid.hovered.fg};
1748
+ // }
1749
+ // *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {
1750
+ // --input-box-shadow: ${focusRingBorderStyle({
1751
+ // color: color.input.default.hovered.border,
1752
+ // width: input.border.width,
1753
+ // })};
1754
+ // }
1755
+ // *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {
1756
+ // --input-box-shadow: ${focusRingBorderStyle({
1757
+ // color: color.input.invalid.hovered.border,
1758
+ // width: input.border.width,
1759
+ // })};
1760
+ // }
1761
+ // }
1762
+ // }
1763
+ }
1764
+ }, tokenRules = {
1765
+ token: {
1766
+ "@nest": {
1767
+ "&.atrule": { color: vars.color.syntax.atrule },
1768
+ "&.attr-name": { color: vars.color.syntax.attrName },
1769
+ "&.attr-value": { color: vars.color.syntax.attrValue },
1770
+ "&.attribute": { color: vars.color.syntax.attribute },
1771
+ "&.boolean": { color: vars.color.syntax.boolean },
1772
+ "&.builtin": { color: vars.color.syntax.builtin },
1773
+ "&.cdata": { color: vars.color.syntax.cdata },
1774
+ "&.char": { color: vars.color.syntax.char },
1775
+ "&.class": { color: vars.color.syntax.class },
1776
+ "&.class-name": { color: vars.color.syntax.className },
1777
+ "&.comment": { color: vars.color.syntax.comment },
1778
+ "&.constant": { color: vars.color.syntax.constant },
1779
+ "&.deleted": { color: vars.color.syntax.deleted },
1780
+ "&.doctype": { color: vars.color.syntax.doctype },
1781
+ "&.entity": { color: vars.color.syntax.entity },
1782
+ "&.function": { color: vars.color.syntax.function },
1783
+ "&.hexcode": { color: vars.color.syntax.hexcode },
1784
+ "&.id": { color: vars.color.syntax.id },
1785
+ "&.important": { color: vars.color.syntax.important },
1786
+ "&.inserted": { color: vars.color.syntax.inserted },
1787
+ "&.keyword": { color: vars.color.syntax.keyword },
1788
+ "&.number": { color: vars.color.syntax.number },
1789
+ "&.operator": { color: vars.color.syntax.operator },
1790
+ "&.prolog": { color: vars.color.syntax.prolog },
1791
+ "&.property": { color: vars.color.syntax.property },
1792
+ "&.pseudo-class": { color: vars.color.syntax.pseudoClass },
1793
+ "&.pseudo-element": { color: vars.color.syntax.pseudoElement },
1794
+ "&.punctuation": { color: vars.color.syntax.punctuation },
1795
+ "&.regex": { color: vars.color.syntax.regex },
1796
+ "&.selector": { color: vars.color.syntax.selector },
1797
+ "&.string": { color: vars.color.syntax.string },
1798
+ "&.symbol": { color: vars.color.syntax.symbol },
1799
+ "&.tag": { color: vars.color.syntax.tag },
1800
+ "&.unit": { color: vars.color.syntax.unit },
1801
+ "&.url": { color: vars.color.syntax.url },
1802
+ "&.variable": { color: vars.color.syntax.variable }
1803
+ }
1804
+ }
1805
+ }, tooltipRules = {
1806
+ tooltip: {
1807
+ pointerEvents: "none"
1808
+ },
1809
+ "tooltip-card": {
1810
+ "@nest": {
1811
+ "&[data-animate] > *": {
1812
+ // opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);
1813
+ opacity: "var(--motion-content-opacity, 1)",
1814
+ willChange: "opacity"
1815
+ }
1816
+ }
1817
+ }
1818
+ }, borderRules = {
1819
+ ...responsiveRules("border", {
1820
+ border: "1px solid var(--card-border-color)"
1821
+ }),
1822
+ ...responsiveRules("border-t", {
1823
+ borderTop: "1px solid var(--card-border-color)"
1824
+ }),
1825
+ ...responsiveRules("border-r", {
1826
+ borderRight: "1px solid var(--card-border-color)"
1827
+ }),
1828
+ ...responsiveRules("border-b", {
1829
+ borderBottom: "1px solid var(--card-border-color)"
1830
+ }),
1831
+ ...responsiveRules("border-l", {
1832
+ borderLeft: "1px solid var(--card-border-color)"
1833
+ })
1834
+ }, displayRules = {
1835
+ ...responsiveRules("block", {
1836
+ "@nest": {
1837
+ "&:not([hidden])": {
1838
+ display: "block"
1839
+ }
1840
+ }
1841
+ }),
1842
+ ...responsiveRules("inline-block", {
1843
+ "@nest": {
1844
+ "&:not([hidden])": {
1845
+ display: "inline-block"
1846
+ }
1847
+ }
1848
+ }),
1849
+ ...responsiveRules("flex", {
1850
+ "@nest": {
1851
+ "&:not([hidden])": {
1852
+ display: "flex"
1853
+ }
1854
+ }
1855
+ }),
1856
+ ...responsiveRules("inline-flex", {
1857
+ "@nest": {
1858
+ "&:not([hidden])": {
1859
+ display: "inline-flex"
1860
+ }
1861
+ }
1862
+ }),
1863
+ ...responsiveRules("grid", {
1864
+ gridTemplateRows: "auto",
1865
+ "@nest": {
1866
+ "&:not([hidden])": {
1867
+ display: "grid"
1868
+ }
1869
+ }
1870
+ }),
1871
+ ...responsiveRules("grid-flex", {
1872
+ gridTemplateRows: "auto",
1873
+ "@nest": {
1874
+ "&:not([hidden])": {
1875
+ display: "grid-flex"
1876
+ }
1877
+ }
1878
+ }),
1879
+ ...responsiveRules("none", {
1880
+ "@nest": {
1881
+ "&:not([hidden])": {
1882
+ display: "none"
1883
+ }
1884
+ }
1885
+ })
1886
+ }, flexRules = {
1887
+ // direction
1888
+ ...responsiveRules("row", { flexDirection: "row" }),
1889
+ ...responsiveRules("column", { flexDirection: "column" }),
1890
+ // align
1891
+ ...responsiveRules("align-flex-start", { alignItems: "flex-start" }),
1892
+ ...responsiveRules("align-flex-end", { alignItems: "end" }),
1893
+ ...responsiveRules("align-center", { alignItems: "center" }),
1894
+ ...responsiveRules("align-stretch", { alignItems: "stretch" }),
1895
+ ...responsiveRules("align-baseline", { alignItems: "baseline" }),
1896
+ // justify
1897
+ ...responsiveRules("justify-flex-start", { justifyContent: "flex-start" }),
1898
+ ...responsiveRules("justify-flex-end", { justifyContent: "flex-end" }),
1899
+ ...responsiveRules("justify-center", { justifyContent: "center" }),
1900
+ ...responsiveRules("justify-between", { justifyContent: "space-between" }),
1901
+ ...responsiveRules("justify-around", { justifyContent: "space-around" }),
1902
+ ...responsiveRules("justify-evenly", { justifyContent: "space-evenly" }),
1903
+ // wrap
1904
+ ...responsiveRules("wrap-nowrap", { flexWrap: "nowrap" }),
1905
+ ...responsiveRules("wrap-wrap", { flexWrap: "wrap" }),
1906
+ ...responsiveRules("wrap-reverse", { flexWrap: "wrap-reverse" })
1907
+ }, flexItemRules = {
1908
+ ...responsiveRules("flex-none", { flex: "none" }),
1909
+ ...responsiveRules("flex-1", { flex: 1 }),
1910
+ ...responsiveRules("flex-2", { flex: 2 }),
1911
+ ...responsiveRules("flex-3", { flex: 3 }),
1912
+ ...responsiveRules("flex-4", { flex: 4 }),
1913
+ ...responsiveRules("flex-5", { flex: 5 })
1914
+ }, fontRules = {
1915
+ font: {
1916
+ position: "relative",
1917
+ fontFamily: "var(--font-family)",
1918
+ fontSize: "var(--font-size)",
1919
+ lineHeight: "var(--font-line-height)",
1920
+ letterSpacing: "var(--font-letter-spacing)",
1921
+ fontWeight: "var(--font-weight)",
1922
+ transform: "translateY(var(--font-descender-height))",
1923
+ padding: "1px 0",
1924
+ margin: "0",
1925
+ "--font-cap-height": "calc(var(--font-line-height) - var(--font-ascender-height) - var(--font-descender-height))",
1926
+ "--font-icon-offset": "calc((var(--font-cap-height) - var(--font-icon-size)) / 2)",
1927
+ "--font-weight": "var(--font-weight-regular)",
1928
+ "@nest": {
1929
+ "&:before": {
1930
+ content: '""',
1931
+ display: "block",
1932
+ height: 0,
1933
+ marginTop: "calc((0px - var(--font-ascender-height) - var(--font-descender-height)) - 1px)"
1934
+ },
1935
+ "&:after": {
1936
+ content: '""',
1937
+ display: "block",
1938
+ height: 0,
1939
+ marginBottom: "-1px"
1940
+ },
1941
+ "& svg": {
1942
+ // Certain popular CSS libraries changes the defaults for SVG display
1943
+ // Make sure SVGs are rendered as inline elements
1944
+ display: "inline"
1945
+ },
1946
+ // todo
1947
+ // '& svg:not([data-sanity-icon])': {
1948
+ // fontSize: 'calc(var(--custom-icon-size) / 16 * 1rem)',
1949
+ // margin: 'var(--custom-icon-offset)',
1950
+ // },
1951
+ "& [data-sanity-icon]": {
1952
+ fontSize: "var(--font-icon-size)",
1953
+ margin: "var(--font-icon-offset)",
1954
+ vectorEffect: "non-scaling-stroke"
1955
+ }
1956
+ }
1957
+ },
1958
+ "font-regular": {
1959
+ "--font-weight": "var(--font-weight-regular)"
1960
+ },
1961
+ "font-medium": {
1962
+ "--font-weight": "var(--font-weight-medium)"
1963
+ },
1964
+ "font-semibold": {
1965
+ "--font-weight": "var(--font-weight-semibold)"
1966
+ },
1967
+ "font-bold": {
1968
+ "--font-weight": "var(--font-weight-bold)"
1969
+ }
1970
+ }, gapRules = {
1971
+ ...SPACE.reduce((acc, space) => ({
1972
+ ...acc,
1973
+ ...responsiveRules(`g-${space}`, {
1974
+ gap: space === 0.5 ? "calc(var(--space-1) / 2)" : vars.space[space]
1975
+ })
1976
+ }), {}),
1977
+ ...SPACE.reduce((acc, space) => ({
1978
+ ...acc,
1979
+ ...responsiveRules(`gx-${space}`, {
1980
+ columnGap: space === 0.5 ? "calc(var(--space-1) / 2)" : vars.space[space]
1981
+ })
1982
+ }), {}),
1983
+ ...SPACE.reduce((acc, space) => ({
1984
+ ...acc,
1985
+ ...responsiveRules(`gy-${space}`, {
1986
+ rowGap: space === 0.5 ? "calc(var(--space-1) / 2)" : vars.space[space]
1987
+ })
1988
+ }), {})
1989
+ }, gridRules = {
1990
+ // autoCols
1991
+ ...responsiveRules("auto-cols-auto", { gridAutoColumns: "auto" }),
1992
+ ...responsiveRules("auto-cols-min", { gridAutoColumns: "min" }),
1993
+ ...responsiveRules("auto-cols-max", { gridAutoColumns: "max" }),
1994
+ ...responsiveRules("auto-cols-fr", { gridAutoColumns: "fr" }),
1995
+ // autoFlow
1996
+ ...responsiveRules("auto-flow-row", { gridAutoFlow: "row" }),
1997
+ ...responsiveRules("auto-flow-column", { gridAutoFlow: "column" }),
1998
+ ...responsiveRules("auto-flow-row-dense", { gridAutoFlow: "row dense" }),
1999
+ ...responsiveRules("auto-flow-column-dense", { gridAutoFlow: "column dense" }),
2000
+ // autoRows
2001
+ ...responsiveRules("auto-rows-auto", { gridAutoRows: "auto" }),
2002
+ ...responsiveRules("auto-rows-min", { gridAutoRows: "min-content" }),
2003
+ ...responsiveRules("auto-rows-max", { gridAutoRows: "max-content" }),
2004
+ // ...responsiveRules('auto-rows-fr', {gridAutoRows: 'fr'}),
2005
+ // columns
2006
+ ...responsiveRules("columns-1", { gridTemplateColumns: "repeat(1, 1fr)" }),
2007
+ ...responsiveRules("columns-2", { gridTemplateColumns: "repeat(2, 1fr)" }),
2008
+ ...responsiveRules("columns-3", { gridTemplateColumns: "repeat(3, 1fr)" }),
2009
+ ...responsiveRules("columns-4", { gridTemplateColumns: "repeat(4, 1fr)" }),
2010
+ ...responsiveRules("columns-5", { gridTemplateColumns: "repeat(5, 1fr)" }),
2011
+ ...responsiveRules("columns-6", { gridTemplateColumns: "repeat(6, 1fr)" }),
2012
+ ...responsiveRules("columns-7", { gridTemplateColumns: "repeat(7, 1fr)" }),
2013
+ ...responsiveRules("columns-8", { gridTemplateColumns: "repeat(8, 1fr)" }),
2014
+ ...responsiveRules("columns-9", { gridTemplateColumns: "repeat(9, 1fr)" }),
2015
+ ...responsiveRules("columns-10", { gridTemplateColumns: "repeat(10, 1fr)" }),
2016
+ ...responsiveRules("columns-12", { gridTemplateColumns: "repeat(12, 1fr)" })
2017
+ }, gridItemRules = {
2018
+ // column
2019
+ ...responsiveRules("col-auto", { gridColumn: "span 1 / span 1" }),
2020
+ ...responsiveRules("col-full", { gridColumn: "1 / -1" }),
2021
+ ...responsiveRules("col-1", { gridColumn: "span 1 / span 1" }),
2022
+ ...responsiveRules("col-2", { gridColumn: "span 2 / span 2" }),
2023
+ ...responsiveRules("col-3", { gridColumn: "span 3 / span 3" }),
2024
+ ...responsiveRules("col-4", { gridColumn: "span 4 / span 4" }),
2025
+ ...responsiveRules("col-5", { gridColumn: "span 5 / span 5" }),
2026
+ ...responsiveRules("col-6", { gridColumn: "span 6 / span 6" }),
2027
+ ...responsiveRules("col-7", { gridColumn: "span 7 / span 7" }),
2028
+ ...responsiveRules("col-8", { gridColumn: "span 8 / span 8" }),
2029
+ ...responsiveRules("col-9", { gridColumn: "span 9 / span 9" }),
2030
+ ...responsiveRules("col-10", { gridColumn: "span 10 / span 10" }),
2031
+ ...responsiveRules("col-11", { gridColumn: "span 11 / span 11" }),
2032
+ ...responsiveRules("col-12", { gridColumn: "span 12 / span 12" }),
2033
+ // columnStart
2034
+ ...responsiveRules("col-start-auto", { gridColumnStart: "auto" }),
2035
+ ...responsiveRules("col-start-1", { gridColumnStart: "1" }),
2036
+ ...responsiveRules("col-start-2", { gridColumnStart: "2" }),
2037
+ ...responsiveRules("col-start-3", { gridColumnStart: "3" }),
2038
+ ...responsiveRules("col-start-4", { gridColumnStart: "4" }),
2039
+ ...responsiveRules("col-start-5", { gridColumnStart: "5" }),
2040
+ ...responsiveRules("col-start-6", { gridColumnStart: "6" }),
2041
+ ...responsiveRules("col-start-7", { gridColumnStart: "7" }),
2042
+ ...responsiveRules("col-start-8", { gridColumnStart: "8" }),
2043
+ ...responsiveRules("col-start-9", { gridColumnStart: "9" }),
2044
+ ...responsiveRules("col-start-10", { gridColumnStart: "10" }),
2045
+ ...responsiveRules("col-start-11", { gridColumnStart: "11" }),
2046
+ ...responsiveRules("col-start-12", { gridColumnStart: "12" }),
2047
+ // columnEnd
2048
+ ...responsiveRules("col-end-auto", { gridColumnEnd: "auto" }),
2049
+ ...responsiveRules("col-end-1", { gridColumnEnd: "1" }),
2050
+ ...responsiveRules("col-end-2", { gridColumnEnd: "2" }),
2051
+ ...responsiveRules("col-end-3", { gridColumnEnd: "3" }),
2052
+ ...responsiveRules("col-end-4", { gridColumnEnd: "4" }),
2053
+ ...responsiveRules("col-end-5", { gridColumnEnd: "5" }),
2054
+ ...responsiveRules("col-end-6", { gridColumnEnd: "6" }),
2055
+ ...responsiveRules("col-end-7", { gridColumnEnd: "7" }),
2056
+ ...responsiveRules("col-end-8", { gridColumnEnd: "8" }),
2057
+ ...responsiveRules("col-end-9", { gridColumnEnd: "9" }),
2058
+ ...responsiveRules("col-end-10", { gridColumnEnd: "10" }),
2059
+ ...responsiveRules("col-end-11", { gridColumnEnd: "11" }),
2060
+ ...responsiveRules("col-end-12", { gridColumnEnd: "12" }),
2061
+ // row
2062
+ ...responsiveRules("row-auto", { gridRow: "span 1 / span 1" }),
2063
+ ...responsiveRules("row-full", { gridRow: "1 / -1" }),
2064
+ ...responsiveRules("row-1", { gridRow: "span 1 / span 1" }),
2065
+ ...responsiveRules("row-2", { gridRow: "span 2 / span 2" }),
2066
+ ...responsiveRules("row-3", { gridRow: "span 3 / span 3" }),
2067
+ ...responsiveRules("row-4", { gridRow: "span 4 / span 4" }),
2068
+ ...responsiveRules("row-5", { gridRow: "span 5 / span 5" }),
2069
+ ...responsiveRules("row-6", { gridRow: "span 6 / span 6" }),
2070
+ ...responsiveRules("row-7", { gridRow: "span 7 / span 7" }),
2071
+ ...responsiveRules("row-8", { gridRow: "span 8 / span 8" }),
2072
+ ...responsiveRules("row-9", { gridRow: "span 9 / span 9" }),
2073
+ ...responsiveRules("row-10", { gridRow: "span 10 / span 10" }),
2074
+ ...responsiveRules("row-11", { gridRow: "span 11 / span 11" }),
2075
+ ...responsiveRules("row-12", { gridRow: "span 12 / span 12" }),
2076
+ // rowStart
2077
+ ...responsiveRules("row-start-auto", { gridRowStart: "auto" }),
2078
+ ...responsiveRules("row-start-1", { gridRowStart: "1" }),
2079
+ ...responsiveRules("row-start-2", { gridRowStart: "2" }),
2080
+ ...responsiveRules("row-start-3", { gridRowStart: "3" }),
2081
+ ...responsiveRules("row-start-4", { gridRowStart: "4" }),
2082
+ ...responsiveRules("row-start-5", { gridRowStart: "5" }),
2083
+ ...responsiveRules("row-start-6", { gridRowStart: "6" }),
2084
+ ...responsiveRules("row-start-7", { gridRowStart: "7" }),
2085
+ ...responsiveRules("row-start-8", { gridRowStart: "8" }),
2086
+ ...responsiveRules("row-start-9", { gridRowStart: "9" }),
2087
+ ...responsiveRules("row-start-10", { gridRowStart: "10" }),
2088
+ ...responsiveRules("row-start-11", { gridRowStart: "11" }),
2089
+ ...responsiveRules("row-start-12", { gridRowStart: "12" }),
2090
+ // rowEnd
2091
+ ...responsiveRules("row-end-auto", { gridRowEnd: "auto" }),
2092
+ ...responsiveRules("row-end-1", { gridRowEnd: "1" }),
2093
+ ...responsiveRules("row-end-2", { gridRowEnd: "2" }),
2094
+ ...responsiveRules("row-end-3", { gridRowEnd: "3" }),
2095
+ ...responsiveRules("row-end-4", { gridRowEnd: "4" }),
2096
+ ...responsiveRules("row-end-5", { gridRowEnd: "5" }),
2097
+ ...responsiveRules("row-end-6", { gridRowEnd: "6" }),
2098
+ ...responsiveRules("row-end-7", { gridRowEnd: "7" }),
2099
+ ...responsiveRules("row-end-8", { gridRowEnd: "8" }),
2100
+ ...responsiveRules("row-end-9", { gridRowEnd: "9" }),
2101
+ ...responsiveRules("row-end-10", { gridRowEnd: "10" }),
2102
+ ...responsiveRules("row-end-11", { gridRowEnd: "11" }),
2103
+ ...responsiveRules("row-end-12", { gridRowEnd: "12" })
2104
+ }, heightRules = {
2105
+ ...responsiveRules("h-fill", { height: "100%" }),
2106
+ ...responsiveRules("h-stretch", { height: "stretch" })
2107
+ }, marginRules = SPACE.reduce((acc, space) => ({
2108
+ ...acc,
2109
+ ...responsiveRules(`m-${space}`, { margin: vars.space[space] })
2110
+ }), {}), marginXRules = SPACE.reduce((acc, space) => ({
2111
+ ...acc,
2112
+ ...responsiveRules(`mx-${space}`, {
2113
+ marginLeft: vars.space[space],
2114
+ marginRight: vars.space[space]
2115
+ })
2116
+ }), {}), marginYRules = SPACE.reduce((acc, space) => ({
2117
+ ...acc,
2118
+ ...responsiveRules(`my-${space}`, {
2119
+ marginTop: vars.space[space],
2120
+ marginBottom: vars.space[space]
2121
+ })
2122
+ }), {}), marginTopRules = SPACE.reduce((acc, space) => ({
2123
+ ...acc,
2124
+ ...responsiveRules(`mt-${space}`, { marginTop: vars.space[space] })
2125
+ }), {}), marginRightRules = SPACE.reduce((acc, space) => ({
2126
+ ...acc,
2127
+ ...responsiveRules(`mr-${space}`, { marginRight: vars.space[space] })
2128
+ }), {}), marginBottomRules = SPACE.reduce((acc, space) => ({
2129
+ ...acc,
2130
+ ...responsiveRules(`mb-${space}`, { marginBottom: vars.space[space] })
2131
+ }), {}), marginLeftRules = SPACE.reduce((acc, space) => ({
2132
+ ...acc,
2133
+ ...responsiveRules(`ml-${space}`, { marginLeft: vars.space[space] })
2134
+ }), {}), maxWidthRules = {
2135
+ ...responsiveRules("max-w-0", {
2136
+ maxWidth: "var(--container-0)"
2137
+ }),
2138
+ ...responsiveRules("max-w-1", {
2139
+ maxWidth: "var(--container-1)"
2140
+ }),
2141
+ ...responsiveRules("max-w-2", {
2142
+ maxWidth: "var(--container-2)"
2143
+ }),
2144
+ ...responsiveRules("max-w-3", {
2145
+ maxWidth: "var(--container-3)"
2146
+ }),
2147
+ ...responsiveRules("max-w-4", {
2148
+ maxWidth: "var(--container-4)"
2149
+ }),
2150
+ ...responsiveRules("max-w-5", {
2151
+ maxWidth: "var(--container-5)"
2152
+ }),
2153
+ ...responsiveRules("max-w-auto", {
2154
+ maxWidth: "none"
2155
+ }),
2156
+ ...responsiveRules("max-w-fill", {
2157
+ maxWidth: "100%"
2158
+ })
2159
+ }, overflowRules = {
2160
+ ...responsiveRules("overflow-visible", { overflow: "visible" }),
2161
+ ...responsiveRules("overflow-hidden", { overflow: "hidden" }),
2162
+ ...responsiveRules("overflow-scroll", { overflow: "scroll" }),
2163
+ ...responsiveRules("overflow-auto", { overflow: "auto" })
2164
+ }, paddingRules = SPACE.reduce((acc, space) => ({
2165
+ ...acc,
2166
+ ...responsiveRules(`p-${space}`, { padding: vars.space[space] })
2167
+ }), {}), paddingXRules = SPACE.reduce((acc, space) => ({
2168
+ ...acc,
2169
+ ...responsiveRules(`px-${space}`, {
2170
+ paddingLeft: vars.space[space],
2171
+ paddingRight: vars.space[space]
2172
+ })
2173
+ }), {}), paddingYRules = SPACE.reduce((acc, space) => ({
2174
+ ...acc,
2175
+ ...responsiveRules(`py-${space}`, {
2176
+ paddingTop: vars.space[space],
2177
+ paddingBottom: vars.space[space]
2178
+ })
2179
+ }), {}), paddingTopRules = SPACE.reduce((acc, space) => ({
2180
+ ...acc,
2181
+ ...responsiveRules(`pt-${space}`, { paddingTop: vars.space[space] })
2182
+ }), {}), paddingRightRules = SPACE.reduce((acc, space) => ({
2183
+ ...acc,
2184
+ ...responsiveRules(`pr-${space}`, { paddingRight: vars.space[space] })
2185
+ }), {}), paddingBottomRules = SPACE.reduce((acc, space) => ({
2186
+ ...acc,
2187
+ ...responsiveRules(`pb-${space}`, { paddingBottom: vars.space[space] })
2188
+ }), {}), paddingLeftRules = SPACE.reduce((acc, space) => ({
2189
+ ...acc,
2190
+ ...responsiveRules(`pl-${space}`, { paddingLeft: vars.space[space] })
2191
+ }), {}), pointerEventsRules = {
2192
+ "pointer-events-none": {
2193
+ pointerEvents: "none"
2194
+ },
2195
+ "pointer-events-auto": {
2196
+ pointerEvents: "auto"
2197
+ }
2198
+ }, positionRules = {
2199
+ ...responsiveRules("pos-absolute", {
2200
+ position: "absolute"
2201
+ }),
2202
+ ...responsiveRules("pos-fixed", {
2203
+ position: "fixed"
2204
+ }),
2205
+ ...responsiveRules("pos-relative", {
2206
+ position: "relative"
2207
+ }),
2208
+ ...responsiveRules("pos-static", {
2209
+ position: "static"
2210
+ }),
2211
+ ...responsiveRules("pos-sticky", {
2212
+ position: "sticky"
2213
+ }),
2214
+ ...responsiveRules("inset-0", {
2215
+ top: 0,
2216
+ left: 0,
2217
+ right: 0,
2218
+ bottom: 0
2219
+ })
2220
+ }, radiusRules = {
2221
+ ...responsiveRules("r-0", { borderRadius: "var(--radius-0)" }),
2222
+ ...responsiveRules("r-1", { borderRadius: "var(--radius-1)" }),
2223
+ ...responsiveRules("r-2", { borderRadius: "var(--radius-2)" }),
2224
+ ...responsiveRules("r-3", { borderRadius: "var(--radius-3)" }),
2225
+ ...responsiveRules("r-4", { borderRadius: "var(--radius-4)" }),
2226
+ ...responsiveRules("r-5", { borderRadius: "var(--radius-5)" }),
2227
+ ...responsiveRules("r-6", { borderRadius: "var(--radius-6)" }),
2228
+ ...responsiveRules("r-round", { borderRadius: "9999px" })
2229
+ }, shadowRules = {
2230
+ ...responsiveRules("shadow-0", {
2231
+ boxShadow: "none"
2232
+ }),
2233
+ ...responsiveRules("shadow-1", {
2234
+ boxShadow: [
2235
+ "var(--card-shadow-outline) var(--color-shadow-outline)",
2236
+ "var(--shadow-1-umbra) var(--color-shadow-umbra)",
2237
+ "var(--shadow-1-penumbra) var(--color-shadow-penumbra)",
2238
+ "var(--shadow-1-ambient) var(--color-shadow-ambient)"
2239
+ ].join(", ")
2240
+ }),
2241
+ ...responsiveRules("shadow-2", {
2242
+ boxShadow: [
2243
+ "var(--card-shadow-outline) var(--color-shadow-outline)",
2244
+ "var(--shadow-2-umbra) var(--color-shadow-umbra)",
2245
+ "var(--shadow-2-penumbra) var(--color-shadow-penumbra)",
2246
+ "var(--shadow-2-ambient) var(--color-shadow-ambient)"
2247
+ ].join(", ")
2248
+ }),
2249
+ ...responsiveRules("shadow-3", {
2250
+ boxShadow: [
2251
+ "var(--card-shadow-outline) var(--color-shadow-outline)",
2252
+ "var(--shadow-3-umbra) var(--color-shadow-umbra)",
2253
+ "var(--shadow-3-penumbra) var(--color-shadow-penumbra)",
2254
+ "var(--shadow-3-ambient) var(--color-shadow-ambient)"
2255
+ ].join(", ")
2256
+ }),
2257
+ ...responsiveRules("shadow-4", {
2258
+ boxShadow: [
2259
+ "var(--card-shadow-outline) var(--color-shadow-outline)",
2260
+ "var(--shadow-4-umbra) var(--color-shadow-umbra)",
2261
+ "var(--shadow-4-penumbra) var(--color-shadow-penumbra)",
2262
+ "var(--shadow-4-ambient) var(--color-shadow-ambient)"
2263
+ ].join(", ")
2264
+ }),
2265
+ ...responsiveRules("shadow-5", {
2266
+ boxShadow: [
2267
+ "var(--card-shadow-outline) var(--color-shadow-outline)",
2268
+ "var(--shadow-5-umbra) var(--color-shadow-umbra)",
2269
+ "var(--shadow-5-penumbra) var(--color-shadow-penumbra)",
2270
+ "var(--shadow-5-ambient) var(--color-shadow-ambient)"
2271
+ ].join(", ")
2272
+ })
2273
+ }, widthRules = {
2274
+ "w-fill": {
2275
+ width: ["-moz-available", "-webkit-fill-available", "stretch"]
2276
+ }
2277
+ }, rules = {
2278
+ // styless
2279
+ ...displayRules,
2280
+ ...flexRules,
2281
+ ...flexItemRules,
2282
+ ...gridItemRules,
2283
+ ...borderRules,
2284
+ ...paddingRules,
2285
+ ...paddingXRules,
2286
+ ...paddingYRules,
2287
+ ...paddingTopRules,
2288
+ ...paddingRightRules,
2289
+ ...paddingBottomRules,
2290
+ ...paddingLeftRules,
2291
+ ...pointerEventsRules,
2292
+ ...marginRules,
2293
+ ...marginXRules,
2294
+ ...marginYRules,
2295
+ ...marginTopRules,
2296
+ ...marginRightRules,
2297
+ ...marginBottomRules,
2298
+ ...marginLeftRules,
2299
+ ...fontRules,
2300
+ ...gapRules,
2301
+ ...gridRules,
2302
+ ...heightRules,
2303
+ ...overflowRules,
2304
+ ...positionRules,
2305
+ ...radiusRules,
2306
+ ...shadowRules,
2307
+ ...widthRules,
2308
+ // primitives
2309
+ ...avatarRules,
2310
+ ...badgeRules,
2311
+ ...boxRules,
2312
+ ...buttonRules,
2313
+ ...cardRules,
2314
+ ...checkboxRules,
2315
+ ...codeRules,
2316
+ ...containerRules,
2317
+ ...headingRules,
2318
+ ...kbdRules,
2319
+ ...labelRules,
2320
+ ...maxWidthRules,
2321
+ ...popoverRules,
2322
+ ...radioRules,
2323
+ ...selectRules,
2324
+ ...selectableRules,
2325
+ ...spinnerRules,
2326
+ ...switchRules,
2327
+ ...textRules,
2328
+ ...textAreaRules,
2329
+ ...textInputRules,
2330
+ ...tokenRules,
2331
+ ...tooltipRules,
2332
+ // components
2333
+ ...breadcrumbsRules,
2334
+ ...dialogRules
2335
+ };
2336
+ function compileRule(selector, props) {
2337
+ return compileProperties(selector, props) + compileNestedRules(selector, props["@nest"]);
2338
+ }
2339
+ function compileProperties(selector, props) {
2340
+ let css = "{";
2341
+ for (const key in props) {
2342
+ if (key === "@keyframes" || key === "@media" || key === "@nest") continue;
2343
+ const value = props[key], valueArr = Array.isArray(value) ? value : [value];
2344
+ for (const v of valueArr)
2345
+ css += toSnakeCase(key) + ":" + v + ";";
2346
+ }
2347
+ return css.length === 1 ? "" : selector + css + "}";
2348
+ }
2349
+ function compileNestedRules(selector, props) {
2350
+ if (!props) return "";
2351
+ let css = "";
2352
+ for (const key in props) {
2353
+ const value = props[key];
2354
+ css += `
2355
+ ` + key.replace(/&/g, selector) + compileProperties(selector, value).substring(selector.length);
2356
+ }
2357
+ return css;
2358
+ }
2359
+ function compileMediaQueryRule(query, rules2) {
2360
+ let css = `@media ${query}{`;
2361
+ for (const key in rules2)
2362
+ css += `
2363
+ ` + compileRule(`.${key}`.replace(/:/g, "\\:"), rules2[key]);
2364
+ return css + `
2365
+ }`;
2366
+ }
2367
+ function toSnakeCase(value) {
2368
+ return value.replace(/[A-Z]/g, (match) => "-" + match.toLowerCase());
2369
+ }
2370
+ function compileRules(rules2) {
2371
+ let css = "";
2372
+ const keyframes = {}, mediaQueries = {};
2373
+ for (const [className, props] of Object.entries(rules2)) {
2374
+ const selectorCss = compileRule(`.${className}`.replace(/:/g, "\\:"), props);
2375
+ if (css += selectorCss ? `${selectorCss}
2376
+ ` : "", props["@keyframes"])
2377
+ for (const name in props["@keyframes"])
2378
+ keyframes[name] = props["@keyframes"][name];
2379
+ if (props["@media"])
2380
+ for (const key in props["@media"])
2381
+ mediaQueries[key] || (mediaQueries[key] = {}), mediaQueries[key][className] = props["@media"][key];
2382
+ }
2383
+ for (const [name, value] of Object.entries(keyframes)) {
2384
+ let keyframesCss = `@keyframes ${name} {
2385
+ `;
2386
+ for (const [key, props] of Object.entries(value))
2387
+ keyframesCss += ` ${key} {
2388
+ `, keyframesCss += compileRule("", props).replace(/\n/g, `
2389
+ `) + `
2390
+ `, keyframesCss += ` }
2391
+ `;
2392
+ keyframesCss += `}
2393
+ `, css += keyframesCss;
2394
+ }
2395
+ for (const [query, queryRules] of Object.entries(mediaQueries))
2396
+ css += compileMediaQueryRule(query, queryRules) + `
2397
+ `;
2398
+ return css.replace(/\n{2,}/g, `
2399
+ `).trimStart();
2400
+ }
2401
+ function compileSystem() {
2402
+ return compileRules(rules);
2403
+ }
2404
+ function rem(value) {
2405
+ return value === 0 ? "0" : `${value / 16}rem`;
2406
+ }
2407
+ function px(value) {
2408
+ return value === 0 ? "0" : `${value}px`;
2409
+ }
2410
+ function toBoxShadow(value) {
2411
+ return value ? value.map((n) => px(n)).join(" ") : "none";
2412
+ }
2413
+ function countThemeEntries(obj) {
2414
+ let count = 0;
2415
+ if (isArray(obj))
2416
+ for (let i = 0; i < obj.length; i++) {
2417
+ const value = obj[i];
2418
+ isRecord(value) || isArray(value) ? count += countThemeEntries(value) : count++;
2419
+ }
2420
+ else
2421
+ for (const [key, value] of Object.entries(obj))
2422
+ key.startsWith("_") || (isRecord(value) || isArray(value) ? count += countThemeEntries(value) : count++);
2423
+ return count;
2424
+ }
2425
+ function compileTheme(theme) {
2426
+ for (const [key, val] of Object.entries(theme.color.light.default))
2427
+ (isRecord(val) || isArray(val)) && console.log(key, countThemeEntries(val));
2428
+ return [
2429
+ compileRule(".root", {
2430
+ [varNames.avatar.focusRing.offset]: px(theme.avatar.focusRing.offset),
2431
+ [varNames.avatar.focusRing.width]: px(theme.avatar.focusRing.width),
2432
+ // [varNames.avatar.size[0].distance]: px(theme.avatar.size[0].distance),
2433
+ // [varNames.avatar.size[0].size]: px(theme.avatar.size[0].size),
2434
+ "--avatar-0-distance": px(theme.avatar.sizes[0].distance),
2435
+ "--avatar-0-size": px(theme.avatar.sizes[0].size),
2436
+ "--avatar-1-distance": px(theme.avatar.sizes[1].distance),
2437
+ "--avatar-1-size": px(theme.avatar.sizes[1].size),
2438
+ "--avatar-2-distance": px(theme.avatar.sizes[2].distance),
2439
+ "--avatar-2-size": px(theme.avatar.sizes[2].size),
2440
+ "--avatar-3-distance": px(theme.avatar.sizes[3].distance),
2441
+ "--avatar-3-size": px(theme.avatar.sizes[3].size),
2442
+ "--button-border-width": px(theme.button.border.width),
2443
+ "--button-focus-ring-offset": px(theme.button.focusRing.offset),
2444
+ "--button-focus-ring-width": px(theme.button.focusRing.width),
2445
+ "--button-text-weight": `${theme.button.textWeight}`,
2446
+ "--card-border-width": px(theme.card.border.width),
2447
+ "--card-focus-ring-offset": px(theme.card.focusRing.offset),
2448
+ "--card-focus-ring-width": px(theme.card.focusRing.width),
2449
+ "--card-shadow-outline": `0 0 0 ${px(theme.card.shadow.outline)}`,
2450
+ "--font-code-family": theme.font.code.family,
2451
+ "--font-code-weight-regular": `${theme.font.code.weights.regular}`,
2452
+ "--font-code-weight-medium": `${theme.font.code.weights.medium}`,
2453
+ "--font-code-weight-semibold": `${theme.font.code.weights.semibold}`,
2454
+ "--font-code-weight-bold": `${theme.font.code.weights.bold}`,
2455
+ "--font-code-0-size": rem(theme.font.code.sizes[0].fontSize),
2456
+ "--font-code-0-line-height": rem(theme.font.code.sizes[0].lineHeight),
2457
+ "--font-code-0-ascender-height": px(theme.font.code.sizes[0].ascenderHeight),
2458
+ "--font-code-0-descender-height": px(theme.font.code.sizes[0].descenderHeight),
2459
+ "--font-code-0-letter-spacing": px(theme.font.code.sizes[0].letterSpacing),
2460
+ "--font-code-0-icon-size": px(theme.font.code.sizes[0].iconSize),
2461
+ "--font-code-1-size": rem(theme.font.code.sizes[1].fontSize),
2462
+ "--font-code-1-line-height": px(theme.font.code.sizes[1].lineHeight),
2463
+ "--font-code-1-ascender-height": px(theme.font.code.sizes[1].ascenderHeight),
2464
+ "--font-code-1-descender-height": px(theme.font.code.sizes[1].descenderHeight),
2465
+ "--font-code-1-letter-spacing": px(theme.font.code.sizes[1].letterSpacing),
2466
+ "--font-code-1-icon-size": px(theme.font.code.sizes[1].iconSize),
2467
+ "--font-code-2-size": rem(theme.font.code.sizes[2].fontSize),
2468
+ "--font-code-2-line-height": rem(theme.font.code.sizes[2].lineHeight),
2469
+ "--font-code-2-ascender-height": px(theme.font.code.sizes[2].ascenderHeight),
2470
+ "--font-code-2-descender-height": px(theme.font.code.sizes[2].descenderHeight),
2471
+ "--font-code-2-letter-spacing": px(theme.font.code.sizes[2].letterSpacing),
2472
+ "--font-code-2-icon-size": px(theme.font.code.sizes[2].iconSize),
2473
+ "--font-code-3-size": rem(theme.font.code.sizes[3].fontSize),
2474
+ "--font-code-3-line-height": rem(theme.font.code.sizes[3].lineHeight),
2475
+ "--font-code-3-ascender-height": px(theme.font.code.sizes[3].ascenderHeight),
2476
+ "--font-code-3-descender-height": px(theme.font.code.sizes[3].descenderHeight),
2477
+ "--font-code-3-letter-spacing": px(theme.font.code.sizes[3].letterSpacing),
2478
+ "--font-code-3-icon-size": px(theme.font.code.sizes[3].iconSize),
2479
+ "--font-code-4-size": rem(theme.font.code.sizes[4].fontSize),
2480
+ "--font-code-4-line-height": rem(theme.font.code.sizes[4].lineHeight),
2481
+ "--font-code-4-ascender-height": px(theme.font.code.sizes[4].ascenderHeight),
2482
+ "--font-code-4-descender-height": px(theme.font.code.sizes[4].descenderHeight),
2483
+ "--font-code-4-letter-spacing": px(theme.font.code.sizes[4].letterSpacing),
2484
+ "--font-code-4-icon-size": px(theme.font.code.sizes[4].iconSize),
2485
+ "--font-heading-family": theme.font.heading.family,
2486
+ "--font-heading-weight-regular": `${theme.font.heading.weights.regular}`,
2487
+ "--font-heading-weight-medium": `${theme.font.heading.weights.medium}`,
2488
+ "--font-heading-weight-semibold": `${theme.font.heading.weights.semibold}`,
2489
+ "--font-heading-weight-bold": `${theme.font.heading.weights.bold}`,
2490
+ "--font-heading-0-size": rem(theme.font.heading.sizes[0].fontSize),
2491
+ "--font-heading-0-line-height": rem(theme.font.heading.sizes[0].lineHeight),
2492
+ "--font-heading-0-ascender-height": px(theme.font.heading.sizes[0].ascenderHeight),
2493
+ "--font-heading-0-descender-height": px(theme.font.heading.sizes[0].descenderHeight),
2494
+ "--font-heading-0-letter-spacing": px(theme.font.heading.sizes[0].letterSpacing),
2495
+ "--font-heading-0-icon-size": px(theme.font.heading.sizes[0].iconSize),
2496
+ "--font-heading-1-size": rem(theme.font.heading.sizes[1].fontSize),
2497
+ "--font-heading-1-line-height": rem(theme.font.heading.sizes[1].lineHeight),
2498
+ "--font-heading-1-ascender-height": px(theme.font.heading.sizes[1].ascenderHeight),
2499
+ "--font-heading-1-descender-height": px(theme.font.heading.sizes[1].descenderHeight),
2500
+ "--font-heading-1-letter-spacing": px(theme.font.heading.sizes[1].letterSpacing),
2501
+ "--font-heading-1-icon-size": px(theme.font.heading.sizes[1].iconSize),
2502
+ "--font-heading-2-size": rem(theme.font.heading.sizes[2].fontSize),
2503
+ "--font-heading-2-line-height": rem(theme.font.heading.sizes[2].lineHeight),
2504
+ "--font-heading-2-ascender-height": px(theme.font.heading.sizes[2].ascenderHeight),
2505
+ "--font-heading-2-descender-height": px(theme.font.heading.sizes[2].descenderHeight),
2506
+ "--font-heading-2-letter-spacing": px(theme.font.heading.sizes[2].letterSpacing),
2507
+ "--font-heading-2-icon-size": px(theme.font.heading.sizes[2].iconSize),
2508
+ "--font-heading-3-size": rem(theme.font.heading.sizes[3].fontSize),
2509
+ "--font-heading-3-line-height": rem(theme.font.heading.sizes[3].lineHeight),
2510
+ "--font-heading-3-ascender-height": px(theme.font.heading.sizes[3].ascenderHeight),
2511
+ "--font-heading-3-descender-height": px(theme.font.heading.sizes[3].descenderHeight),
2512
+ "--font-heading-3-letter-spacing": px(theme.font.heading.sizes[3].letterSpacing),
2513
+ "--font-heading-3-icon-size": px(theme.font.heading.sizes[3].iconSize),
2514
+ "--font-heading-4-size": rem(theme.font.heading.sizes[4].fontSize),
2515
+ "--font-heading-4-line-height": rem(theme.font.heading.sizes[4].lineHeight),
2516
+ "--font-heading-4-ascender-height": px(theme.font.heading.sizes[4].ascenderHeight),
2517
+ "--font-heading-4-descender-height": px(theme.font.heading.sizes[4].descenderHeight),
2518
+ "--font-heading-4-letter-spacing": px(theme.font.heading.sizes[4].letterSpacing),
2519
+ "--font-heading-4-icon-size": px(theme.font.heading.sizes[4].iconSize),
2520
+ "--font-heading-5-size": rem(theme.font.heading.sizes[5].fontSize),
2521
+ "--font-heading-5-line-height": rem(theme.font.heading.sizes[5].lineHeight),
2522
+ "--font-heading-5-ascender-height": px(theme.font.heading.sizes[5].ascenderHeight),
2523
+ "--font-heading-5-descender-height": px(theme.font.heading.sizes[5].descenderHeight),
2524
+ "--font-heading-5-letter-spacing": px(theme.font.heading.sizes[5].letterSpacing),
2525
+ "--font-heading-5-icon-size": px(theme.font.heading.sizes[5].iconSize),
2526
+ "--font-label-family": theme.font.label.family,
2527
+ "--font-label-weight-regular": `${theme.font.label.weights.regular}`,
2528
+ "--font-label-weight-medium": `${theme.font.label.weights.medium}`,
2529
+ "--font-label-weight-semibold": `${theme.font.label.weights.semibold}`,
2530
+ "--font-label-weight-bold": `${theme.font.label.weights.bold}`,
2531
+ "--font-label-0-size": rem(theme.font.label.sizes[0].fontSize),
2532
+ "--font-label-0-line-height": rem(theme.font.label.sizes[0].lineHeight),
2533
+ "--font-label-0-ascender-height": px(theme.font.label.sizes[0].ascenderHeight),
2534
+ "--font-label-0-descender-height": px(theme.font.label.sizes[0].descenderHeight),
2535
+ "--font-label-0-letter-spacing": px(theme.font.label.sizes[0].letterSpacing),
2536
+ "--font-label-0-icon-size": px(theme.font.label.sizes[0].iconSize),
2537
+ "--font-label-1-size": rem(theme.font.label.sizes[1].fontSize),
2538
+ "--font-label-1-line-height": rem(theme.font.label.sizes[1].lineHeight),
2539
+ "--font-label-1-ascender-height": px(theme.font.label.sizes[1].ascenderHeight),
2540
+ "--font-label-1-descender-height": px(theme.font.label.sizes[1].descenderHeight),
2541
+ "--font-label-1-letter-spacing": px(theme.font.label.sizes[1].letterSpacing),
2542
+ "--font-label-1-icon-size": px(theme.font.label.sizes[1].iconSize),
2543
+ "--font-label-2-size": rem(theme.font.label.sizes[2].fontSize),
2544
+ "--font-label-2-line-height": rem(theme.font.label.sizes[2].lineHeight),
2545
+ "--font-label-2-ascender-height": px(theme.font.label.sizes[2].ascenderHeight),
2546
+ "--font-label-2-descender-height": px(theme.font.label.sizes[2].descenderHeight),
2547
+ "--font-label-2-letter-spacing": px(theme.font.label.sizes[2].letterSpacing),
2548
+ "--font-label-2-icon-size": px(theme.font.label.sizes[2].iconSize),
2549
+ "--font-label-3-size": rem(theme.font.label.sizes[3].fontSize),
2550
+ "--font-label-3-line-height": rem(theme.font.label.sizes[3].lineHeight),
2551
+ "--font-label-3-ascender-height": px(theme.font.label.sizes[3].ascenderHeight),
2552
+ "--font-label-3-descender-height": px(theme.font.label.sizes[3].descenderHeight),
2553
+ "--font-label-3-letter-spacing": px(theme.font.label.sizes[3].letterSpacing),
2554
+ "--font-label-3-icon-size": px(theme.font.label.sizes[3].iconSize),
2555
+ "--font-label-4-size": rem(theme.font.label.sizes[4].fontSize),
2556
+ "--font-label-4-line-height": rem(theme.font.label.sizes[4].lineHeight),
2557
+ "--font-label-4-ascender-height": px(theme.font.label.sizes[4].ascenderHeight),
2558
+ "--font-label-4-descender-height": px(theme.font.label.sizes[4].descenderHeight),
2559
+ "--font-label-4-letter-spacing": px(theme.font.label.sizes[4].letterSpacing),
2560
+ "--font-label-4-icon-size": px(theme.font.label.sizes[4].iconSize),
2561
+ "--font-label-5-size": rem(theme.font.label.sizes[5].fontSize),
2562
+ "--font-label-5-line-height": rem(theme.font.label.sizes[5].lineHeight),
2563
+ "--font-label-5-ascender-height": px(theme.font.label.sizes[5].ascenderHeight),
2564
+ "--font-label-5-descender-height": px(theme.font.label.sizes[5].descenderHeight),
2565
+ "--font-label-5-letter-spacing": px(theme.font.label.sizes[5].letterSpacing),
2566
+ "--font-label-5-icon-size": px(theme.font.label.sizes[5].iconSize),
2567
+ "--font-text-family": theme.font.text.family,
2568
+ "--font-text-weight-regular": `${theme.font.text.weights.regular}`,
2569
+ "--font-text-weight-medium": `${theme.font.text.weights.medium}`,
2570
+ "--font-text-weight-semibold": `${theme.font.text.weights.semibold}`,
2571
+ "--font-text-weight-bold": `${theme.font.text.weights.bold}`,
2572
+ "--font-text-0-size": rem(theme.font.text.sizes[0].fontSize),
2573
+ "--font-text-0-line-height": rem(theme.font.text.sizes[0].lineHeight),
2574
+ "--font-text-0-ascender-height": px(theme.font.text.sizes[0].ascenderHeight),
2575
+ "--font-text-0-descender-height": px(theme.font.text.sizes[0].descenderHeight),
2576
+ "--font-text-0-letter-spacing": px(theme.font.text.sizes[0].letterSpacing),
2577
+ "--font-text-0-icon-size": px(theme.font.text.sizes[0].iconSize),
2578
+ "--font-text-1-size": rem(theme.font.text.sizes[1].fontSize),
2579
+ "--font-text-1-line-height": rem(theme.font.text.sizes[1].lineHeight),
2580
+ "--font-text-1-ascender-height": px(theme.font.text.sizes[1].ascenderHeight),
2581
+ "--font-text-1-descender-height": px(theme.font.text.sizes[1].descenderHeight),
2582
+ "--font-text-1-letter-spacing": px(theme.font.text.sizes[1].letterSpacing),
2583
+ "--font-text-1-icon-size": px(theme.font.text.sizes[1].iconSize),
2584
+ "--font-text-2-size": rem(theme.font.text.sizes[2].fontSize),
2585
+ "--font-text-2-line-height": rem(theme.font.text.sizes[2].lineHeight),
2586
+ "--font-text-2-ascender-height": px(theme.font.text.sizes[2].ascenderHeight),
2587
+ "--font-text-2-descender-height": px(theme.font.text.sizes[2].descenderHeight),
2588
+ "--font-text-2-letter-spacing": px(theme.font.text.sizes[2].letterSpacing),
2589
+ "--font-text-2-icon-size": px(theme.font.text.sizes[2].iconSize),
2590
+ "--font-text-3-size": rem(theme.font.text.sizes[3].fontSize),
2591
+ "--font-text-3-line-height": rem(theme.font.text.sizes[3].lineHeight),
2592
+ "--font-text-3-ascender-height": px(theme.font.text.sizes[3].ascenderHeight),
2593
+ "--font-text-3-descender-height": px(theme.font.text.sizes[3].descenderHeight),
2594
+ "--font-text-3-letter-spacing": px(theme.font.text.sizes[3].letterSpacing),
2595
+ "--font-text-3-icon-size": px(theme.font.text.sizes[3].iconSize),
2596
+ "--font-text-4-size": rem(theme.font.text.sizes[4].fontSize),
2597
+ "--font-text-4-line-height": rem(theme.font.text.sizes[4].lineHeight),
2598
+ "--font-text-4-ascender-height": px(theme.font.text.sizes[4].ascenderHeight),
2599
+ "--font-text-4-descender-height": px(theme.font.text.sizes[4].descenderHeight),
2600
+ "--font-text-4-letter-spacing": px(theme.font.text.sizes[4].letterSpacing),
2601
+ "--font-text-4-icon-size": px(theme.font.text.sizes[4].iconSize),
2602
+ "--input-border-width": px(theme.input.border.width),
2603
+ "--input-checkbox-focus-ring-offset": px(theme.input.checkbox.focusRing.offset),
2604
+ "--input-checkbox-focus-ring-width": px(theme.input.checkbox.focusRing.width),
2605
+ "--input-checkbox-size": px(theme.input.checkbox.size),
2606
+ "--input-radio-focus-ring-offset": px(theme.input.radio.focusRing.offset),
2607
+ "--input-radio-focus-ring-width": px(theme.input.radio.focusRing.width),
2608
+ "--input-radio-mark-size": px(theme.input.radio.markSize),
2609
+ "--input-radio-size": px(theme.input.radio.size),
2610
+ "--input-select-focus-ring-offset": px(theme.input.select.focusRing.offset),
2611
+ "--input-select-focus-ring-width": px(theme.input.select.focusRing.width),
2612
+ "--input-switch-focus-ring-offset": px(theme.input.switch.focusRing.offset),
2613
+ "--input-switch-focus-ring-width": px(theme.input.switch.focusRing.width),
2614
+ "--input-switch-width": px(theme.input.switch.width),
2615
+ "--input-switch-height": px(theme.input.switch.height),
2616
+ "--input-switch-padding": px(theme.input.switch.padding),
2617
+ "--input-switch-transition-duration-ms": px(theme.input.switch.transitionDurationMs),
2618
+ "--input-switch-transition-timing-function": theme.input.switch.transitionTimingFunction,
2619
+ "--input-text-focus-ring-offset": px(theme.input.text.focusRing.offset),
2620
+ "--input-text-focus-ring-width": px(theme.input.text.focusRing.width),
2621
+ "--container-0": px(theme.container[0]),
2622
+ "--container-1": px(theme.container[1]),
2623
+ "--container-2": px(theme.container[2]),
2624
+ "--container-3": px(theme.container[3]),
2625
+ "--container-4": px(theme.container[4]),
2626
+ "--container-5": px(theme.container[5]),
2627
+ "--radius-0": px(theme.radius[0]),
2628
+ "--radius-1": px(theme.radius[1]),
2629
+ "--radius-2": px(theme.radius[2]),
2630
+ "--radius-3": px(theme.radius[3]),
2631
+ "--radius-4": px(theme.radius[4]),
2632
+ "--radius-5": px(theme.radius[5]),
2633
+ "--radius-6": px(theme.radius[6]),
2634
+ [varNames.space[0]]: rem(theme.space[0]),
2635
+ [varNames.space[1]]: rem(theme.space[1]),
2636
+ [varNames.space[2]]: rem(theme.space[2]),
2637
+ [varNames.space[3]]: rem(theme.space[3]),
2638
+ [varNames.space[4]]: rem(theme.space[4]),
2639
+ [varNames.space[5]]: rem(theme.space[5]),
2640
+ [varNames.space[6]]: rem(theme.space[6]),
2641
+ [varNames.space[7]]: rem(theme.space[7]),
2642
+ [varNames.space[8]]: rem(theme.space[8]),
2643
+ [varNames.space[9]]: rem(theme.space[9]),
2644
+ "--shadow-0-umbra": toBoxShadow(theme.shadow[0]?.umbra),
2645
+ //`${theme.shadow[0]?.umbra || 'none'}`,
2646
+ "--shadow-0-penumbra": toBoxShadow(theme.shadow[0]?.penumbra),
2647
+ "--shadow-0-ambient": toBoxShadow(theme.shadow[0]?.ambient),
2648
+ "--shadow-1-umbra": toBoxShadow(theme.shadow[1]?.umbra),
2649
+ "--shadow-1-penumbra": toBoxShadow(theme.shadow[1]?.penumbra),
2650
+ "--shadow-1-ambient": toBoxShadow(theme.shadow[1]?.ambient),
2651
+ "--shadow-2-umbra": toBoxShadow(theme.shadow[2]?.umbra),
2652
+ "--shadow-2-penumbra": toBoxShadow(theme.shadow[2]?.penumbra),
2653
+ "--shadow-2-ambient": toBoxShadow(theme.shadow[2]?.ambient),
2654
+ "--shadow-3-umbra": toBoxShadow(theme.shadow[3]?.umbra),
2655
+ "--shadow-3-penumbra": toBoxShadow(theme.shadow[3]?.penumbra),
2656
+ "--shadow-3-ambient": toBoxShadow(theme.shadow[3]?.ambient),
2657
+ "--shadow-4-umbra": toBoxShadow(theme.shadow[4]?.umbra),
2658
+ "--shadow-4-penumbra": toBoxShadow(theme.shadow[4]?.penumbra),
2659
+ "--shadow-4-ambient": toBoxShadow(theme.shadow[4]?.ambient),
2660
+ "--shadow-5-umbra": toBoxShadow(theme.shadow[5]?.umbra),
2661
+ "--shadow-5-penumbra": toBoxShadow(theme.shadow[5]?.penumbra),
2662
+ "--shadow-5-ambient": toBoxShadow(theme.shadow[5]?.ambient),
2663
+ ...Object.fromEntries(
2664
+ getThemeEntries(theme.color, ["color"])
2665
+ )
2666
+ }),
2667
+ compileCardCss({ scheme: "dark", tone: "transparent" }),
2668
+ compileCardCss({ scheme: "dark", tone: "default" }),
2669
+ compileCardCss({ scheme: "dark", tone: "primary" }),
2670
+ compileCardCss({ scheme: "dark", tone: "positive" }),
2671
+ compileCardCss({ scheme: "dark", tone: "caution" }),
2672
+ compileCardCss({ scheme: "dark", tone: "critical" }),
2673
+ compileCardCss({ scheme: "light", tone: "transparent" }),
2674
+ compileCardCss({ scheme: "light", tone: "default" }),
2675
+ compileCardCss({ scheme: "light", tone: "primary" }),
2676
+ compileCardCss({ scheme: "light", tone: "positive" }),
2677
+ compileCardCss({ scheme: "light", tone: "caution" }),
2678
+ compileCardCss({ scheme: "light", tone: "critical" })
2679
+ ].join(`
2680
+
2681
+ `);
2682
+ }
2683
+ function compileCardCss(props) {
2684
+ const { scheme, tone } = props, cardVars = vars.color[scheme][tone];
2685
+ return compileRule(`.card[data-scheme="${scheme}"][data-tone="${tone}"]`, {
2686
+ "--color-accent-fg": cardVars.accent.fg,
2687
+ ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color) => ({
2688
+ ...acc,
2689
+ [`--color-avatar-${color}-bg`]: cardVars.avatar[color].bg,
2690
+ [`--color-avatar-${color}-fg`]: cardVars.avatar[color].fg
2691
+ }), {}),
2692
+ "--color-backdrop": cardVars.backdrop,
2693
+ ...THEME_COLOR_STATE_TONES.reduce((acc, tone2) => ({
2694
+ ...acc,
2695
+ [`--color-badge-${tone2}-bg`]: cardVars.badge[tone2].bg,
2696
+ [`--color-badge-${tone2}-dot`]: cardVars.badge[tone2].dot,
2697
+ [`--color-badge-${tone2}-fg`]: cardVars.badge[tone2].fg,
2698
+ [`--color-badge-${tone2}-icon`]: cardVars.badge[tone2].icon
2699
+ }), {}),
2700
+ "--color-bg": cardVars.bg,
2701
+ "--color-border": cardVars.border,
2702
+ // todo: button
2703
+ "--color-code-bg": cardVars.code.bg,
2704
+ "--color-code-fg": cardVars.code.fg,
2705
+ "--color-fg": cardVars.fg,
2706
+ "--color-focus-ring": cardVars.focusRing,
2707
+ "--color-icon": cardVars.icon,
2708
+ "--color-input-default-enabled-bg": cardVars.input.default.enabled.bg,
2709
+ "--color-input-default-enabled-border": cardVars.input.default.enabled.border,
2710
+ "--color-input-default-enabled-fg": cardVars.input.default.enabled.fg,
2711
+ "--color-input-default-enabled-muted-bg": cardVars.input.default.enabled.muted.bg,
2712
+ "--color-input-default-enabled-placeholder": cardVars.input.default.enabled.placeholder,
2713
+ "--color-input-default-hovered-bg": cardVars.input.default.hovered.bg,
2714
+ "--color-input-default-hovered-border": cardVars.input.default.hovered.border,
2715
+ "--color-input-default-hovered-fg": cardVars.input.default.hovered.fg,
2716
+ "--color-input-default-hovered-muted-bg": cardVars.input.default.hovered.muted.bg,
2717
+ "--color-input-default-hovered-placeholder": cardVars.input.default.hovered.placeholder,
2718
+ "--color-input-default-readOnly-bg": cardVars.input.default.readOnly.bg,
2719
+ "--color-input-default-readOnly-border": cardVars.input.default.readOnly.border,
2720
+ "--color-input-default-readOnly-fg": cardVars.input.default.readOnly.fg,
2721
+ "--color-input-default-readOnly-muted-bg": cardVars.input.default.readOnly.muted.bg,
2722
+ "--color-input-default-readOnly-placeholder": cardVars.input.default.readOnly.placeholder,
2723
+ "--color-input-default-disabled-bg": cardVars.input.default.disabled.bg,
2724
+ "--color-input-default-disabled-border": cardVars.input.default.disabled.border,
2725
+ "--color-input-default-disabled-fg": cardVars.input.default.disabled.fg,
2726
+ "--color-input-default-disabled-muted-bg": cardVars.input.default.disabled.muted.bg,
2727
+ "--color-input-default-disabled-placeholder": cardVars.input.default.disabled.placeholder,
2728
+ "--color-input-invalid-enabled-bg": cardVars.input.invalid.enabled.bg,
2729
+ "--color-input-invalid-enabled-border": cardVars.input.invalid.enabled.border,
2730
+ "--color-input-invalid-enabled-fg": cardVars.input.invalid.enabled.fg,
2731
+ "--color-input-invalid-enabled-muted-bg": cardVars.input.invalid.enabled.muted.bg,
2732
+ "--color-input-invalid-enabled-placeholder": cardVars.input.invalid.enabled.placeholder,
2733
+ "--color-input-invalid-hovered-bg": cardVars.input.invalid.hovered.bg,
2734
+ "--color-input-invalid-hovered-border": cardVars.input.invalid.hovered.border,
2735
+ "--color-input-invalid-hovered-fg": cardVars.input.invalid.hovered.fg,
2736
+ "--color-input-invalid-hovered-muted-bg": cardVars.input.invalid.hovered.muted.bg,
2737
+ "--color-input-invalid-hovered-placeholder": cardVars.input.invalid.hovered.placeholder,
2738
+ "--color-input-invalid-readOnly-bg": cardVars.input.invalid.readOnly.bg,
2739
+ "--color-input-invalid-readOnly-border": cardVars.input.invalid.readOnly.border,
2740
+ "--color-input-invalid-readOnly-fg": cardVars.input.invalid.readOnly.fg,
2741
+ "--color-input-invalid-readOnly-muted-bg": cardVars.input.invalid.readOnly.muted.bg,
2742
+ "--color-input-invalid-readOnly-placeholder": cardVars.input.invalid.readOnly.placeholder,
2743
+ "--color-input-invalid-disabled-bg": cardVars.input.invalid.disabled.bg,
2744
+ "--color-input-invalid-disabled-border": cardVars.input.invalid.disabled.border,
2745
+ "--color-input-invalid-disabled-fg": cardVars.input.invalid.disabled.fg,
2746
+ "--color-input-invalid-disabled-muted-bg": cardVars.input.invalid.disabled.muted.bg,
2747
+ "--color-input-invalid-disabled-placeholder": cardVars.input.invalid.disabled.placeholder,
2748
+ "--color-kbd-bg": cardVars.kbd.bg,
2749
+ "--color-kbd-border": cardVars.kbd.border,
2750
+ "--color-kbd-fg": cardVars.kbd.fg,
2751
+ "--color-link-fg": cardVars.link.fg,
2752
+ "--color-muted-bg": cardVars.muted.bg,
2753
+ "--color-muted-fg": cardVars.muted.fg,
2754
+ // todo: selectable
2755
+ "--color-shadow-outline": cardVars.shadow.outline,
2756
+ "--color-shadow-umbra": cardVars.shadow.umbra,
2757
+ "--color-shadow-penumbra": cardVars.shadow.penumbra,
2758
+ "--color-shadow-ambient": cardVars.shadow.outline,
2759
+ "--color-skeleton-from": cardVars.skeleton.from,
2760
+ "--color-skeleton-to": cardVars.skeleton.to,
2761
+ // todo: syntax
2762
+ "--color-syntax-atrule": cardVars.syntax.atrule,
2763
+ "--color-syntax-attrName": cardVars.syntax.attrName,
2764
+ "--color-syntax-attrValue": cardVars.syntax.attrValue,
2765
+ "--color-syntax-attribute": cardVars.syntax.attribute,
2766
+ "--color-syntax-boolean": cardVars.syntax.boolean,
2767
+ "--color-syntax-builtin": cardVars.syntax.builtin,
2768
+ "--color-syntax-cdata": cardVars.syntax.cdata,
2769
+ "--color-syntax-char": cardVars.syntax.char,
2770
+ "--color-syntax-class": cardVars.syntax.class,
2771
+ "--color-syntax-className": cardVars.syntax.className,
2772
+ "--color-syntax-comment": cardVars.syntax.comment,
2773
+ "--color-syntax-constant": cardVars.syntax.constant,
2774
+ "--color-syntax-deleted": cardVars.syntax.deleted,
2775
+ "--color-syntax-doctype": cardVars.syntax.doctype,
2776
+ "--color-syntax-entity": cardVars.syntax.entity,
2777
+ "--color-syntax-function": cardVars.syntax.function,
2778
+ "--color-syntax-hexcode": cardVars.syntax.hexcode,
2779
+ "--color-syntax-id": cardVars.syntax.id,
2780
+ "--color-syntax-important": cardVars.syntax.important,
2781
+ "--color-syntax-inserted": cardVars.syntax.inserted,
2782
+ "--color-syntax-keyword": cardVars.syntax.keyword,
2783
+ "--color-syntax-number": cardVars.syntax.number,
2784
+ "--color-syntax-operator": cardVars.syntax.operator,
2785
+ "--color-syntax-prolog": cardVars.syntax.prolog,
2786
+ "--color-syntax-property": cardVars.syntax.property,
2787
+ "--color-syntax-pseudoClass": cardVars.syntax.pseudoClass,
2788
+ "--color-syntax-pseudoElement": cardVars.syntax.pseudoElement,
2789
+ "--color-syntax-punctuation": cardVars.syntax.punctuation,
2790
+ "--color-syntax-regex": cardVars.syntax.regex,
2791
+ "--color-syntax-selector": cardVars.syntax.selector,
2792
+ "--color-syntax-string": cardVars.syntax.string,
2793
+ "--color-syntax-symbol": cardVars.syntax.symbol,
2794
+ "--color-syntax-tag": cardVars.syntax.tag,
2795
+ "--color-syntax-unit": cardVars.syntax.unit,
2796
+ "--color-syntax-url": cardVars.syntax.url,
2797
+ "--color-syntax-variable": cardVars.syntax.variable
2798
+ });
2799
+ }
2800
+ function getThemeEntries(obj, path = []) {
2801
+ const entries = [];
2802
+ if (isArray(obj))
2803
+ for (let i = 0; i < obj.length; i++) {
2804
+ const key = String(i), value = obj[i];
2805
+ isRecord(value) || isArray(value) ? entries.push(...getThemeEntries(value, [...path, key])) : entries.push([`--${path.concat(key).join("-")}`, value]);
2806
+ }
2807
+ else
2808
+ for (const [key, value] of Object.entries(obj))
2809
+ key.startsWith("_") || key !== "button" && key !== "selectable" && (isRecord(value) || isArray(value) ? entries.push(...getThemeEntries(value, [...path, key])) : entries.push([`--${path.concat(key).join("-")}`, value]));
2810
+ return entries;
2811
+ }
2812
+ function isRecord(value) {
2813
+ return value !== null && typeof value == "object" && !Array.isArray(value);
2814
+ }
2815
+ function isArray(value) {
2816
+ return Array.isArray(value);
2817
+ }
2818
+ function composeClassNames(...classNames) {
2819
+ return classNames.filter(Boolean).join(" ");
2820
+ }
2821
+ function breadcrumbs() {
2822
+ return composeClassNames("breadcrumbs");
2823
+ }
2824
+ function dialog() {
2825
+ return composeClassNames("dialog");
2826
+ }
2827
+ function dialogContainer() {
2828
+ return composeClassNames("dialog-container");
2829
+ }
2830
+ function dialogCardRoot() {
2831
+ return composeClassNames("dialog-card-root");
2832
+ }
2833
+ function dialogLayout() {
2834
+ return composeClassNames("dialog-layout");
2835
+ }
2836
+ function dialogHeader() {
2837
+ return composeClassNames("dialog-header");
2838
+ }
2839
+ function dialogContent() {
2840
+ return composeClassNames("dialog-content");
2841
+ }
2842
+ function dialogFooter() {
2843
+ return composeClassNames("dialog-footer");
2844
+ }
2845
+ function treeItem() {
2846
+ return composeClassNames("tree-item");
2847
+ }
2848
+ function _resp(prefix, prop) {
2849
+ if (prop !== void 0)
2850
+ return Array.isArray(prop) ? prop.map((value, index) => {
2851
+ const className = (typeof value == "boolean" ? [prefix] : [prefix, value]).filter((s) => s === 0 || !!s).join("-").replace(/\./g, "_");
2852
+ return index === 0 ? `${className}` : `_${index}:${className}`;
2853
+ }).join(" ") : (typeof prop == "boolean" ? [prefix] : [prefix, prop]).filter((s) => s === 0 || !!s).join("-").replace(/\./g, "_");
2854
+ }
2855
+ function avatar(props) {
2856
+ return composeClassNames(
2857
+ "avatar",
2858
+ `avatar-${props.color}`,
2859
+ `avatar-arrow-${props.arrowPosition}`,
2860
+ _resp("avatar", props.size)
2861
+ );
2862
+ }
2863
+ function avatarArrow() {
2864
+ return composeClassNames("avatar-arrow");
2865
+ }
2866
+ function avatarInitials() {
2867
+ return composeClassNames("avatar-initials");
2868
+ }
2869
+ function avatarBgStroke() {
2870
+ return composeClassNames("avatar-bg-stroke");
2871
+ }
2872
+ function avatarStroke() {
2873
+ return composeClassNames("avatar-stroke");
2874
+ }
2875
+ function avatarImage() {
2876
+ return composeClassNames("avatar-image");
2877
+ }
2878
+ function radius(props) {
2879
+ return composeClassNames(_resp("r", props.radius));
2880
+ }
2881
+ function badge(props) {
2882
+ return composeClassNames("badge", props.tone && `badge-${props.tone}`, radius(props));
2883
+ }
2884
+ const prefixes$2 = {
2885
+ align: "align",
2886
+ // `flex-align`
2887
+ direction: void 0,
2888
+ // `
2889
+ justify: "justify",
2890
+ // `flex-justify`
2891
+ wrap: "wrap"
2892
+ // `flex-wrap`
2893
+ };
2894
+ function flex(props) {
2895
+ return composeClassNames(
2896
+ _resp(prefixes$2.align, props.align),
2897
+ _resp(prefixes$2.direction, props.direction),
2898
+ _resp(prefixes$2.justify, props.justify),
2899
+ _resp(prefixes$2.wrap, props.wrap)
2900
+ );
2901
+ }
2902
+ function flexItem(props) {
2903
+ return composeClassNames(_resp("flex", props.flex));
2904
+ }
2905
+ function gap(props) {
2906
+ return composeClassNames(_resp("g", props.gap), _resp("gx", props.gapX), _resp("gy", props.gapY));
2907
+ }
2908
+ function gridItem(props) {
2909
+ return composeClassNames(
2910
+ _resp("col", props.column),
2911
+ _resp("col-start", props.columnStart),
2912
+ _resp("col-end", props.columnEnd),
2913
+ _resp("row", props.row),
2914
+ _resp("row-start", props.rowStart),
2915
+ _resp("row-end", props.rowEnd)
2916
+ );
2917
+ }
2918
+ function margin(props) {
2919
+ return composeClassNames(
2920
+ _resp("m", props.margin),
2921
+ _resp("mx", props.marginX),
2922
+ _resp("my", props.marginY),
2923
+ _resp("mt", props.marginTop),
2924
+ _resp("mr", props.marginRight),
2925
+ _resp("mb", props.marginBottom),
2926
+ _resp("ml", props.marginLeft)
2927
+ );
2928
+ }
2929
+ function maxWidth(props) {
2930
+ return _resp("max-w", props.maxWidth) ?? "";
2931
+ }
2932
+ function padding(props) {
2933
+ return composeClassNames(
2934
+ _resp("p", props.padding),
2935
+ _resp("px", props.paddingX),
2936
+ _resp("py", props.paddingY),
2937
+ _resp("pt", props.paddingTop),
2938
+ _resp("pr", props.paddingRight),
2939
+ _resp("pb", props.paddingBottom),
2940
+ _resp("pl", props.paddingLeft)
2941
+ );
2942
+ }
2943
+ function pointerEvents(props) {
2944
+ return composeClassNames(props.pointerEvents && `pointer-events-${props.pointerEvents}`);
2945
+ }
2946
+ function position(props) {
2947
+ return composeClassNames(_resp("pos", props.position), _resp("inset", props.inset));
2948
+ }
2949
+ function width(props) {
2950
+ return _resp("w", props.width) ?? "";
2951
+ }
2952
+ function box(props) {
2953
+ return composeClassNames(
2954
+ "box",
2955
+ _resp(void 0, props.display),
2956
+ _resp("h", props.height),
2957
+ _resp("overflow", props.overflow),
2958
+ _resp("box", props.sizing),
2959
+ flex(props),
2960
+ flexItem(props),
2961
+ gridItem(props),
2962
+ gap(props),
2963
+ margin(props),
2964
+ maxWidth(props),
2965
+ padding(props),
2966
+ pointerEvents(props),
2967
+ position(props),
2968
+ width(props)
2969
+ );
2970
+ }
2971
+ function button(props) {
2972
+ const { mode = "default", tone = "default" } = props;
2973
+ return composeClassNames(
2974
+ "button",
2975
+ `button-mode-${mode}`,
2976
+ `button-tone-${tone}`,
2977
+ radius(props),
2978
+ width(props)
2979
+ );
2980
+ }
2981
+ function buttonLoadingBox() {
2982
+ return "button-loading-box";
2983
+ }
2984
+ const prefixes$1 = {
2985
+ border: "border",
2986
+ borderTop: "border-t",
2987
+ borderRight: "border-r",
2988
+ borderBottom: "border-b",
2989
+ borderLeft: "border-l"
2990
+ };
2991
+ function border(props) {
2992
+ return composeClassNames(
2993
+ _resp(prefixes$1.border, props.border),
2994
+ _resp(prefixes$1.borderTop, props.borderTop),
2995
+ _resp(prefixes$1.borderRight, props.borderRight),
2996
+ _resp(prefixes$1.borderBottom, props.borderBottom),
2997
+ _resp(prefixes$1.borderLeft, props.borderLeft)
2998
+ );
2999
+ }
3000
+ function card(props) {
3001
+ return composeClassNames(
3002
+ "card",
3003
+ props.checkered && "card-checkered",
3004
+ box(props),
3005
+ border(props),
3006
+ radius(props),
3007
+ props.shadow === void 0 ? void 0 : `shadow-${props.shadow}`
3008
+ );
3009
+ }
3010
+ function checkbox() {
3011
+ return composeClassNames("checkbox");
3012
+ }
3013
+ function checkboxInput() {
3014
+ return composeClassNames("checkbox-input");
3015
+ }
3016
+ const prefixes = {
3017
+ weight: "font"
3018
+ };
3019
+ function font(props) {
3020
+ return composeClassNames("font", _resp(prefixes.weight, props.weight));
3021
+ }
3022
+ function code(props) {
3023
+ return composeClassNames("code", "block", font(props), _resp("code", props.size));
3024
+ }
3025
+ function container(props) {
3026
+ return composeClassNames("container", maxWidth({ maxWidth: props.width }));
3027
+ }
3028
+ function heading(props) {
3029
+ return composeClassNames(
3030
+ "heading",
3031
+ "block",
3032
+ font(props),
3033
+ props.accent && "heading-accent",
3034
+ props.muted && "heading-muted",
3035
+ _resp("heading", props.size)
3036
+ );
3037
+ }
3038
+ function kbd(props) {
3039
+ return composeClassNames("kbd", radius(props));
3040
+ }
3041
+ function label(props) {
3042
+ return composeClassNames(
3043
+ "label",
3044
+ "block",
3045
+ font(props),
3046
+ props.accent && "label-accent",
3047
+ props.muted && "label-muted",
3048
+ _resp("label", props.size)
3049
+ );
3050
+ }
3051
+ function popover() {
3052
+ return composeClassNames("popover");
3053
+ }
3054
+ function radio() {
3055
+ return composeClassNames("radio");
3056
+ }
3057
+ function select() {
3058
+ return composeClassNames("select");
3059
+ }
3060
+ function selectable(props) {
3061
+ const { tone = "default" } = props;
3062
+ return composeClassNames("selectable", `selectable-tone-${tone}`, radius(props));
3063
+ }
3064
+ function spinner() {
3065
+ return composeClassNames("spinner");
3066
+ }
3067
+ function _switch() {
3068
+ return composeClassNames("switch");
3069
+ }
3070
+ function text(props) {
3071
+ return composeClassNames(
3072
+ "text",
3073
+ "block",
3074
+ font(props),
3075
+ props.accent && "text-accent",
3076
+ props.muted && "text-muted",
3077
+ _resp("text", props.size)
3078
+ );
3079
+ }
3080
+ function textArea() {
3081
+ return composeClassNames("text-area");
3082
+ }
3083
+ function textInput(props) {
3084
+ return composeClassNames("text-input", _resp("text-input", props.size));
3085
+ }
3086
+ function tooltip() {
3087
+ return composeClassNames("tooltip");
3088
+ }
3089
+ function tooltipCard() {
3090
+ return composeClassNames("tooltip-card");
3091
+ }
3092
+ export {
3093
+ _switch,
3094
+ avatar,
3095
+ avatarArrow,
3096
+ avatarBgStroke,
3097
+ avatarImage,
3098
+ avatarInitials,
3099
+ avatarStroke,
3100
+ badge,
3101
+ box,
3102
+ breadcrumbs,
3103
+ button,
3104
+ buttonLoadingBox,
3105
+ card,
3106
+ checkbox,
3107
+ checkboxInput,
3108
+ code,
3109
+ compileSystem,
3110
+ compileTheme,
3111
+ composeClassNames,
3112
+ container,
3113
+ dialog,
3114
+ dialogCardRoot,
3115
+ dialogContainer,
3116
+ dialogContent,
3117
+ dialogFooter,
3118
+ dialogHeader,
3119
+ dialogLayout,
3120
+ heading,
3121
+ kbd,
3122
+ label,
3123
+ popover,
3124
+ radio,
3125
+ select,
3126
+ selectable,
3127
+ spinner,
3128
+ text,
3129
+ textArea,
3130
+ textInput,
3131
+ tooltip,
3132
+ tooltipCard,
3133
+ treeItem
3134
+ };
3135
+ //# sourceMappingURL=css.esm.js.map