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