@sanity/ui 3.0.0-static.0 → 3.0.0-static.1

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 (216) hide show
  1. package/dist/_chunks-cjs/buildCommand.js +1387 -681
  2. package/dist/_chunks-cjs/buildCommand.js.map +1 -1
  3. package/dist/cli.js +4 -2
  4. package/dist/cli.js.map +1 -1
  5. package/dist/css.d.mts +131 -12
  6. package/dist/css.d.ts +131 -12
  7. package/dist/css.esm.js +1450 -791
  8. package/dist/css.esm.js.map +1 -1
  9. package/dist/css.js +1449 -790
  10. package/dist/css.js.map +1 -1
  11. package/dist/css.mjs +1450 -791
  12. package/dist/css.mjs.map +1 -1
  13. package/dist/index.d.mts +84 -76
  14. package/dist/index.d.ts +84 -76
  15. package/dist/index.esm.js +2734 -3146
  16. package/dist/index.esm.js.map +1 -1
  17. package/dist/index.js +2733 -3145
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +2734 -3146
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/sanity-theme.css +1 -1
  22. package/dist/system.css +1590 -1158
  23. package/dist/theme.esm.js +1565 -452
  24. package/dist/theme.esm.js.map +1 -1
  25. package/dist/theme.js +1599 -484
  26. package/dist/theme.js.map +1 -1
  27. package/dist/theme.mjs +1565 -452
  28. package/dist/theme.mjs.map +1 -1
  29. package/package.json +22 -22
  30. package/src/core/__workshop__/constants.ts +14 -5
  31. package/src/core/__workshop__/fontsPlugin.tsx +1 -1
  32. package/src/core/_compat/index.ts +2 -0
  33. package/src/core/{styles → _compat/styles}/box/boxStyle.ts +1 -1
  34. package/src/core/{styles → _compat/styles}/box/types.ts +1 -1
  35. package/src/core/{styles → _compat/styles}/card/_cardColorStyle.ts +2 -2
  36. package/src/core/{styles → _compat/styles}/flex/flexItemStyle.ts +1 -1
  37. package/src/core/{styles → _compat/styles}/font/types.ts +1 -1
  38. package/src/core/{styles → _compat/styles}/grid/types.ts +1 -1
  39. package/src/core/{styles → _compat/styles}/helpers.ts +1 -1
  40. package/src/core/{styles → _compat/styles}/input/textInputStyle.ts +2 -2
  41. package/src/core/{styles → _compat/styles}/radius/types.ts +1 -1
  42. package/src/core/{styles → _compat/styles}/shadow/shadowStyle.ts +1 -1
  43. package/src/core/components/autocomplete/__workshop__/custom.tsx +5 -4
  44. package/src/core/components/autocomplete/__workshop__/example.tsx +3 -2
  45. package/src/core/components/autocomplete/autocomplete.tsx +5 -5
  46. package/src/core/components/dialog/__workshop__/panes.tsx +1 -1
  47. package/src/core/components/dialog/__workshop__/props.tsx +2 -0
  48. package/src/core/components/dialog/dialog.tsx +1 -5
  49. package/src/core/components/hotkeys/hotkeys.tsx +1 -1
  50. package/src/core/components/menu/menu.tsx +8 -10
  51. package/src/core/components/menu/menuDivider.tsx +16 -0
  52. package/src/core/components/menu/menuGroup.tsx +2 -8
  53. package/src/core/components/menu/menuItem.tsx +1 -1
  54. package/src/core/components/skeleton/skeleton.tsx +14 -20
  55. package/src/core/components/skeleton/textSkeleton.tsx +72 -48
  56. package/src/core/components/tab/tab.tsx +0 -1
  57. package/src/core/components/tab/tabList.tsx +4 -21
  58. package/src/core/components/tab/tabPanel.tsx +1 -0
  59. package/src/core/components/toast/toast.tsx +27 -14
  60. package/src/core/components/toast/toastProvider.tsx +4 -13
  61. package/src/core/components/tree/tree.tsx +1 -2
  62. package/src/core/components/tree/treeGroup.tsx +4 -1
  63. package/src/core/components/tree/treeItem.tsx +11 -15
  64. package/src/core/hooks/useArrayProp.ts +1 -1
  65. package/src/core/index.ts +0 -1
  66. package/src/core/lib/styled/members.ts +2 -2
  67. package/src/core/primitives/avatar/avatar.tsx +0 -21
  68. package/src/core/primitives/avatar/avatarCounter.tsx +1 -1
  69. package/src/core/primitives/avatar/avatarStack.tsx +1 -1
  70. package/src/core/primitives/avatar/styles.ts +2 -2
  71. package/src/core/primitives/box/box.tsx +4 -1
  72. package/src/core/primitives/button/__workshop__/props.tsx +2 -1
  73. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +1 -1
  74. package/src/core/primitives/button/__workshop__/stacked.tsx +2 -1
  75. package/src/core/primitives/button/__workshop__/styled1.tsx +1 -1
  76. package/src/core/primitives/button/__workshop__/styled2.tsx +1 -1
  77. package/src/core/primitives/button/styles.ts +3 -3
  78. package/src/core/primitives/card/__workshop__/props.tsx +2 -2
  79. package/src/core/primitives/card/__workshop__/selected.tsx +1 -1
  80. package/src/core/primitives/card/__workshop__/styled.tsx +1 -1
  81. package/src/core/primitives/card/card.tsx +7 -10
  82. package/src/core/primitives/code/code.tsx +2 -4
  83. package/src/core/primitives/container/styles.ts +1 -1
  84. package/src/core/primitives/flex/__workshop__/example.tsx +1 -1
  85. package/src/core/primitives/flex/flex.tsx +1 -13
  86. package/src/core/primitives/grid/grid.tsx +5 -19
  87. package/src/core/primitives/heading/heading.tsx +8 -25
  88. package/src/core/primitives/heading/styles.ts +1 -1
  89. package/src/core/primitives/inline/inline.tsx +3 -12
  90. package/src/core/primitives/inline/styles.ts +1 -1
  91. package/src/core/primitives/label/label.tsx +4 -9
  92. package/src/core/primitives/label/styles.ts +1 -1
  93. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +2 -2
  94. package/src/core/primitives/popover/__workshop__/TestStory.tsx +2 -1
  95. package/src/core/primitives/popover/popover.tsx +1 -1
  96. package/src/core/primitives/popover/popoverCard.tsx +1 -1
  97. package/src/core/primitives/radio/radio.tsx +1 -1
  98. package/src/core/primitives/radio/styles.ts +2 -2
  99. package/src/core/primitives/select/select.tsx +1 -1
  100. package/src/core/primitives/select/styles.ts +3 -3
  101. package/src/core/primitives/spinner/__workshop__/Props.tsx +2 -1
  102. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +16 -0
  103. package/src/core/primitives/spinner/spinner.tsx +2 -2
  104. package/src/core/primitives/stack/styles.ts +1 -1
  105. package/src/core/primitives/switch/styles.ts +2 -2
  106. package/src/core/primitives/text/__workshop__/colored.tsx +1 -1
  107. package/src/core/primitives/text/styles.ts +1 -1
  108. package/src/core/primitives/text/text.tsx +1 -4
  109. package/src/core/primitives/textArea/__workshop__/plain.tsx +2 -2
  110. package/src/core/primitives/textArea/textArea.tsx +3 -3
  111. package/src/core/primitives/textInput/__workshop__/plain.tsx +3 -2
  112. package/src/core/primitives/textInput/textInput.tsx +16 -83
  113. package/src/core/primitives/tooltip/tooltipCard.tsx +5 -5
  114. package/src/core/primitives/types.ts +1 -0
  115. package/src/core/theme/__workshop__/build/Root.tsx +1 -1
  116. package/src/core/theme/__workshop__/build/story.tsx +2 -4
  117. package/src/core/theme/themeProvider.tsx +1 -1
  118. package/src/core/types/box.ts +22 -16
  119. package/src/core/types/grid.ts +17 -12
  120. package/src/core/types/text.ts +7 -4
  121. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +1 -1
  122. package/src/core/utils/layer/layer.tsx +2 -2
  123. package/src/core/utils/virtualList/virtualList.tsx +1 -1
  124. package/src/css/compile/{comileRules.ts → compileRules.ts} +2 -5
  125. package/src/css/compile/compileSystem.ts +1 -1
  126. package/src/css/compile/compileTheme.ts +4 -1
  127. package/src/css/components/breadcrumbs/rules.ts +18 -0
  128. package/src/css/components/menu/index.ts +1 -0
  129. package/src/css/components/menu/menu.ts +5 -0
  130. package/src/css/components/menu/rules.ts +10 -0
  131. package/src/css/components/skeleton/index.ts +2 -0
  132. package/src/css/components/skeleton/rules.ts +106 -0
  133. package/src/css/components/skeleton/skeleton.ts +31 -0
  134. package/src/css/components/skeleton/types.ts +24 -0
  135. package/src/css/components/toast/rules.ts +68 -0
  136. package/src/css/components/tree/rules.ts +115 -0
  137. package/src/css/index.ts +4 -0
  138. package/src/css/primitives/box/box.ts +5 -1
  139. package/src/css/primitives/box/types.ts +7 -8
  140. package/src/css/primitives/card/rules.ts +161 -13
  141. package/src/css/primitives/checkbox/__styles.ts +115 -113
  142. package/src/css/primitives/selectable/__style.ts +117 -115
  143. package/src/css/primitives/spinner/rules.ts +5 -7
  144. package/src/css/primitives/spinner/spinner.ts +4 -0
  145. package/src/css/primitives/textInput/index.ts +1 -0
  146. package/src/css/primitives/textInput/rules.ts +159 -64
  147. package/src/css/primitives/textInput/textInput.ts +11 -3
  148. package/src/css/primitives/textInput/types.ts +8 -0
  149. package/src/css/rules.ts +16 -38
  150. package/src/css/styles/font/font.ts +7 -2
  151. package/src/css/styles/font/rules.ts +23 -0
  152. package/src/css/styles/font/types.ts +6 -0
  153. package/src/css/styles/gap/rules.ts +6 -6
  154. package/src/css/styles/grid/grid.ts +13 -0
  155. package/src/css/styles/grid/index.ts +2 -0
  156. package/src/css/styles/grid/rules.ts +112 -1
  157. package/src/css/styles/grid/types.ts +29 -0
  158. package/src/css/styles/margin/rules.ts +58 -54
  159. package/src/css/styles/outline/rules.ts +7 -0
  160. package/src/css/styles/overflow/index.ts +2 -0
  161. package/src/css/styles/overflow/overflow.ts +11 -0
  162. package/src/css/styles/overflow/types.ts +11 -0
  163. package/src/css/styles/padding/rules.ts +50 -48
  164. package/src/css/types.ts +36 -1
  165. package/src/css/varNames.ts +1 -1
  166. package/src/css/vars.ts +86 -0
  167. package/dist/_chunks-cjs/getTheme_v2.js +0 -316
  168. package/dist/_chunks-cjs/getTheme_v2.js.map +0 -1
  169. package/dist/_chunks-es/getTheme_v2.mjs +0 -317
  170. package/dist/_chunks-es/getTheme_v2.mjs.map +0 -1
  171. package/dist/_legacy/getTheme_v2.esm.js +0 -317
  172. package/dist/_legacy/getTheme_v2.esm.js.map +0 -1
  173. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -38
  174. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -17
  175. package/src/core/components/menu/menuDivider.ts +0 -13
  176. package/src/core/components/skeleton/styles.ts +0 -50
  177. package/src/core/components/toast/styles.ts +0 -61
  178. package/src/core/components/tree/style.ts +0 -104
  179. package/src/core/primitives/card/styles.ts +0 -146
  180. /package/src/core/{styles → _compat/styles}/border/borderStyle.ts +0 -0
  181. /package/src/core/{styles → _compat/styles}/border/index.ts +0 -0
  182. /package/src/core/{styles → _compat/styles}/border/types.ts +0 -0
  183. /package/src/core/{styles → _compat/styles}/box/index.ts +0 -0
  184. /package/src/core/{styles → _compat/styles}/card/index.ts +0 -0
  185. /package/src/core/{styles → _compat/styles}/flex/flexStyle.ts +0 -0
  186. /package/src/core/{styles → _compat/styles}/flex/index.ts +0 -0
  187. /package/src/core/{styles → _compat/styles}/flex/types.ts +0 -0
  188. /package/src/core/{styles → _compat/styles}/focusRing/index.ts +0 -0
  189. /package/src/core/{styles → _compat/styles}/font/codeFontStyle.ts +0 -0
  190. /package/src/core/{styles → _compat/styles}/font/headingFontStyle.ts +0 -0
  191. /package/src/core/{styles → _compat/styles}/font/index.ts +0 -0
  192. /package/src/core/{styles → _compat/styles}/font/labelFontStyle.ts +0 -0
  193. /package/src/core/{styles → _compat/styles}/font/responsiveFont.ts +0 -0
  194. /package/src/core/{styles → _compat/styles}/font/textAlignStyle.ts +0 -0
  195. /package/src/core/{styles → _compat/styles}/font/textFontStyle.ts +0 -0
  196. /package/src/core/{styles → _compat/styles}/grid/gridItemStyle.ts +0 -0
  197. /package/src/core/{styles → _compat/styles}/grid/gridStyle.ts +0 -0
  198. /package/src/core/{styles → _compat/styles}/grid/index.ts +0 -0
  199. /package/src/core/{styles → _compat/styles}/index.ts +0 -0
  200. /package/src/core/{styles → _compat/styles}/input/index.ts +0 -0
  201. /package/src/core/{styles → _compat/styles}/input/responsiveInputPaddingStyle.ts +0 -0
  202. /package/src/core/{styles → _compat/styles}/internal.ts +0 -0
  203. /package/src/core/{styles → _compat/styles}/margin/index.ts +0 -0
  204. /package/src/core/{styles → _compat/styles}/margin/marginStyle.ts +0 -0
  205. /package/src/core/{styles → _compat/styles}/margin/marginsStyle.test.ts +0 -0
  206. /package/src/core/{styles → _compat/styles}/margin/types.ts +0 -0
  207. /package/src/core/{styles → _compat/styles}/padding/index.ts +0 -0
  208. /package/src/core/{styles → _compat/styles}/padding/paddingStyle.test.ts +0 -0
  209. /package/src/core/{styles → _compat/styles}/padding/paddingStyle.ts +0 -0
  210. /package/src/core/{styles → _compat/styles}/padding/types.ts +0 -0
  211. /package/src/core/{styles → _compat/styles}/radius/index.ts +0 -0
  212. /package/src/core/{styles → _compat/styles}/radius/radiusStyle.ts +0 -0
  213. /package/src/core/{styles → _compat/styles}/shadow/index.ts +0 -0
  214. /package/src/core/{styles → _compat/styles}/shadow/types.ts +0 -0
  215. /package/src/core/{styles → _compat/styles}/types.ts +0 -0
  216. /package/src/core/{_compat.ts → _compat/types.ts} +0 -0
package/dist/theme.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: !0 });
3
- var getTheme_v2 = require("./_chunks-cjs/getTheme_v2.js"), color = require("@sanity/color");
3
+ var color = require("@sanity/color");
4
4
  function createSelectableTones(opts, base, dark, solid, muted) {
5
5
  return {
6
6
  default: _createSelectableStates(opts, base, dark, solid, muted, "default"),
@@ -57,46 +57,226 @@ function _createSelectableStates(opts, base, dark, solid, muted, tone) {
57
57
  function createSolidTones(opts, base, dark, name) {
58
58
  return {
59
59
  default: {
60
- enabled: opts.solid({ base, dark, tone: "default", name, state: "enabled" }),
61
- disabled: opts.solid({ base, dark, tone: "default", name, state: "disabled" }),
62
- hovered: opts.solid({ base, dark, tone: "default", name, state: "hovered" }),
63
- pressed: opts.solid({ base, dark, tone: "default", name, state: "pressed" }),
64
- selected: opts.solid({ base, dark, tone: "default", name, state: "selected" })
60
+ enabled: opts.solid({
61
+ base,
62
+ dark,
63
+ tone: "default",
64
+ name,
65
+ state: "enabled"
66
+ }),
67
+ disabled: opts.solid({
68
+ base,
69
+ dark,
70
+ tone: "default",
71
+ name,
72
+ state: "disabled"
73
+ }),
74
+ hovered: opts.solid({
75
+ base,
76
+ dark,
77
+ tone: "default",
78
+ name,
79
+ state: "hovered"
80
+ }),
81
+ pressed: opts.solid({
82
+ base,
83
+ dark,
84
+ tone: "default",
85
+ name,
86
+ state: "pressed"
87
+ }),
88
+ selected: opts.solid({
89
+ base,
90
+ dark,
91
+ tone: "default",
92
+ name,
93
+ state: "selected"
94
+ })
65
95
  },
66
96
  transparent: {
67
- enabled: opts.solid({ base, dark, tone: "transparent", name, state: "enabled" }),
68
- disabled: opts.solid({ base, dark, tone: "transparent", name, state: "disabled" }),
69
- hovered: opts.solid({ base, dark, tone: "transparent", name, state: "hovered" }),
70
- pressed: opts.solid({ base, dark, tone: "transparent", name, state: "pressed" }),
71
- selected: opts.solid({ base, dark, tone: "transparent", name, state: "selected" })
97
+ enabled: opts.solid({
98
+ base,
99
+ dark,
100
+ tone: "transparent",
101
+ name,
102
+ state: "enabled"
103
+ }),
104
+ disabled: opts.solid({
105
+ base,
106
+ dark,
107
+ tone: "transparent",
108
+ name,
109
+ state: "disabled"
110
+ }),
111
+ hovered: opts.solid({
112
+ base,
113
+ dark,
114
+ tone: "transparent",
115
+ name,
116
+ state: "hovered"
117
+ }),
118
+ pressed: opts.solid({
119
+ base,
120
+ dark,
121
+ tone: "transparent",
122
+ name,
123
+ state: "pressed"
124
+ }),
125
+ selected: opts.solid({
126
+ base,
127
+ dark,
128
+ tone: "transparent",
129
+ name,
130
+ state: "selected"
131
+ })
72
132
  },
73
133
  primary: {
74
- enabled: opts.solid({ base, dark, tone: "primary", name, state: "enabled" }),
75
- disabled: opts.solid({ base, dark, tone: "primary", name, state: "disabled" }),
76
- hovered: opts.solid({ base, dark, tone: "primary", name, state: "hovered" }),
77
- pressed: opts.solid({ base, dark, tone: "primary", name, state: "pressed" }),
78
- selected: opts.solid({ base, dark, tone: "primary", name, state: "selected" })
134
+ enabled: opts.solid({
135
+ base,
136
+ dark,
137
+ tone: "primary",
138
+ name,
139
+ state: "enabled"
140
+ }),
141
+ disabled: opts.solid({
142
+ base,
143
+ dark,
144
+ tone: "primary",
145
+ name,
146
+ state: "disabled"
147
+ }),
148
+ hovered: opts.solid({
149
+ base,
150
+ dark,
151
+ tone: "primary",
152
+ name,
153
+ state: "hovered"
154
+ }),
155
+ pressed: opts.solid({
156
+ base,
157
+ dark,
158
+ tone: "primary",
159
+ name,
160
+ state: "pressed"
161
+ }),
162
+ selected: opts.solid({
163
+ base,
164
+ dark,
165
+ tone: "primary",
166
+ name,
167
+ state: "selected"
168
+ })
79
169
  },
80
170
  positive: {
81
- enabled: opts.solid({ base, dark, tone: "positive", name, state: "enabled" }),
82
- disabled: opts.solid({ base, dark, tone: "positive", name, state: "disabled" }),
83
- hovered: opts.solid({ base, dark, tone: "positive", name, state: "hovered" }),
84
- pressed: opts.solid({ base, dark, tone: "positive", name, state: "pressed" }),
85
- selected: opts.solid({ base, dark, tone: "positive", name, state: "selected" })
171
+ enabled: opts.solid({
172
+ base,
173
+ dark,
174
+ tone: "positive",
175
+ name,
176
+ state: "enabled"
177
+ }),
178
+ disabled: opts.solid({
179
+ base,
180
+ dark,
181
+ tone: "positive",
182
+ name,
183
+ state: "disabled"
184
+ }),
185
+ hovered: opts.solid({
186
+ base,
187
+ dark,
188
+ tone: "positive",
189
+ name,
190
+ state: "hovered"
191
+ }),
192
+ pressed: opts.solid({
193
+ base,
194
+ dark,
195
+ tone: "positive",
196
+ name,
197
+ state: "pressed"
198
+ }),
199
+ selected: opts.solid({
200
+ base,
201
+ dark,
202
+ tone: "positive",
203
+ name,
204
+ state: "selected"
205
+ })
86
206
  },
87
207
  caution: {
88
- enabled: opts.solid({ base, dark, tone: "caution", name, state: "enabled" }),
89
- disabled: opts.solid({ base, dark, tone: "caution", name, state: "disabled" }),
90
- hovered: opts.solid({ base, dark, tone: "caution", name, state: "hovered" }),
91
- pressed: opts.solid({ base, dark, tone: "caution", name, state: "pressed" }),
92
- selected: opts.solid({ base, dark, tone: "caution", name, state: "selected" })
208
+ enabled: opts.solid({
209
+ base,
210
+ dark,
211
+ tone: "caution",
212
+ name,
213
+ state: "enabled"
214
+ }),
215
+ disabled: opts.solid({
216
+ base,
217
+ dark,
218
+ tone: "caution",
219
+ name,
220
+ state: "disabled"
221
+ }),
222
+ hovered: opts.solid({
223
+ base,
224
+ dark,
225
+ tone: "caution",
226
+ name,
227
+ state: "hovered"
228
+ }),
229
+ pressed: opts.solid({
230
+ base,
231
+ dark,
232
+ tone: "caution",
233
+ name,
234
+ state: "pressed"
235
+ }),
236
+ selected: opts.solid({
237
+ base,
238
+ dark,
239
+ tone: "caution",
240
+ name,
241
+ state: "selected"
242
+ })
93
243
  },
94
244
  critical: {
95
- enabled: opts.solid({ base, dark, tone: "critical", name, state: "enabled" }),
96
- disabled: opts.solid({ base, dark, tone: "critical", name, state: "disabled" }),
97
- hovered: opts.solid({ base, dark, tone: "critical", name, state: "hovered" }),
98
- pressed: opts.solid({ base, dark, tone: "critical", name, state: "pressed" }),
99
- selected: opts.solid({ base, dark, tone: "critical", name, state: "selected" })
245
+ enabled: opts.solid({
246
+ base,
247
+ dark,
248
+ tone: "critical",
249
+ name,
250
+ state: "enabled"
251
+ }),
252
+ disabled: opts.solid({
253
+ base,
254
+ dark,
255
+ tone: "critical",
256
+ name,
257
+ state: "disabled"
258
+ }),
259
+ hovered: opts.solid({
260
+ base,
261
+ dark,
262
+ tone: "critical",
263
+ name,
264
+ state: "hovered"
265
+ }),
266
+ pressed: opts.solid({
267
+ base,
268
+ dark,
269
+ tone: "critical",
270
+ name,
271
+ state: "pressed"
272
+ }),
273
+ selected: opts.solid({
274
+ base,
275
+ dark,
276
+ tone: "critical",
277
+ name,
278
+ state: "selected"
279
+ })
100
280
  }
101
281
  };
102
282
  }
@@ -287,7 +467,10 @@ const black = "hsl(0, 0%, 0%)", white = "hsl(0, 0%, 100%)", colors = {
287
467
  focusRing: [colors.critical.base, colors.critical.base]
288
468
  }
289
469
  }, defaultOpts = {
290
- base: ({ dark, name }) => name === "default" ? {
470
+ base: ({
471
+ dark,
472
+ name
473
+ }) => name === "default" ? {
291
474
  bg: dark ? black : white,
292
475
  fg: dark ? white : black,
293
476
  border: dark ? colors.default.darkest : colors.default.lightest,
@@ -318,7 +501,12 @@ const black = "hsl(0, 0%, 0%)", white = "hsl(0, 0%, 100%)", colors = {
318
501
  to: dark ? white : black
319
502
  }
320
503
  },
321
- solid: ({ base, dark, state, tone }) => {
504
+ solid: ({
505
+ base,
506
+ dark,
507
+ state,
508
+ tone
509
+ }) => {
322
510
  const color2 = colors[tone];
323
511
  return state === "hovered" ? {
324
512
  bg: dark ? color2.light : color2.dark,
@@ -362,7 +550,12 @@ const black = "hsl(0, 0%, 0%)", white = "hsl(0, 0%, 100%)", colors = {
362
550
  skeleton: base.skeleton
363
551
  };
364
552
  },
365
- muted: ({ base, dark, state, tone }) => {
553
+ muted: ({
554
+ base,
555
+ dark,
556
+ state,
557
+ tone
558
+ }) => {
366
559
  const color2 = colors[tone];
367
560
  return state === "hovered" ? {
368
561
  bg: dark ? color2.darker : color2.lighter,
@@ -406,7 +599,12 @@ const black = "hsl(0, 0%, 0%)", white = "hsl(0, 0%, 100%)", colors = {
406
599
  skeleton: base.skeleton
407
600
  };
408
601
  },
409
- button: ({ base, mode, muted, solid }) => mode === "bleed" ? {
602
+ button: ({
603
+ base,
604
+ mode,
605
+ muted,
606
+ solid
607
+ }) => mode === "bleed" ? {
410
608
  ...muted,
411
609
  enabled: {
412
610
  bg: "transparent",
@@ -454,7 +652,9 @@ const black = "hsl(0, 0%, 0%)", white = "hsl(0, 0%, 100%)", colors = {
454
652
  ...solid,
455
653
  enabled: muted.enabled
456
654
  } : solid,
457
- card: ({ base }) => ({
655
+ card: ({
656
+ base
657
+ }) => ({
458
658
  bg: black,
459
659
  bg2: black,
460
660
  fg: black,
@@ -482,8 +682,14 @@ const black = "hsl(0, 0%, 0%)", white = "hsl(0, 0%, 100%)", colors = {
482
682
  border: black,
483
683
  placeholder: black
484
684
  }),
485
- selectable: ({ muted, state, tone }) => muted[tone][state],
486
- spot: ({ key }) => spots[key],
685
+ selectable: ({
686
+ muted,
687
+ state,
688
+ tone
689
+ }) => muted[tone][state],
690
+ spot: ({
691
+ key
692
+ }) => spots[key],
487
693
  syntax: () => ({
488
694
  atrule: black,
489
695
  attrName: black,
@@ -598,64 +804,283 @@ function createInputModes(opts, base, dark, solid, muted) {
598
804
  function createMutedTones(opts, base, dark, name) {
599
805
  return {
600
806
  default: {
601
- enabled: opts.muted({ base, dark, tone: "default", name, state: "enabled" }),
602
- disabled: opts.muted({ base, dark, tone: "default", name, state: "disabled" }),
603
- hovered: opts.muted({ base, dark, tone: "default", name, state: "hovered" }),
604
- pressed: opts.muted({ base, dark, tone: "default", name, state: "pressed" }),
605
- selected: opts.muted({ base, dark, tone: "default", name, state: "selected" })
807
+ enabled: opts.muted({
808
+ base,
809
+ dark,
810
+ tone: "default",
811
+ name,
812
+ state: "enabled"
813
+ }),
814
+ disabled: opts.muted({
815
+ base,
816
+ dark,
817
+ tone: "default",
818
+ name,
819
+ state: "disabled"
820
+ }),
821
+ hovered: opts.muted({
822
+ base,
823
+ dark,
824
+ tone: "default",
825
+ name,
826
+ state: "hovered"
827
+ }),
828
+ pressed: opts.muted({
829
+ base,
830
+ dark,
831
+ tone: "default",
832
+ name,
833
+ state: "pressed"
834
+ }),
835
+ selected: opts.muted({
836
+ base,
837
+ dark,
838
+ tone: "default",
839
+ name,
840
+ state: "selected"
841
+ })
606
842
  },
607
843
  transparent: {
608
- enabled: opts.muted({ base, dark, tone: "transparent", name, state: "enabled" }),
609
- disabled: opts.muted({ base, dark, tone: "transparent", name, state: "disabled" }),
610
- hovered: opts.muted({ base, dark, tone: "transparent", name, state: "hovered" }),
611
- pressed: opts.muted({ base, dark, tone: "transparent", name, state: "pressed" }),
612
- selected: opts.muted({ base, dark, tone: "transparent", name, state: "selected" })
844
+ enabled: opts.muted({
845
+ base,
846
+ dark,
847
+ tone: "transparent",
848
+ name,
849
+ state: "enabled"
850
+ }),
851
+ disabled: opts.muted({
852
+ base,
853
+ dark,
854
+ tone: "transparent",
855
+ name,
856
+ state: "disabled"
857
+ }),
858
+ hovered: opts.muted({
859
+ base,
860
+ dark,
861
+ tone: "transparent",
862
+ name,
863
+ state: "hovered"
864
+ }),
865
+ pressed: opts.muted({
866
+ base,
867
+ dark,
868
+ tone: "transparent",
869
+ name,
870
+ state: "pressed"
871
+ }),
872
+ selected: opts.muted({
873
+ base,
874
+ dark,
875
+ tone: "transparent",
876
+ name,
877
+ state: "selected"
878
+ })
613
879
  },
614
880
  primary: {
615
- enabled: opts.muted({ base, dark, tone: "primary", name, state: "enabled" }),
616
- disabled: opts.muted({ base, dark, tone: "primary", name, state: "disabled" }),
617
- hovered: opts.muted({ base, dark, tone: "primary", name, state: "hovered" }),
618
- pressed: opts.muted({ base, dark, tone: "primary", name, state: "pressed" }),
619
- selected: opts.muted({ base, dark, tone: "primary", name, state: "selected" })
881
+ enabled: opts.muted({
882
+ base,
883
+ dark,
884
+ tone: "primary",
885
+ name,
886
+ state: "enabled"
887
+ }),
888
+ disabled: opts.muted({
889
+ base,
890
+ dark,
891
+ tone: "primary",
892
+ name,
893
+ state: "disabled"
894
+ }),
895
+ hovered: opts.muted({
896
+ base,
897
+ dark,
898
+ tone: "primary",
899
+ name,
900
+ state: "hovered"
901
+ }),
902
+ pressed: opts.muted({
903
+ base,
904
+ dark,
905
+ tone: "primary",
906
+ name,
907
+ state: "pressed"
908
+ }),
909
+ selected: opts.muted({
910
+ base,
911
+ dark,
912
+ tone: "primary",
913
+ name,
914
+ state: "selected"
915
+ })
620
916
  },
621
917
  positive: {
622
- enabled: opts.muted({ base, dark, tone: "positive", name, state: "enabled" }),
623
- disabled: opts.muted({ base, dark, tone: "positive", name, state: "disabled" }),
624
- hovered: opts.muted({ base, dark, tone: "positive", name, state: "hovered" }),
625
- pressed: opts.muted({ base, dark, tone: "positive", name, state: "pressed" }),
626
- selected: opts.muted({ base, dark, tone: "positive", name, state: "selected" })
918
+ enabled: opts.muted({
919
+ base,
920
+ dark,
921
+ tone: "positive",
922
+ name,
923
+ state: "enabled"
924
+ }),
925
+ disabled: opts.muted({
926
+ base,
927
+ dark,
928
+ tone: "positive",
929
+ name,
930
+ state: "disabled"
931
+ }),
932
+ hovered: opts.muted({
933
+ base,
934
+ dark,
935
+ tone: "positive",
936
+ name,
937
+ state: "hovered"
938
+ }),
939
+ pressed: opts.muted({
940
+ base,
941
+ dark,
942
+ tone: "positive",
943
+ name,
944
+ state: "pressed"
945
+ }),
946
+ selected: opts.muted({
947
+ base,
948
+ dark,
949
+ tone: "positive",
950
+ name,
951
+ state: "selected"
952
+ })
627
953
  },
628
954
  caution: {
629
- enabled: opts.muted({ base, dark, tone: "caution", name, state: "enabled" }),
630
- disabled: opts.muted({ base, dark, tone: "caution", name, state: "disabled" }),
631
- hovered: opts.muted({ base, dark, tone: "caution", name, state: "hovered" }),
632
- pressed: opts.muted({ base, dark, tone: "caution", name, state: "pressed" }),
633
- selected: opts.muted({ base, dark, tone: "caution", name, state: "selected" })
955
+ enabled: opts.muted({
956
+ base,
957
+ dark,
958
+ tone: "caution",
959
+ name,
960
+ state: "enabled"
961
+ }),
962
+ disabled: opts.muted({
963
+ base,
964
+ dark,
965
+ tone: "caution",
966
+ name,
967
+ state: "disabled"
968
+ }),
969
+ hovered: opts.muted({
970
+ base,
971
+ dark,
972
+ tone: "caution",
973
+ name,
974
+ state: "hovered"
975
+ }),
976
+ pressed: opts.muted({
977
+ base,
978
+ dark,
979
+ tone: "caution",
980
+ name,
981
+ state: "pressed"
982
+ }),
983
+ selected: opts.muted({
984
+ base,
985
+ dark,
986
+ tone: "caution",
987
+ name,
988
+ state: "selected"
989
+ })
634
990
  },
635
991
  critical: {
636
- enabled: opts.muted({ base, dark, tone: "critical", name, state: "enabled" }),
637
- disabled: opts.muted({ base, dark, tone: "critical", name, state: "disabled" }),
638
- hovered: opts.muted({ base, dark, tone: "critical", name, state: "hovered" }),
639
- pressed: opts.muted({ base, dark, tone: "critical", name, state: "pressed" }),
640
- selected: opts.muted({ base, dark, tone: "critical", name, state: "selected" })
992
+ enabled: opts.muted({
993
+ base,
994
+ dark,
995
+ tone: "critical",
996
+ name,
997
+ state: "enabled"
998
+ }),
999
+ disabled: opts.muted({
1000
+ base,
1001
+ dark,
1002
+ tone: "critical",
1003
+ name,
1004
+ state: "disabled"
1005
+ }),
1006
+ hovered: opts.muted({
1007
+ base,
1008
+ dark,
1009
+ tone: "critical",
1010
+ name,
1011
+ state: "hovered"
1012
+ }),
1013
+ pressed: opts.muted({
1014
+ base,
1015
+ dark,
1016
+ tone: "critical",
1017
+ name,
1018
+ state: "pressed"
1019
+ }),
1020
+ selected: opts.muted({
1021
+ base,
1022
+ dark,
1023
+ tone: "critical",
1024
+ name,
1025
+ state: "selected"
1026
+ })
641
1027
  }
642
1028
  };
643
1029
  }
644
1030
  function createSpot(opts, base, dark) {
645
1031
  return {
646
- gray: opts.spot({ base, dark, key: "gray" }),
647
- blue: opts.spot({ base, dark, key: "blue" }),
648
- purple: opts.spot({ base, dark, key: "purple" }),
649
- magenta: opts.spot({ base, dark, key: "magenta" }),
650
- red: opts.spot({ base, dark, key: "red" }),
651
- orange: opts.spot({ base, dark, key: "orange" }),
652
- yellow: opts.spot({ base, dark, key: "yellow" }),
653
- green: opts.spot({ base, dark, key: "green" }),
654
- cyan: opts.spot({ base, dark, key: "cyan" })
1032
+ gray: opts.spot({
1033
+ base,
1034
+ dark,
1035
+ key: "gray"
1036
+ }),
1037
+ blue: opts.spot({
1038
+ base,
1039
+ dark,
1040
+ key: "blue"
1041
+ }),
1042
+ purple: opts.spot({
1043
+ base,
1044
+ dark,
1045
+ key: "purple"
1046
+ }),
1047
+ magenta: opts.spot({
1048
+ base,
1049
+ dark,
1050
+ key: "magenta"
1051
+ }),
1052
+ red: opts.spot({
1053
+ base,
1054
+ dark,
1055
+ key: "red"
1056
+ }),
1057
+ orange: opts.spot({
1058
+ base,
1059
+ dark,
1060
+ key: "orange"
1061
+ }),
1062
+ yellow: opts.spot({
1063
+ base,
1064
+ dark,
1065
+ key: "yellow"
1066
+ }),
1067
+ green: opts.spot({
1068
+ base,
1069
+ dark,
1070
+ key: "green"
1071
+ }),
1072
+ cyan: opts.spot({
1073
+ base,
1074
+ dark,
1075
+ key: "cyan"
1076
+ })
655
1077
  };
656
1078
  }
657
1079
  function createColorTheme(partialOpts = {}) {
658
- const builders = { ...defaultOpts, ...partialOpts };
1080
+ const builders = {
1081
+ ...defaultOpts,
1082
+ ...partialOpts
1083
+ };
659
1084
  return {
660
1085
  light: _createColorScheme(builders, !1),
661
1086
  dark: _createColorScheme(builders, !0)
@@ -672,7 +1097,10 @@ function _createColorScheme(opts, dark) {
672
1097
  };
673
1098
  }
674
1099
  function _createColor(opts, dark, name) {
675
- const base = opts.base({ dark, name }), solid = createSolidTones(opts, base, dark, name), muted = createMutedTones(opts, base, dark, name);
1100
+ const base = opts.base({
1101
+ dark,
1102
+ name
1103
+ }), solid = createSolidTones(opts, base, dark, name), muted = createMutedTones(opts, base, dark, name);
676
1104
  return {
677
1105
  base,
678
1106
  button: createButtonModes(opts, base, dark, solid, muted),
@@ -681,12 +1109,149 @@ function _createColor(opts, dark, name) {
681
1109
  input: createInputModes(opts, base, dark, solid, muted),
682
1110
  selectable: createSelectableTones(opts, base, dark, solid, muted),
683
1111
  spot: createSpot(opts, base, dark),
684
- syntax: opts.syntax({ base, dark }),
1112
+ syntax: opts.syntax({
1113
+ base,
1114
+ dark
1115
+ }),
685
1116
  solid,
686
1117
  muted
687
1118
  };
688
1119
  }
689
- const defaultThemeFonts = {
1120
+ const defaultThemeConfig = {
1121
+ _version: 2,
1122
+ avatar: {
1123
+ sizes: [{
1124
+ distance: -4,
1125
+ size: 19
1126
+ }, {
1127
+ distance: -4,
1128
+ size: 25
1129
+ }, {
1130
+ distance: -8,
1131
+ size: 33
1132
+ }, {
1133
+ distance: -12,
1134
+ size: 49
1135
+ }],
1136
+ focusRing: {
1137
+ offset: 1,
1138
+ width: 1
1139
+ }
1140
+ },
1141
+ button: {
1142
+ textWeight: "medium",
1143
+ border: {
1144
+ width: 1
1145
+ },
1146
+ focusRing: {
1147
+ offset: -1,
1148
+ width: 1
1149
+ }
1150
+ },
1151
+ card: {
1152
+ border: {
1153
+ width: 1
1154
+ },
1155
+ focusRing: {
1156
+ offset: -1,
1157
+ width: 1
1158
+ },
1159
+ shadow: {
1160
+ outline: 0.5
1161
+ }
1162
+ },
1163
+ container: [320, 640, 960, 1280, 1600, 1920],
1164
+ media: [360, 600, 900, 1200, 1800, 2400],
1165
+ layer: {
1166
+ dialog: {
1167
+ zOffset: 600
1168
+ },
1169
+ popover: {
1170
+ zOffset: 400
1171
+ },
1172
+ tooltip: {
1173
+ zOffset: 200
1174
+ }
1175
+ },
1176
+ radius: [0, 1, 5, 9, 13, 21, 33],
1177
+ shadow: [null, {
1178
+ umbra: [0, 0, 0, 0],
1179
+ penumbra: [0, 0, 0, 0],
1180
+ ambient: [0, 0, 0, 0]
1181
+ }, {
1182
+ umbra: [0, 3, 5, -2],
1183
+ penumbra: [0, 6, 10, 0],
1184
+ ambient: [0, 1, 18, 1]
1185
+ }, {
1186
+ umbra: [0, 7, 8, -4],
1187
+ penumbra: [0, 12, 17, 2],
1188
+ ambient: [0, 5, 22, 4]
1189
+ }, {
1190
+ umbra: [0, 9, 11, -5],
1191
+ penumbra: [0, 18, 28, 2],
1192
+ ambient: [0, 7, 34, 6]
1193
+ }, {
1194
+ umbra: [0, 11, 15, -7],
1195
+ penumbra: [0, 24, 38, 3],
1196
+ ambient: [0, 9, 46, 8]
1197
+ }],
1198
+ space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],
1199
+ input: {
1200
+ border: {
1201
+ width: 1
1202
+ },
1203
+ checkbox: {
1204
+ size: 17,
1205
+ focusRing: {
1206
+ offset: -1,
1207
+ width: 1
1208
+ }
1209
+ },
1210
+ radio: {
1211
+ size: 17,
1212
+ markSize: 9,
1213
+ focusRing: {
1214
+ offset: -1,
1215
+ width: 1
1216
+ }
1217
+ },
1218
+ switch: {
1219
+ width: 25,
1220
+ height: 17,
1221
+ padding: 5,
1222
+ transitionDurationMs: 150,
1223
+ transitionTimingFunction: "ease-out",
1224
+ focusRing: {
1225
+ offset: 1,
1226
+ width: 1
1227
+ }
1228
+ },
1229
+ select: {
1230
+ focusRing: {
1231
+ offset: -1,
1232
+ width: 1
1233
+ }
1234
+ },
1235
+ text: {
1236
+ focusRing: {
1237
+ offset: -1,
1238
+ width: 1
1239
+ }
1240
+ }
1241
+ },
1242
+ style: {
1243
+ button: {
1244
+ root: {
1245
+ transition: "background-color 100ms,border-color 100ms,color 100ms"
1246
+ }
1247
+ }
1248
+ // card: {
1249
+ // root: {
1250
+ // transition: 'background-color 100ms,border-color 100ms,color 100ms',
1251
+ // },
1252
+ // },
1253
+ }
1254
+ }, defaultThemeFonts = {
690
1255
  code: {
691
1256
  family: "ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace",
692
1257
  weights: {
@@ -695,48 +1260,42 @@ const defaultThemeFonts = {
695
1260
  semibold: 600,
696
1261
  bold: 700
697
1262
  },
698
- sizes: [
699
- {
700
- ascenderHeight: 4,
701
- descenderHeight: 4,
702
- fontSize: 10,
703
- iconSize: 17,
704
- lineHeight: 15,
705
- letterSpacing: 0
706
- },
707
- {
708
- ascenderHeight: 5,
709
- descenderHeight: 5,
710
- fontSize: 13,
711
- iconSize: 21,
712
- lineHeight: 19,
713
- letterSpacing: 0
714
- },
715
- {
716
- ascenderHeight: 6,
717
- descenderHeight: 6,
718
- fontSize: 16,
719
- iconSize: 25,
720
- lineHeight: 23,
721
- letterSpacing: 0
722
- },
723
- {
724
- ascenderHeight: 7,
725
- descenderHeight: 7,
726
- fontSize: 19,
727
- iconSize: 29,
728
- lineHeight: 27,
729
- letterSpacing: 0
730
- },
731
- {
732
- ascenderHeight: 8,
733
- descenderHeight: 8,
734
- fontSize: 22,
735
- iconSize: 33,
736
- lineHeight: 31,
737
- letterSpacing: 0
738
- }
739
- ]
1263
+ sizes: [{
1264
+ ascenderHeight: 4,
1265
+ descenderHeight: 4,
1266
+ fontSize: 10,
1267
+ iconSize: 17,
1268
+ lineHeight: 15,
1269
+ letterSpacing: 0
1270
+ }, {
1271
+ ascenderHeight: 5,
1272
+ descenderHeight: 5,
1273
+ fontSize: 13,
1274
+ iconSize: 21,
1275
+ lineHeight: 19,
1276
+ letterSpacing: 0
1277
+ }, {
1278
+ ascenderHeight: 6,
1279
+ descenderHeight: 6,
1280
+ fontSize: 16,
1281
+ iconSize: 25,
1282
+ lineHeight: 23,
1283
+ letterSpacing: 0
1284
+ }, {
1285
+ ascenderHeight: 7,
1286
+ descenderHeight: 7,
1287
+ fontSize: 19,
1288
+ iconSize: 29,
1289
+ lineHeight: 27,
1290
+ letterSpacing: 0
1291
+ }, {
1292
+ ascenderHeight: 8,
1293
+ descenderHeight: 8,
1294
+ fontSize: 22,
1295
+ iconSize: 33,
1296
+ lineHeight: 31,
1297
+ letterSpacing: 0
1298
+ }]
740
1299
  },
741
1300
  heading: {
742
1301
  family: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", Helvetica, Arial, system-ui, sans-serif',
@@ -746,56 +1305,49 @@ const defaultThemeFonts = {
746
1305
  semibold: 900,
747
1306
  bold: 900
748
1307
  },
749
- sizes: [
750
- {
751
- ascenderHeight: 5,
752
- descenderHeight: 5,
753
- fontSize: 13,
754
- iconSize: 17,
755
- lineHeight: 19,
756
- letterSpacing: 0
757
- },
758
- {
759
- ascenderHeight: 6,
760
- descenderHeight: 6,
761
- fontSize: 16,
762
- iconSize: 25,
763
- lineHeight: 23,
764
- letterSpacing: 0
765
- },
766
- {
767
- ascenderHeight: 7,
768
- descenderHeight: 7,
769
- fontSize: 21,
770
- iconSize: 33,
771
- lineHeight: 29,
772
- letterSpacing: 0
773
- },
774
- {
775
- ascenderHeight: 8,
776
- descenderHeight: 8,
777
- fontSize: 27,
778
- iconSize: 41,
779
- lineHeight: 35,
780
- letterSpacing: 0
781
- },
782
- {
783
- ascenderHeight: 9.5,
784
- descenderHeight: 8.5,
785
- fontSize: 33,
786
- iconSize: 49,
787
- lineHeight: 41,
788
- letterSpacing: 0
789
- },
790
- {
791
- ascenderHeight: 10.5,
792
- descenderHeight: 9.5,
793
- fontSize: 38,
794
- iconSize: 53,
795
- lineHeight: 47,
796
- letterSpacing: 0
797
- }
798
- ]
1308
+ sizes: [{
1309
+ ascenderHeight: 5,
1310
+ descenderHeight: 5,
1311
+ fontSize: 13,
1312
+ iconSize: 17,
1313
+ lineHeight: 19,
1314
+ letterSpacing: 0
1315
+ }, {
1316
+ ascenderHeight: 6,
1317
+ descenderHeight: 6,
1318
+ fontSize: 16,
1319
+ iconSize: 25,
1320
+ lineHeight: 23,
1321
+ letterSpacing: 0
1322
+ }, {
1323
+ ascenderHeight: 7,
1324
+ descenderHeight: 7,
1325
+ fontSize: 21,
1326
+ iconSize: 33,
1327
+ lineHeight: 29,
1328
+ letterSpacing: 0
1329
+ }, {
1330
+ ascenderHeight: 8,
1331
+ descenderHeight: 8,
1332
+ fontSize: 27,
1333
+ iconSize: 41,
1334
+ lineHeight: 35,
1335
+ letterSpacing: 0
1336
+ }, {
1337
+ ascenderHeight: 9.5,
1338
+ descenderHeight: 8.5,
1339
+ fontSize: 33,
1340
+ iconSize: 49,
1341
+ lineHeight: 41,
1342
+ letterSpacing: 0
1343
+ }, {
1344
+ ascenderHeight: 10.5,
1345
+ descenderHeight: 9.5,
1346
+ fontSize: 38,
1347
+ iconSize: 53,
1348
+ lineHeight: 47,
1349
+ letterSpacing: 0
1350
+ }]
799
1351
  },
800
1352
  label: {
801
1353
  family: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", system-ui, sans-serif',
@@ -805,56 +1357,49 @@ const defaultThemeFonts = {
805
1357
  semibold: 800,
806
1358
  bold: 900
807
1359
  },
808
- sizes: [
809
- {
810
- ascenderHeight: 2,
811
- descenderHeight: 2,
812
- fontSize: 8.1,
813
- iconSize: 13,
814
- lineHeight: 10,
815
- letterSpacing: 0.5
816
- },
817
- {
818
- ascenderHeight: 2,
819
- descenderHeight: 2,
820
- fontSize: 9.5,
821
- iconSize: 15,
822
- lineHeight: 11,
823
- letterSpacing: 0.5
824
- },
825
- {
826
- ascenderHeight: 2,
827
- descenderHeight: 2,
828
- fontSize: 10.8,
829
- iconSize: 17,
830
- lineHeight: 12,
831
- letterSpacing: 0.5
832
- },
833
- {
834
- ascenderHeight: 2,
835
- descenderHeight: 2,
836
- fontSize: 12.25,
837
- iconSize: 19,
838
- lineHeight: 13,
839
- letterSpacing: 0.5
840
- },
841
- {
842
- ascenderHeight: 2,
843
- descenderHeight: 2,
844
- fontSize: 13.6,
845
- iconSize: 21,
846
- lineHeight: 14,
847
- letterSpacing: 0.5
848
- },
849
- {
850
- ascenderHeight: 2,
851
- descenderHeight: 2,
852
- fontSize: 15,
853
- iconSize: 23,
854
- lineHeight: 15,
855
- letterSpacing: 0.5
856
- }
857
- ]
1360
+ sizes: [{
1361
+ ascenderHeight: 2,
1362
+ descenderHeight: 2,
1363
+ fontSize: 8.1,
1364
+ iconSize: 13,
1365
+ lineHeight: 10,
1366
+ letterSpacing: 0.5
1367
+ }, {
1368
+ ascenderHeight: 2,
1369
+ descenderHeight: 2,
1370
+ fontSize: 9.5,
1371
+ iconSize: 15,
1372
+ lineHeight: 11,
1373
+ letterSpacing: 0.5
1374
+ }, {
1375
+ ascenderHeight: 2,
1376
+ descenderHeight: 2,
1377
+ fontSize: 10.8,
1378
+ iconSize: 17,
1379
+ lineHeight: 12,
1380
+ letterSpacing: 0.5
1381
+ }, {
1382
+ ascenderHeight: 2,
1383
+ descenderHeight: 2,
1384
+ fontSize: 12.25,
1385
+ iconSize: 19,
1386
+ lineHeight: 13,
1387
+ letterSpacing: 0.5
1388
+ }, {
1389
+ ascenderHeight: 2,
1390
+ descenderHeight: 2,
1391
+ fontSize: 13.6,
1392
+ iconSize: 21,
1393
+ lineHeight: 14,
1394
+ letterSpacing: 0.5
1395
+ }, {
1396
+ ascenderHeight: 2,
1397
+ descenderHeight: 2,
1398
+ fontSize: 15,
1399
+ iconSize: 23,
1400
+ lineHeight: 15,
1401
+ letterSpacing: 0.5
1402
+ }]
858
1403
  },
859
1404
  text: {
860
1405
  family: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", Helvetica, Arial, system-ui, sans-serif',
@@ -864,50 +1409,276 @@ const defaultThemeFonts = {
864
1409
  semibold: 600,
865
1410
  bold: 700
866
1411
  },
867
- sizes: [
868
- {
869
- ascenderHeight: 4,
870
- descenderHeight: 4,
871
- fontSize: 10,
872
- iconSize: 17,
873
- lineHeight: 15,
874
- letterSpacing: 0
875
- },
876
- {
877
- ascenderHeight: 5,
878
- descenderHeight: 5,
879
- fontSize: 13,
880
- iconSize: 21,
881
- lineHeight: 19,
882
- letterSpacing: 0
883
- },
884
- {
885
- ascenderHeight: 6,
886
- descenderHeight: 6,
887
- fontSize: 15,
888
- iconSize: 25,
889
- lineHeight: 23,
890
- letterSpacing: 0
891
- },
892
- {
893
- ascenderHeight: 7,
894
- descenderHeight: 7,
895
- fontSize: 18,
896
- iconSize: 29,
897
- lineHeight: 27,
898
- letterSpacing: 0
899
- },
900
- {
901
- ascenderHeight: 8,
902
- descenderHeight: 8,
903
- fontSize: 21,
904
- iconSize: 33,
905
- lineHeight: 31,
906
- letterSpacing: 0
907
- }
908
- ]
1412
+ sizes: [{
1413
+ ascenderHeight: 4,
1414
+ descenderHeight: 4,
1415
+ fontSize: 10,
1416
+ iconSize: 17,
1417
+ lineHeight: 15,
1418
+ letterSpacing: 0
1419
+ }, {
1420
+ ascenderHeight: 5,
1421
+ descenderHeight: 5,
1422
+ fontSize: 13,
1423
+ iconSize: 21,
1424
+ lineHeight: 19,
1425
+ letterSpacing: 0
1426
+ }, {
1427
+ ascenderHeight: 6,
1428
+ descenderHeight: 6,
1429
+ fontSize: 15,
1430
+ iconSize: 25,
1431
+ lineHeight: 23,
1432
+ letterSpacing: 0
1433
+ }, {
1434
+ ascenderHeight: 7,
1435
+ descenderHeight: 7,
1436
+ fontSize: 18,
1437
+ iconSize: 29,
1438
+ lineHeight: 27,
1439
+ letterSpacing: 0
1440
+ }, {
1441
+ ascenderHeight: 8,
1442
+ descenderHeight: 8,
1443
+ fontSize: 21,
1444
+ iconSize: 33,
1445
+ lineHeight: 31,
1446
+ letterSpacing: 0
1447
+ }]
909
1448
  }
910
- };
1449
+ }, cache$4 = /* @__PURE__ */ new WeakMap();
1450
+ function themeColor_v0_v2(color_v0) {
1451
+ const cached_v2 = cache$4.get(color_v0);
1452
+ if (cached_v2) return cached_v2;
1453
+ const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled), color_v2 = {
1454
+ _blend: color_v0._blend || (color_v0.dark ? "screen" : "multiply"),
1455
+ _dark: color_v0.dark,
1456
+ accent: base.accent,
1457
+ avatar: base.avatar,
1458
+ backdrop: color_v0.base.shadow.ambient,
1459
+ badge: base.badge,
1460
+ bg: color_v0.base.bg,
1461
+ border: color_v0.base.border,
1462
+ button: {
1463
+ default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),
1464
+ ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),
1465
+ bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed)
1466
+ },
1467
+ code: base.code,
1468
+ fg: color_v0.base.fg,
1469
+ focusRing: color_v0.base.focusRing,
1470
+ icon: base.muted.fg,
1471
+ input: {
1472
+ default: inputStatesThemeColor_v0_v2(color_v0.input.default),
1473
+ invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid)
1474
+ },
1475
+ kbd: base.kbd,
1476
+ link: base.link,
1477
+ muted: {
1478
+ ...base.muted,
1479
+ bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg
1480
+ },
1481
+ selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),
1482
+ shadow: color_v0.base.shadow,
1483
+ skeleton: {
1484
+ from: color_v0.skeleton?.from || color_v0.base.border,
1485
+ to: color_v0.skeleton?.to || color_v0.base.border
1486
+ },
1487
+ syntax: color_v0.syntax
1488
+ };
1489
+ return cache$4.set(color_v0, color_v2), color_v2;
1490
+ }
1491
+ function stateTonesThemeColor_v0_v2(v0, t) {
1492
+ return {
1493
+ default: {
1494
+ enabled: stateThemeColor_v0_v2(v0, t.default.enabled),
1495
+ hovered: stateThemeColor_v0_v2(v0, t.default.hovered),
1496
+ pressed: stateThemeColor_v0_v2(v0, t.default.pressed),
1497
+ selected: stateThemeColor_v0_v2(v0, t.default.selected),
1498
+ disabled: stateThemeColor_v0_v2(v0, t.default.disabled)
1499
+ },
1500
+ primary: {
1501
+ enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),
1502
+ hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),
1503
+ pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),
1504
+ selected: stateThemeColor_v0_v2(v0, t.primary.selected),
1505
+ disabled: stateThemeColor_v0_v2(v0, t.primary.disabled)
1506
+ },
1507
+ positive: {
1508
+ enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),
1509
+ hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),
1510
+ pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),
1511
+ selected: stateThemeColor_v0_v2(v0, t.positive.selected),
1512
+ disabled: stateThemeColor_v0_v2(v0, t.positive.disabled)
1513
+ },
1514
+ caution: {
1515
+ enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),
1516
+ hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),
1517
+ pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),
1518
+ selected: stateThemeColor_v0_v2(v0, t.caution.selected),
1519
+ disabled: stateThemeColor_v0_v2(v0, t.caution.disabled)
1520
+ },
1521
+ critical: {
1522
+ enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),
1523
+ hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),
1524
+ pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),
1525
+ selected: stateThemeColor_v0_v2(v0, t.critical.selected),
1526
+ disabled: stateThemeColor_v0_v2(v0, t.critical.disabled)
1527
+ }
1528
+ };
1529
+ }
1530
+ function stateThemeColor_v0_v2(v0, state) {
1531
+ return {
1532
+ ...state,
1533
+ avatar: {
1534
+ gray: {
1535
+ bg: v0.spot.gray,
1536
+ fg: v0.base.bg
1537
+ },
1538
+ blue: {
1539
+ bg: v0.spot.blue,
1540
+ fg: v0.base.bg
1541
+ },
1542
+ purple: {
1543
+ bg: v0.spot.purple,
1544
+ fg: v0.base.bg
1545
+ },
1546
+ magenta: {
1547
+ bg: v0.spot.magenta,
1548
+ fg: v0.base.bg
1549
+ },
1550
+ red: {
1551
+ bg: v0.spot.red,
1552
+ fg: v0.base.bg
1553
+ },
1554
+ orange: {
1555
+ bg: v0.spot.orange,
1556
+ fg: v0.base.bg
1557
+ },
1558
+ yellow: {
1559
+ bg: v0.spot.yellow,
1560
+ fg: v0.base.bg
1561
+ },
1562
+ green: {
1563
+ bg: v0.spot.green,
1564
+ fg: v0.base.bg
1565
+ },
1566
+ cyan: {
1567
+ bg: v0.spot.cyan,
1568
+ fg: v0.base.bg
1569
+ }
1570
+ },
1571
+ badge: {
1572
+ default: {
1573
+ bg: v0.muted.default.enabled.bg,
1574
+ fg: v0.muted.default.enabled.fg,
1575
+ dot: v0.muted.default.enabled.muted.fg,
1576
+ icon: v0.muted.default.enabled.muted.fg
1577
+ },
1578
+ primary: {
1579
+ bg: v0.muted.primary.enabled.bg,
1580
+ fg: v0.muted.primary.enabled.fg,
1581
+ dot: v0.muted.primary.enabled.muted.fg,
1582
+ icon: v0.muted.primary.enabled.muted.fg
1583
+ },
1584
+ positive: {
1585
+ bg: v0.muted.positive.enabled.bg,
1586
+ fg: v0.muted.positive.enabled.fg,
1587
+ dot: v0.muted.positive.enabled.muted.fg,
1588
+ icon: v0.muted.positive.enabled.muted.fg
1589
+ },
1590
+ caution: {
1591
+ bg: v0.muted.caution.enabled.bg,
1592
+ fg: v0.muted.caution.enabled.fg,
1593
+ dot: v0.muted.caution.enabled.muted.fg,
1594
+ icon: v0.muted.caution.enabled.muted.fg
1595
+ },
1596
+ critical: {
1597
+ bg: v0.muted.critical.enabled.bg,
1598
+ fg: v0.muted.critical.enabled.fg,
1599
+ dot: v0.muted.critical.enabled.muted.fg,
1600
+ icon: v0.muted.critical.enabled.muted.fg
1601
+ }
1602
+ },
1603
+ kbd: {
1604
+ bg: v0.muted.default.enabled.bg,
1605
+ fg: v0.muted.default.enabled.fg,
1606
+ border: v0.muted.default.enabled.border
1607
+ },
1608
+ muted: {
1609
+ ...v0.muted.default.enabled.muted,
1610
+ bg: state.bg2 || state.bg
1611
+ },
1612
+ skeleton: {
1613
+ from: state.skeleton?.from || state.border,
1614
+ to: state.skeleton?.to || state.border
1615
+ }
1616
+ };
1617
+ }
1618
+ function inputStatesThemeColor_v0_v2(states) {
1619
+ return {
1620
+ enabled: inputStateThemeColor_v0_v2(states.enabled),
1621
+ disabled: inputStateThemeColor_v0_v2(states.disabled),
1622
+ readOnly: inputStateThemeColor_v0_v2(states.readOnly),
1623
+ hovered: inputStateThemeColor_v0_v2(states.hovered)
1624
+ };
1625
+ }
1626
+ function inputStateThemeColor_v0_v2(state) {
1627
+ return {
1628
+ bg: state.bg,
1629
+ border: state.border,
1630
+ fg: state.fg,
1631
+ muted: {
1632
+ bg: state.bg2
1633
+ },
1634
+ placeholder: state.placeholder
1635
+ };
1636
+ }
1637
+ const cache$3 = /* @__PURE__ */ new WeakMap();
1638
+ function getTheme_v2(theme) {
1639
+ if (theme.sanity.v2?._resolved) return theme.sanity.v2;
1640
+ const cached_v2 = cache$3.get(theme);
1641
+ if (cached_v2) return cached_v2;
1642
+ const v2 = {
1643
+ _version: 2,
1644
+ _resolved: !0,
1645
+ avatar: {
1646
+ ...defaultThemeConfig.avatar,
1647
+ ...theme.sanity.avatar
1648
+ },
1649
+ button: {
1650
+ ...defaultThemeConfig.button,
1651
+ ...theme.sanity.button
1652
+ },
1653
+ card: defaultThemeConfig.card,
1654
+ color: themeColor_v0_v2(theme.sanity.color),
1655
+ container: theme.sanity.container,
1656
+ font: theme.sanity.fonts,
1657
+ input: {
1658
+ ...defaultThemeConfig.input,
1659
+ ...theme.sanity.input,
1660
+ checkbox: {
1661
+ ...defaultThemeConfig.input.checkbox,
1662
+ ...theme.sanity.input.checkbox
1663
+ },
1664
+ radio: {
1665
+ ...defaultThemeConfig.input.radio,
1666
+ ...theme.sanity.input.radio
1667
+ },
1668
+ switch: {
1669
+ ...defaultThemeConfig.input.switch,
1670
+ ...theme.sanity.input.switch
1671
+ }
1672
+ },
1673
+ layer: theme.sanity.layer ?? defaultThemeConfig.layer,
1674
+ media: theme.sanity.media,
1675
+ radius: theme.sanity.radius,
1676
+ shadow: theme.sanity.shadows,
1677
+ space: theme.sanity.space,
1678
+ style: theme.sanity.styles
1679
+ };
1680
+ return cache$3.set(theme, v2), v2;
1681
+ }
911
1682
  function is_v0(themeProp) {
912
1683
  return themeProp._version === 0;
913
1684
  }
@@ -937,51 +1708,51 @@ function v0_v2(v0) {
937
1708
  } = v0, v2 = {
938
1709
  _version: 2,
939
1710
  avatar: {
940
- ...getTheme_v2.defaultThemeConfig.avatar,
1711
+ ...defaultThemeConfig.avatar,
941
1712
  ...avatar
942
1713
  },
943
1714
  button: {
944
- ...getTheme_v2.defaultThemeConfig.button,
1715
+ ...defaultThemeConfig.button,
945
1716
  ...button
946
1717
  },
947
- card: getTheme_v2.defaultThemeConfig.card,
1718
+ card: defaultThemeConfig.card,
948
1719
  color: {
949
1720
  light: {
950
- transparent: getTheme_v2.themeColor_v0_v2(color2.light.transparent),
951
- default: getTheme_v2.themeColor_v0_v2(color2.light.default),
952
- primary: getTheme_v2.themeColor_v0_v2(color2.light.primary),
953
- positive: getTheme_v2.themeColor_v0_v2(color2.light.positive),
954
- caution: getTheme_v2.themeColor_v0_v2(color2.light.caution),
955
- critical: getTheme_v2.themeColor_v0_v2(color2.light.critical)
1721
+ transparent: themeColor_v0_v2(color2.light.transparent),
1722
+ default: themeColor_v0_v2(color2.light.default),
1723
+ primary: themeColor_v0_v2(color2.light.primary),
1724
+ positive: themeColor_v0_v2(color2.light.positive),
1725
+ caution: themeColor_v0_v2(color2.light.caution),
1726
+ critical: themeColor_v0_v2(color2.light.critical)
956
1727
  },
957
1728
  dark: {
958
- transparent: getTheme_v2.themeColor_v0_v2(color2.dark.transparent),
959
- default: getTheme_v2.themeColor_v0_v2(color2.dark.default),
960
- primary: getTheme_v2.themeColor_v0_v2(color2.dark.primary),
961
- positive: getTheme_v2.themeColor_v0_v2(color2.dark.positive),
962
- caution: getTheme_v2.themeColor_v0_v2(color2.dark.caution),
963
- critical: getTheme_v2.themeColor_v0_v2(color2.dark.critical)
1729
+ transparent: themeColor_v0_v2(color2.dark.transparent),
1730
+ default: themeColor_v0_v2(color2.dark.default),
1731
+ primary: themeColor_v0_v2(color2.dark.primary),
1732
+ positive: themeColor_v0_v2(color2.dark.positive),
1733
+ caution: themeColor_v0_v2(color2.dark.caution),
1734
+ critical: themeColor_v0_v2(color2.dark.critical)
964
1735
  }
965
1736
  },
966
1737
  container,
967
1738
  font,
968
1739
  input: {
969
- ...getTheme_v2.defaultThemeConfig.input,
1740
+ ...defaultThemeConfig.input,
970
1741
  ...input,
971
1742
  checkbox: {
972
- ...getTheme_v2.defaultThemeConfig.input.checkbox,
1743
+ ...defaultThemeConfig.input.checkbox,
973
1744
  ...input.checkbox
974
1745
  },
975
1746
  radio: {
976
- ...getTheme_v2.defaultThemeConfig.input.radio,
1747
+ ...defaultThemeConfig.input.radio,
977
1748
  ...input.radio
978
1749
  },
979
1750
  switch: {
980
- ...getTheme_v2.defaultThemeConfig.input.switch,
1751
+ ...defaultThemeConfig.input.switch,
981
1752
  ...input.switch
982
1753
  }
983
1754
  },
984
- layer: layer ?? getTheme_v2.defaultThemeConfig.layer,
1755
+ layer: layer ?? defaultThemeConfig.layer,
985
1756
  media,
986
1757
  radius,
987
1758
  shadow,
@@ -1097,20 +1868,7 @@ function inputStateThemeColor_v2_v0(t) {
1097
1868
  placeholder: t.placeholder
1098
1869
  };
1099
1870
  }
1100
- const AVATAR_SIZE = [0, 1, 2, 3], CONTAINER = [0, 1, 2, 3, 4, 5], RADIUS = [0, 1, 2, 3, 4, 5, 6, "full"], SPACE = [0, 0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9], FONT_CODE_SIZE = [0, 1, 2, 3, 4, 5], FONT_HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6], FONT_LABEL_SIZE = [0, 1, 2, 3, 4, 5, 6], FONT_TEXT_SIZE = [0, 1, 2, 3, 4, 5], SHADOW = [0, 1, 2, 3, 4, 5], THEME_COLOR_SCHEMES = ["light", "dark"], THEME_COLOR_BLEND_MODES = ["multiply", "screen"], THEME_COLOR_CARD_TONES = [
1101
- "transparent",
1102
- "default",
1103
- "primary",
1104
- "positive",
1105
- "caution",
1106
- "critical"
1107
- ], THEME_COLOR_STATE_TONES = [
1108
- "default",
1109
- "primary",
1110
- "positive",
1111
- "caution",
1112
- "critical"
1113
- ], THEME_COLOR_STATES = ["enabled", "hovered", "pressed", "selected", "disabled"], THEME_COLOR_BUTTON_MODES = ["default", "ghost", "bleed"], THEME_COLOR_INPUT_MODES = ["default", "invalid"], THEME_COLOR_INPUT_STATES = ["enabled", "hovered", "readOnly", "disabled"], THEME_COLOR_AVATAR_COLORS = color.COLOR_HUES;
1871
+ const AVATAR_SIZE = [0, 1, 2, 3], CONTAINER = [0, 1, 2, 3, 4, 5], RADIUS = [0, 1, 2, 3, 4, 5, 6, "full"], SPACE = [0, 0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9], FONT_CODE_SIZE = [0, 1, 2, 3, 4, 5], FONT_HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6], FONT_LABEL_SIZE = [0, 1, 2, 3, 4, 5, 6], FONT_TEXT_SIZE = [0, 1, 2, 3, 4, 5], SHADOW = [0, 1, 2, 3, 4, 5], THEME_COLOR_SCHEMES = ["light", "dark"], THEME_COLOR_BLEND_MODES = ["multiply", "screen"], THEME_COLOR_CARD_TONES = ["transparent", "default", "primary", "positive", "caution", "critical"], THEME_COLOR_STATE_TONES = ["default", "primary", "positive", "caution", "critical"], THEME_COLOR_STATES = ["enabled", "hovered", "pressed", "selected", "disabled"], THEME_COLOR_BUTTON_MODES = ["default", "ghost", "bleed"], THEME_COLOR_INPUT_MODES = ["default", "invalid"], THEME_COLOR_INPUT_STATES = ["enabled", "hovered", "readOnly", "disabled"], THEME_COLOR_AVATAR_COLORS = color.COLOR_HUES;
1114
1872
  function isColorBlendModeValue(str) {
1115
1873
  return THEME_COLOR_BLEND_MODES.includes(str);
1116
1874
  }
@@ -1123,33 +1881,7 @@ function isColorTintKey(str) {
1123
1881
  function isColorButtonMode(str) {
1124
1882
  return THEME_COLOR_BUTTON_MODES.includes(str);
1125
1883
  }
1126
- const COLOR_CONFIG_STATE_KEYS = [
1127
- "_hue",
1128
- "bg",
1129
- "fg",
1130
- "border",
1131
- "focusRing",
1132
- "muted/fg",
1133
- "accent/fg",
1134
- "link/fg",
1135
- "code/bg",
1136
- "code/fg",
1137
- "skeleton/from",
1138
- "skeleton/to",
1139
- "status/dot",
1140
- "status/icon"
1141
- ], COLOR_CONFIG_CARD_KEYS = [
1142
- ...COLOR_CONFIG_STATE_KEYS,
1143
- "_hue",
1144
- "bg",
1145
- "fg",
1146
- "border",
1147
- "focusRing",
1148
- "shadow/outline",
1149
- "shadow/umbra",
1150
- "shadow/penumbra",
1151
- "shadow/ambient"
1152
- ], COLOR_CONFIG_BLEND_KEYS = ["_blend"], COLOR_CONFIG_AVATAR_COLORS = ["*", ...THEME_COLOR_AVATAR_COLORS], COLOR_CONFIG_CARD_TONES = ["*", ...THEME_COLOR_CARD_TONES], COLOR_CONFIG_STATE_TONES = ["*", ...THEME_COLOR_STATE_TONES], COLOR_CONFIG_STATES = ["*", ...THEME_COLOR_STATES], COLOR_CONFIG_INPUT_MODES = ["*", ...THEME_COLOR_INPUT_MODES], COLOR_CONFIG_INPUT_STATES = ["*", ...THEME_COLOR_INPUT_STATES];
1884
+ const COLOR_CONFIG_STATE_KEYS = ["_hue", "bg", "fg", "border", "focusRing", "muted/fg", "accent/fg", "link/fg", "code/bg", "code/fg", "skeleton/from", "skeleton/to", "status/dot", "status/icon"], COLOR_CONFIG_CARD_KEYS = [...COLOR_CONFIG_STATE_KEYS, "_hue", "bg", "fg", "border", "focusRing", "shadow/outline", "shadow/umbra", "shadow/penumbra", "shadow/ambient"], COLOR_CONFIG_BLEND_KEYS = ["_blend"], COLOR_CONFIG_AVATAR_COLORS = ["*", ...THEME_COLOR_AVATAR_COLORS], COLOR_CONFIG_CARD_TONES = ["*", ...THEME_COLOR_CARD_TONES], COLOR_CONFIG_STATE_TONES = ["*", ...THEME_COLOR_STATE_TONES], COLOR_CONFIG_STATES = ["*", ...THEME_COLOR_STATES], COLOR_CONFIG_INPUT_MODES = ["*", ...THEME_COLOR_INPUT_MODES], COLOR_CONFIG_INPUT_STATES = ["*", ...THEME_COLOR_INPUT_STATES];
1153
1885
  function parseTokenKey(str) {
1154
1886
  const segments = str.split("/"), segment0 = segments.shift() || "";
1155
1887
  if (isColorConfigBaseTone(segment0)) {
@@ -1315,10 +2047,16 @@ function compileColorTokenValue(node) {
1315
2047
  }
1316
2048
  const DEFAULT_COLOR_TOKEN_VALUE = ["500", "500"];
1317
2049
  function resolveColorTokenValue(context, value = DEFAULT_COLOR_TOKEN_VALUE) {
1318
- const { hue, scheme } = context, node = parseTokenValue(value[scheme === "light" ? 0 : 1]);
2050
+ const {
2051
+ hue,
2052
+ scheme
2053
+ } = context, node = parseTokenValue(value[scheme === "light" ? 0 : 1]);
1319
2054
  if (!node || node.type !== "color")
1320
2055
  throw new Error(`Invalid color token: ${value[0]}`);
1321
- return compileColorTokenValue({ ...node, hue: node.hue || hue });
2056
+ return compileColorTokenValue({
2057
+ ...node,
2058
+ hue: node.hue || hue
2059
+ });
1322
2060
  }
1323
2061
  const defaultColorTokens = {
1324
2062
  base: {
@@ -1393,16 +2131,24 @@ const defaultColorTokens = {
1393
2131
  fg: ["600", "400"]
1394
2132
  }
1395
2133
  },
1396
- primary: { _hue: "blue" },
2134
+ primary: {
2135
+ _hue: "blue"
2136
+ },
1397
2137
  positive: {
1398
2138
  _hue: "green",
1399
- shadow: { outline: ["500/0.4", "500/0.4"] }
2139
+ shadow: {
2140
+ outline: ["500/0.4", "500/0.4"]
2141
+ }
1400
2142
  },
1401
2143
  caution: {
1402
2144
  _hue: "yellow",
1403
- shadow: { outline: ["600/0.3", "500/0.4"] }
2145
+ shadow: {
2146
+ outline: ["600/0.3", "500/0.4"]
2147
+ }
1404
2148
  },
1405
- critical: { _hue: "red" }
2149
+ critical: {
2150
+ _hue: "red"
2151
+ }
1406
2152
  },
1407
2153
  button: {
1408
2154
  default: {
@@ -2000,15 +2746,33 @@ function resolveBaseColorTones(inputTokens, tone) {
2000
2746
  ...spec,
2001
2747
  _hue: hue,
2002
2748
  avatar: {
2003
- gray: merge({ _hue: "gray" }, spec.avatar?.["*"], spec.avatar?.gray),
2004
- blue: merge({ _hue: "blue" }, spec.avatar?.["*"], spec.avatar?.blue),
2005
- purple: merge({ _hue: "purple" }, spec.avatar?.["*"], spec.avatar?.purple),
2006
- magenta: merge({ _hue: "magenta" }, spec.avatar?.["*"], spec.avatar?.magenta),
2007
- red: merge({ _hue: "red" }, spec.avatar?.["*"], spec.avatar?.red),
2008
- orange: merge({ _hue: "orange" }, spec.avatar?.["*"], spec.avatar?.orange),
2009
- yellow: merge({ _hue: "yellow" }, spec.avatar?.["*"], spec.avatar?.yellow),
2010
- green: merge({ _hue: "green" }, spec.avatar?.["*"], spec.avatar?.green),
2011
- cyan: merge({ _hue: "cyan" }, spec.avatar?.["*"], spec.avatar?.cyan)
2749
+ gray: merge({
2750
+ _hue: "gray"
2751
+ }, spec.avatar?.["*"], spec.avatar?.gray),
2752
+ blue: merge({
2753
+ _hue: "blue"
2754
+ }, spec.avatar?.["*"], spec.avatar?.blue),
2755
+ purple: merge({
2756
+ _hue: "purple"
2757
+ }, spec.avatar?.["*"], spec.avatar?.purple),
2758
+ magenta: merge({
2759
+ _hue: "magenta"
2760
+ }, spec.avatar?.["*"], spec.avatar?.magenta),
2761
+ red: merge({
2762
+ _hue: "red"
2763
+ }, spec.avatar?.["*"], spec.avatar?.red),
2764
+ orange: merge({
2765
+ _hue: "orange"
2766
+ }, spec.avatar?.["*"], spec.avatar?.orange),
2767
+ yellow: merge({
2768
+ _hue: "yellow"
2769
+ }, spec.avatar?.["*"], spec.avatar?.yellow),
2770
+ green: merge({
2771
+ _hue: "green"
2772
+ }, spec.avatar?.["*"], spec.avatar?.green),
2773
+ cyan: merge({
2774
+ _hue: "cyan"
2775
+ }, spec.avatar?.["*"], spec.avatar?.cyan)
2012
2776
  },
2013
2777
  badge: {
2014
2778
  default: {
@@ -2058,25 +2822,38 @@ function resolveButtonModeColorTokens(inputTokens, mode, tone) {
2058
2822
  return tokens;
2059
2823
  }
2060
2824
  function resolveButtonStateColorTokens(inputTokens, tone, mode, state) {
2061
- const spec = merge(
2062
- inputTokens?.button?.[mode]?.["*"]?.["*"],
2063
- inputTokens?.button?.[mode]?.[tone]?.["*"],
2064
- inputTokens?.button?.[mode]?.["*"]?.[state],
2065
- inputTokens?.button?.[mode]?.[tone]?.[state]
2066
- ), hue = spec._hue || inputTokens?.base?.[tone]?._hue;
2825
+ const spec = merge(inputTokens?.button?.[mode]?.["*"]?.["*"], inputTokens?.button?.[mode]?.[tone]?.["*"], inputTokens?.button?.[mode]?.["*"]?.[state], inputTokens?.button?.[mode]?.[tone]?.[state]), hue = spec._hue || inputTokens?.base?.[tone]?._hue;
2067
2826
  return {
2068
2827
  ...spec,
2069
2828
  _hue: hue,
2070
2829
  avatar: {
2071
- gray: merge({ _hue: "gray" }, spec.avatar?.["*"], spec.avatar?.gray),
2072
- blue: merge({ _hue: "blue" }, spec.avatar?.["*"], spec.avatar?.blue),
2073
- purple: merge({ _hue: "purple" }, spec.avatar?.["*"], spec.avatar?.purple),
2074
- magenta: merge({ _hue: "magenta" }, spec.avatar?.["*"], spec.avatar?.magenta),
2075
- red: merge({ _hue: "red" }, spec.avatar?.["*"], spec.avatar?.red),
2076
- orange: merge({ _hue: "orange" }, spec.avatar?.["*"], spec.avatar?.orange),
2077
- yellow: merge({ _hue: "yellow" }, spec.avatar?.["*"], spec.avatar?.yellow),
2078
- green: merge({ _hue: "green" }, spec.avatar?.["*"], spec.avatar?.green),
2079
- cyan: merge({ _hue: "cyan" }, spec.avatar?.["*"], spec.avatar?.cyan)
2830
+ gray: merge({
2831
+ _hue: "gray"
2832
+ }, spec.avatar?.["*"], spec.avatar?.gray),
2833
+ blue: merge({
2834
+ _hue: "blue"
2835
+ }, spec.avatar?.["*"], spec.avatar?.blue),
2836
+ purple: merge({
2837
+ _hue: "purple"
2838
+ }, spec.avatar?.["*"], spec.avatar?.purple),
2839
+ magenta: merge({
2840
+ _hue: "magenta"
2841
+ }, spec.avatar?.["*"], spec.avatar?.magenta),
2842
+ red: merge({
2843
+ _hue: "red"
2844
+ }, spec.avatar?.["*"], spec.avatar?.red),
2845
+ orange: merge({
2846
+ _hue: "orange"
2847
+ }, spec.avatar?.["*"], spec.avatar?.orange),
2848
+ yellow: merge({
2849
+ _hue: "yellow"
2850
+ }, spec.avatar?.["*"], spec.avatar?.yellow),
2851
+ green: merge({
2852
+ _hue: "green"
2853
+ }, spec.avatar?.["*"], spec.avatar?.green),
2854
+ cyan: merge({
2855
+ _hue: "cyan"
2856
+ }, spec.avatar?.["*"], spec.avatar?.cyan)
2080
2857
  },
2081
2858
  badge: {
2082
2859
  default: {
@@ -2120,13 +2897,11 @@ function resolveInputModeColorTokens(inputTokens, mode) {
2120
2897
  return states;
2121
2898
  }
2122
2899
  function resolveInputStateColorTokens(inputTokens, mode, state) {
2123
- const spec = merge(
2124
- inputTokens?.input?.["*"]?.["*"],
2125
- inputTokens?.input?.[mode]?.["*"],
2126
- inputTokens?.input?.["*"]?.[state],
2127
- inputTokens?.input?.[mode]?.[state]
2128
- ), hue = spec._hue || inputTokens?.input?.[mode]?._hue;
2129
- return { ...spec, _hue: hue };
2900
+ const spec = merge(inputTokens?.input?.["*"]?.["*"], inputTokens?.input?.[mode]?.["*"], inputTokens?.input?.["*"]?.[state], inputTokens?.input?.[mode]?.[state]), hue = spec._hue || inputTokens?.input?.[mode]?._hue;
2901
+ return {
2902
+ ...spec,
2903
+ _hue: hue
2904
+ };
2130
2905
  }
2131
2906
  function resolveSelectableColorTokens(inputTokens) {
2132
2907
  const tokens = {};
@@ -2143,25 +2918,38 @@ function resolveSelectableToneColorTokens(inputTokens, tone) {
2143
2918
  return states;
2144
2919
  }
2145
2920
  function resolveSelectableStateColorTokens(inputTokens, tone, state) {
2146
- const spec = merge(
2147
- inputTokens?.selectable?.["*"]?.["*"],
2148
- inputTokens?.selectable?.[tone]?.["*"],
2149
- inputTokens?.selectable?.["*"]?.[state],
2150
- inputTokens?.selectable?.[tone]?.[state]
2151
- ), hue = spec._hue || inputTokens?.base?.[tone]?._hue;
2921
+ const spec = merge(inputTokens?.selectable?.["*"]?.["*"], inputTokens?.selectable?.[tone]?.["*"], inputTokens?.selectable?.["*"]?.[state], inputTokens?.selectable?.[tone]?.[state]), hue = spec._hue || inputTokens?.base?.[tone]?._hue;
2152
2922
  return {
2153
2923
  ...spec,
2154
2924
  _hue: hue,
2155
2925
  avatar: {
2156
- gray: merge({ _hue: "gray" }, spec.avatar?.["*"], spec.avatar?.gray),
2157
- blue: merge({ _hue: "blue" }, spec.avatar?.["*"], spec.avatar?.blue),
2158
- purple: merge({ _hue: "purple" }, spec.avatar?.["*"], spec.avatar?.purple),
2159
- magenta: merge({ _hue: "magenta" }, spec.avatar?.["*"], spec.avatar?.magenta),
2160
- red: merge({ _hue: "red" }, spec.avatar?.["*"], spec.avatar?.red),
2161
- orange: merge({ _hue: "orange" }, spec.avatar?.["*"], spec.avatar?.orange),
2162
- yellow: merge({ _hue: "yellow" }, spec.avatar?.["*"], spec.avatar?.yellow),
2163
- green: merge({ _hue: "green" }, spec.avatar?.["*"], spec.avatar?.green),
2164
- cyan: merge({ _hue: "cyan" }, spec.avatar?.["*"], spec.avatar?.cyan)
2926
+ gray: merge({
2927
+ _hue: "gray"
2928
+ }, spec.avatar?.["*"], spec.avatar?.gray),
2929
+ blue: merge({
2930
+ _hue: "blue"
2931
+ }, spec.avatar?.["*"], spec.avatar?.blue),
2932
+ purple: merge({
2933
+ _hue: "purple"
2934
+ }, spec.avatar?.["*"], spec.avatar?.purple),
2935
+ magenta: merge({
2936
+ _hue: "magenta"
2937
+ }, spec.avatar?.["*"], spec.avatar?.magenta),
2938
+ red: merge({
2939
+ _hue: "red"
2940
+ }, spec.avatar?.["*"], spec.avatar?.red),
2941
+ orange: merge({
2942
+ _hue: "orange"
2943
+ }, spec.avatar?.["*"], spec.avatar?.orange),
2944
+ yellow: merge({
2945
+ _hue: "yellow"
2946
+ }, spec.avatar?.["*"], spec.avatar?.yellow),
2947
+ green: merge({
2948
+ _hue: "green"
2949
+ }, spec.avatar?.["*"], spec.avatar?.green),
2950
+ cyan: merge({
2951
+ _hue: "cyan"
2952
+ }, spec.avatar?.["*"], spec.avatar?.cyan)
2165
2953
  },
2166
2954
  badge: {
2167
2955
  default: {
@@ -2198,35 +2986,71 @@ function buildColorTheme(config) {
2198
2986
  color: resolveColorTokens(config?.color)
2199
2987
  };
2200
2988
  return {
2201
- light: buildColorScheme({ scheme: "light" }, resolvedConfig),
2202
- dark: buildColorScheme({ scheme: "dark" }, resolvedConfig)
2989
+ light: buildColorScheme({
2990
+ scheme: "light"
2991
+ }, resolvedConfig),
2992
+ dark: buildColorScheme({
2993
+ scheme: "dark"
2994
+ }, resolvedConfig)
2203
2995
  };
2204
2996
  }
2205
2997
  function buildColorScheme(options, config) {
2206
- const { scheme } = options;
2998
+ const {
2999
+ scheme
3000
+ } = options;
2207
3001
  return {
2208
- transparent: buildCardColorTheme({ scheme, tone: "transparent" }, config),
2209
- default: buildCardColorTheme({ scheme, tone: "default" }, config),
2210
- primary: buildCardColorTheme({ scheme, tone: "primary" }, config),
2211
- positive: buildCardColorTheme({ scheme, tone: "positive" }, config),
2212
- caution: buildCardColorTheme({ scheme, tone: "caution" }, config),
2213
- critical: buildCardColorTheme({ scheme, tone: "critical" }, config)
3002
+ transparent: buildCardColorTheme({
3003
+ scheme,
3004
+ tone: "transparent"
3005
+ }, config),
3006
+ default: buildCardColorTheme({
3007
+ scheme,
3008
+ tone: "default"
3009
+ }, config),
3010
+ primary: buildCardColorTheme({
3011
+ scheme,
3012
+ tone: "primary"
3013
+ }, config),
3014
+ positive: buildCardColorTheme({
3015
+ scheme,
3016
+ tone: "positive"
3017
+ }, config),
3018
+ caution: buildCardColorTheme({
3019
+ scheme,
3020
+ tone: "caution"
3021
+ }, config),
3022
+ critical: buildCardColorTheme({
3023
+ scheme,
3024
+ tone: "critical"
3025
+ }, config)
2214
3026
  };
2215
3027
  }
2216
3028
  function buildCardColorTheme(options, config) {
2217
- const { scheme, tone } = options, tokens = config?.color?.base?.[tone], context = { hue: tokens?._hue || "gray", scheme };
3029
+ const {
3030
+ scheme,
3031
+ tone
3032
+ } = options, tokens = config?.color?.base?.[tone], context = {
3033
+ hue: tokens?._hue || "gray",
3034
+ scheme
3035
+ };
2218
3036
  return {
2219
3037
  _blend: (tokens?._blend || ["multiply", "screen"])[scheme === "light" ? 0 : 1],
2220
3038
  _dark: scheme === "dark",
2221
3039
  accent: {
2222
3040
  fg: resolveColorTokenValue(context, tokens?.accent?.fg)
2223
3041
  },
2224
- avatar: buildAvatarColorTheme({ scheme }, tokens),
3042
+ avatar: buildAvatarColorTheme({
3043
+ scheme
3044
+ }, tokens),
2225
3045
  backdrop: resolveColorTokenValue(context, tokens?.backdrop),
2226
- badge: buildBadgeColorTheme(tokens?.badge, { scheme }, config),
3046
+ badge: buildBadgeColorTheme(tokens?.badge, {
3047
+ scheme
3048
+ }, config),
2227
3049
  bg: resolveColorTokenValue(context, tokens?.bg),
2228
3050
  border: resolveColorTokenValue(context, tokens?.border),
2229
- button: buildButtonColorTheme({ scheme }, config),
3051
+ button: buildButtonColorTheme({
3052
+ scheme
3053
+ }, config),
2230
3054
  code: {
2231
3055
  bg: resolveColorTokenValue(context, tokens?.code?.bg),
2232
3056
  fg: resolveColorTokenValue(context, tokens?.code?.fg)
@@ -2234,7 +3058,10 @@ function buildCardColorTheme(options, config) {
2234
3058
  fg: resolveColorTokenValue(context, tokens?.fg),
2235
3059
  focusRing: resolveColorTokenValue(context, tokens?.focusRing),
2236
3060
  icon: resolveColorTokenValue(context, tokens?.icon),
2237
- input: buildInputColorTheme({ scheme, tone }, config),
3061
+ input: buildInputColorTheme({
3062
+ scheme,
3063
+ tone
3064
+ }, config),
2238
3065
  kbd: {
2239
3066
  bg: resolveColorTokenValue(context, tokens?.kbd?.bg),
2240
3067
  fg: resolveColorTokenValue(context, tokens?.kbd?.fg),
@@ -2247,17 +3074,30 @@ function buildCardColorTheme(options, config) {
2247
3074
  bg: resolveColorTokenValue(context, tokens?.muted?.bg),
2248
3075
  fg: resolveColorTokenValue(context, tokens?.muted?.fg)
2249
3076
  },
2250
- selectable: buildSelectableColorTheme({ scheme }, config),
2251
- shadow: buildShadowColorTheme({ scheme, tone }, config),
3077
+ selectable: buildSelectableColorTheme({
3078
+ scheme
3079
+ }, config),
3080
+ shadow: buildShadowColorTheme({
3081
+ scheme,
3082
+ tone
3083
+ }, config),
2252
3084
  skeleton: {
2253
3085
  from: resolveColorTokenValue(context, tokens?.skeleton?.from),
2254
3086
  to: resolveColorTokenValue(context, tokens?.skeleton?.to)
2255
3087
  },
2256
- syntax: buildSyntaxColorTheme({ scheme }, config)
3088
+ syntax: buildSyntaxColorTheme({
3089
+ scheme
3090
+ }, config)
2257
3091
  };
2258
3092
  }
2259
3093
  function buildShadowColorTheme(options, config) {
2260
- const { scheme, tone } = options, tokens = config?.color?.base?.[tone], context = { hue: tokens?._hue || "gray", scheme };
3094
+ const {
3095
+ scheme,
3096
+ tone
3097
+ } = options, tokens = config?.color?.base?.[tone], context = {
3098
+ hue: tokens?._hue || "gray",
3099
+ scheme
3100
+ };
2261
3101
  return {
2262
3102
  outline: resolveColorTokenValue(context, tokens?.shadow?.outline),
2263
3103
  umbra: resolveColorTokenValue(context, tokens?.shadow?.umbra),
@@ -2266,21 +3106,56 @@ function buildShadowColorTheme(options, config) {
2266
3106
  };
2267
3107
  }
2268
3108
  function buildAvatarColorTheme(options, stateTokens) {
2269
- const { scheme } = options;
3109
+ const {
3110
+ scheme
3111
+ } = options;
2270
3112
  return {
2271
- gray: _buildAvatarColorTheme({ color: "gray", scheme }, stateTokens),
2272
- blue: _buildAvatarColorTheme({ color: "blue", scheme }, stateTokens),
2273
- purple: _buildAvatarColorTheme({ color: "purple", scheme }, stateTokens),
2274
- magenta: _buildAvatarColorTheme({ color: "magenta", scheme }, stateTokens),
2275
- red: _buildAvatarColorTheme({ color: "red", scheme }, stateTokens),
2276
- orange: _buildAvatarColorTheme({ color: "orange", scheme }, stateTokens),
2277
- yellow: _buildAvatarColorTheme({ color: "yellow", scheme }, stateTokens),
2278
- green: _buildAvatarColorTheme({ color: "green", scheme }, stateTokens),
2279
- cyan: _buildAvatarColorTheme({ color: "cyan", scheme }, stateTokens)
3113
+ gray: _buildAvatarColorTheme({
3114
+ color: "gray",
3115
+ scheme
3116
+ }, stateTokens),
3117
+ blue: _buildAvatarColorTheme({
3118
+ color: "blue",
3119
+ scheme
3120
+ }, stateTokens),
3121
+ purple: _buildAvatarColorTheme({
3122
+ color: "purple",
3123
+ scheme
3124
+ }, stateTokens),
3125
+ magenta: _buildAvatarColorTheme({
3126
+ color: "magenta",
3127
+ scheme
3128
+ }, stateTokens),
3129
+ red: _buildAvatarColorTheme({
3130
+ color: "red",
3131
+ scheme
3132
+ }, stateTokens),
3133
+ orange: _buildAvatarColorTheme({
3134
+ color: "orange",
3135
+ scheme
3136
+ }, stateTokens),
3137
+ yellow: _buildAvatarColorTheme({
3138
+ color: "yellow",
3139
+ scheme
3140
+ }, stateTokens),
3141
+ green: _buildAvatarColorTheme({
3142
+ color: "green",
3143
+ scheme
3144
+ }, stateTokens),
3145
+ cyan: _buildAvatarColorTheme({
3146
+ color: "cyan",
3147
+ scheme
3148
+ }, stateTokens)
2280
3149
  };
2281
3150
  }
2282
3151
  function _buildAvatarColorTheme(options, stateTokens) {
2283
- const { color: color2, scheme } = options, tokens = stateTokens?.avatar?.[color2], context = { hue: tokens?._hue || "gray", scheme };
3152
+ const {
3153
+ color: color2,
3154
+ scheme
3155
+ } = options, tokens = stateTokens?.avatar?.[color2], context = {
3156
+ hue: tokens?._hue || "gray",
3157
+ scheme
3158
+ };
2284
3159
  return {
2285
3160
  _blend: (tokens?._blend || ["screen", "multiply"])[scheme === "light" ? 0 : 1],
2286
3161
  bg: resolveColorTokenValue(context, tokens?.bg),
@@ -2288,17 +3163,40 @@ function _buildAvatarColorTheme(options, stateTokens) {
2288
3163
  };
2289
3164
  }
2290
3165
  function buildBadgeColorTheme(tokens, options, config) {
2291
- const { scheme } = options;
3166
+ const {
3167
+ scheme
3168
+ } = options;
2292
3169
  return {
2293
- default: _buildBadgeColorTheme(tokens, { scheme, tone: "default" }, config),
2294
- primary: _buildBadgeColorTheme(tokens, { scheme, tone: "primary" }, config),
2295
- positive: _buildBadgeColorTheme(tokens, { scheme, tone: "positive" }, config),
2296
- caution: _buildBadgeColorTheme(tokens, { scheme, tone: "caution" }, config),
2297
- critical: _buildBadgeColorTheme(tokens, { scheme, tone: "critical" }, config)
3170
+ default: _buildBadgeColorTheme(tokens, {
3171
+ scheme,
3172
+ tone: "default"
3173
+ }, config),
3174
+ primary: _buildBadgeColorTheme(tokens, {
3175
+ scheme,
3176
+ tone: "primary"
3177
+ }, config),
3178
+ positive: _buildBadgeColorTheme(tokens, {
3179
+ scheme,
3180
+ tone: "positive"
3181
+ }, config),
3182
+ caution: _buildBadgeColorTheme(tokens, {
3183
+ scheme,
3184
+ tone: "caution"
3185
+ }, config),
3186
+ critical: _buildBadgeColorTheme(tokens, {
3187
+ scheme,
3188
+ tone: "critical"
3189
+ }, config)
2298
3190
  };
2299
3191
  }
2300
3192
  function _buildBadgeColorTheme(parentTokens, options, config) {
2301
- const { scheme, tone } = options, tokens = parentTokens?.[tone], context = { hue: tokens?._hue || config?.color?.base?.[tone]?._hue || "gray", scheme };
3193
+ const {
3194
+ scheme,
3195
+ tone
3196
+ } = options, tokens = parentTokens?.[tone], context = {
3197
+ hue: tokens?._hue || config?.color?.base?.[tone]?._hue || "gray",
3198
+ scheme
3199
+ };
2302
3200
  return {
2303
3201
  bg: resolveColorTokenValue(context, tokens?.bg),
2304
3202
  fg: resolveColorTokenValue(context, tokens?.fg),
@@ -2307,32 +3205,65 @@ function _buildBadgeColorTheme(parentTokens, options, config) {
2307
3205
  };
2308
3206
  }
2309
3207
  function buildButtonColorTheme(options, config) {
2310
- const { scheme } = options, modes = {};
3208
+ const {
3209
+ scheme
3210
+ } = options, modes = {};
2311
3211
  for (const mode of THEME_COLOR_BUTTON_MODES)
2312
- modes[mode] = buildButtonTonesColorTheme({ scheme, mode }, config);
3212
+ modes[mode] = buildButtonTonesColorTheme({
3213
+ scheme,
3214
+ mode
3215
+ }, config);
2313
3216
  return modes;
2314
3217
  }
2315
3218
  function buildButtonTonesColorTheme(options, config) {
2316
- const { mode, scheme } = options, tones2 = {};
3219
+ const {
3220
+ mode,
3221
+ scheme
3222
+ } = options, tones2 = {};
2317
3223
  for (const tone of THEME_COLOR_STATE_TONES)
2318
- tones2[tone] = buildButtonStatesColorTheme({ mode, scheme, tone }, config);
3224
+ tones2[tone] = buildButtonStatesColorTheme({
3225
+ mode,
3226
+ scheme,
3227
+ tone
3228
+ }, config);
2319
3229
  return tones2;
2320
3230
  }
2321
3231
  function buildButtonStatesColorTheme(options, config) {
2322
- const { mode, scheme, tone } = options, states = {};
3232
+ const {
3233
+ mode,
3234
+ scheme,
3235
+ tone
3236
+ } = options, states = {};
2323
3237
  for (const state of THEME_COLOR_STATES)
2324
- states[state] = buildButtonStateColorTheme({ mode, tone, scheme, state }, config);
3238
+ states[state] = buildButtonStateColorTheme({
3239
+ mode,
3240
+ tone,
3241
+ scheme,
3242
+ state
3243
+ }, config);
2325
3244
  return states;
2326
3245
  }
2327
3246
  function buildButtonStateColorTheme(options, config) {
2328
- const { mode, tone, scheme, state } = options, tokens = config?.color?.button?.[mode]?.[tone]?.[state], hue = tokens?._hue || "gray", blendMode = tokens?._blend || ["screen", "multiply"], context = { hue, scheme };
3247
+ const {
3248
+ mode,
3249
+ tone,
3250
+ scheme,
3251
+ state
3252
+ } = options, tokens = config?.color?.button?.[mode]?.[tone]?.[state], hue = tokens?._hue || "gray", blendMode = tokens?._blend || ["screen", "multiply"], context = {
3253
+ hue,
3254
+ scheme
3255
+ };
2329
3256
  return {
2330
3257
  _blend: blendMode[scheme === "light" ? 0 : 1],
2331
3258
  accent: {
2332
3259
  fg: resolveColorTokenValue(context, tokens?.accent?.fg)
2333
3260
  },
2334
- avatar: buildAvatarColorTheme({ scheme }, tokens),
2335
- badge: buildBadgeColorTheme(tokens?.badge, { scheme }, config),
3261
+ avatar: buildAvatarColorTheme({
3262
+ scheme
3263
+ }, tokens),
3264
+ badge: buildBadgeColorTheme(tokens?.badge, {
3265
+ scheme
3266
+ }, config),
2336
3267
  bg: resolveColorTokenValue(context, tokens?.bg),
2337
3268
  border: resolveColorTokenValue(context, tokens?.border),
2338
3269
  code: {
@@ -2360,23 +3291,66 @@ function buildButtonStateColorTheme(options, config) {
2360
3291
  };
2361
3292
  }
2362
3293
  function buildInputColorTheme(options, config) {
2363
- const { scheme, tone } = options;
3294
+ const {
3295
+ scheme,
3296
+ tone
3297
+ } = options;
2364
3298
  return {
2365
- default: buildInputStatesColorTheme({ mode: "default", scheme, tone }, config),
2366
- invalid: buildInputStatesColorTheme({ mode: "invalid", scheme, tone }, config)
3299
+ default: buildInputStatesColorTheme({
3300
+ mode: "default",
3301
+ scheme,
3302
+ tone
3303
+ }, config),
3304
+ invalid: buildInputStatesColorTheme({
3305
+ mode: "invalid",
3306
+ scheme,
3307
+ tone
3308
+ }, config)
2367
3309
  };
2368
3310
  }
2369
3311
  function buildInputStatesColorTheme(options, config) {
2370
- const { mode, scheme, tone } = options;
3312
+ const {
3313
+ mode,
3314
+ scheme,
3315
+ tone
3316
+ } = options;
2371
3317
  return {
2372
- enabled: buildInputStateColorTheme({ mode, scheme, state: "enabled", tone }, config),
2373
- hovered: buildInputStateColorTheme({ mode, scheme, state: "hovered", tone }, config),
2374
- readOnly: buildInputStateColorTheme({ mode, scheme, state: "readOnly", tone }, config),
2375
- disabled: buildInputStateColorTheme({ mode, scheme, state: "disabled", tone }, config)
3318
+ enabled: buildInputStateColorTheme({
3319
+ mode,
3320
+ scheme,
3321
+ state: "enabled",
3322
+ tone
3323
+ }, config),
3324
+ hovered: buildInputStateColorTheme({
3325
+ mode,
3326
+ scheme,
3327
+ state: "hovered",
3328
+ tone
3329
+ }, config),
3330
+ readOnly: buildInputStateColorTheme({
3331
+ mode,
3332
+ scheme,
3333
+ state: "readOnly",
3334
+ tone
3335
+ }, config),
3336
+ disabled: buildInputStateColorTheme({
3337
+ mode,
3338
+ scheme,
3339
+ state: "disabled",
3340
+ tone
3341
+ }, config)
2376
3342
  };
2377
3343
  }
2378
3344
  function buildInputStateColorTheme(options, config) {
2379
- const { mode, tone, scheme, state } = options, tokens = config?.color?.input?.[mode]?.[state], hue = tokens?._hue || config?.color?.base?.[tone]?._hue || "gray", blendMode = tokens?._blend || ["screen", "multiply"], context = { hue, scheme };
3345
+ const {
3346
+ mode,
3347
+ tone,
3348
+ scheme,
3349
+ state
3350
+ } = options, tokens = config?.color?.input?.[mode]?.[state], hue = tokens?._hue || config?.color?.base?.[tone]?._hue || "gray", blendMode = tokens?._blend || ["screen", "multiply"], context = {
3351
+ hue,
3352
+ scheme
3353
+ };
2380
3354
  return {
2381
3355
  _blend: blendMode[scheme === "light" ? 0 : 1],
2382
3356
  bg: resolveColorTokenValue(context, tokens?.bg),
@@ -2389,26 +3363,49 @@ function buildInputStateColorTheme(options, config) {
2389
3363
  };
2390
3364
  }
2391
3365
  function buildSelectableColorTheme(options, config) {
2392
- const { scheme } = options, tones2 = {};
3366
+ const {
3367
+ scheme
3368
+ } = options, tones2 = {};
2393
3369
  for (const tone of THEME_COLOR_STATE_TONES)
2394
- tones2[tone] = buildSelectableStatesColorTheme({ scheme, tone }, config);
3370
+ tones2[tone] = buildSelectableStatesColorTheme({
3371
+ scheme,
3372
+ tone
3373
+ }, config);
2395
3374
  return tones2;
2396
3375
  }
2397
3376
  function buildSelectableStatesColorTheme(options, config) {
2398
- const { scheme, tone } = options, states = {};
3377
+ const {
3378
+ scheme,
3379
+ tone
3380
+ } = options, states = {};
2399
3381
  for (const state of THEME_COLOR_STATES)
2400
- states[state] = buildSelectableStateColorTheme({ tone, scheme, state }, config);
3382
+ states[state] = buildSelectableStateColorTheme({
3383
+ tone,
3384
+ scheme,
3385
+ state
3386
+ }, config);
2401
3387
  return states;
2402
3388
  }
2403
3389
  function buildSelectableStateColorTheme(options, config) {
2404
- const { scheme, state, tone } = options, tokens = config?.color?.selectable?.[tone]?.[state], hue = tokens?._hue || "gray", blendMode = tokens?._blend || ["screen", "multiply"], context = { hue, scheme };
3390
+ const {
3391
+ scheme,
3392
+ state,
3393
+ tone
3394
+ } = options, tokens = config?.color?.selectable?.[tone]?.[state], hue = tokens?._hue || "gray", blendMode = tokens?._blend || ["screen", "multiply"], context = {
3395
+ hue,
3396
+ scheme
3397
+ };
2405
3398
  return {
2406
3399
  _blend: blendMode[scheme === "light" ? 0 : 1],
2407
3400
  accent: {
2408
3401
  fg: resolveColorTokenValue(context, tokens?.accent?.fg)
2409
3402
  },
2410
- avatar: buildAvatarColorTheme({ scheme }, tokens),
2411
- badge: buildBadgeColorTheme(tokens?.badge, { scheme }, config),
3403
+ avatar: buildAvatarColorTheme({
3404
+ scheme
3405
+ }, tokens),
3406
+ badge: buildBadgeColorTheme(tokens?.badge, {
3407
+ scheme
3408
+ }, config),
2412
3409
  bg: resolveColorTokenValue(context, tokens?.bg),
2413
3410
  border: resolveColorTokenValue(context, tokens?.border),
2414
3411
  code: {
@@ -2436,7 +3433,12 @@ function buildSelectableStateColorTheme(options, config) {
2436
3433
  };
2437
3434
  }
2438
3435
  function buildSyntaxColorTheme(options, config) {
2439
- const { scheme } = options, tokens = config?.color?.syntax, context = { hue: "gray", scheme };
3436
+ const {
3437
+ scheme
3438
+ } = options, tokens = config?.color?.syntax, context = {
3439
+ hue: "gray",
3440
+ scheme
3441
+ };
2440
3442
  return {
2441
3443
  atrule: resolveColorTokenValue(context, tokens?.atrule),
2442
3444
  attrName: resolveColorTokenValue(context, tokens?.attrName),
@@ -2551,11 +3553,19 @@ function rgbToHex(color2) {
2551
3553
  const r = round(clamp(Math.round(color2.r), 0, 255)), g = round(clamp(Math.round(color2.g), 0, 255)), b = round(clamp(Math.round(color2.b), 0, 255));
2552
3554
  return "a" in color2 ? `rgba(${r},${g},${b},${color2.a})` : "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
2553
3555
  }
2554
- function rgbToHsl({ r, g, b }) {
3556
+ function rgbToHsl({
3557
+ r,
3558
+ g,
3559
+ b
3560
+ }) {
2555
3561
  r /= 255, g /= 255, b /= 255;
2556
3562
  const cmin = Math.min(r, g, b), cmax = Math.max(r, g, b), delta = cmax - cmin;
2557
3563
  let h = 0, s = 0, l = 0;
2558
- return delta == 0 ? h = 0 : cmax == r ? h = (g - b) / delta % 6 : cmax == g ? h = (b - r) / delta + 2 : h = (r - g) / delta + 4, h = Math.round(h * 60), h < 0 && (h += 360), l = (cmax + cmin) / 2, s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1)), s = +(s * 100).toFixed(1), l = +(l * 100).toFixed(1), { h, s, l };
3564
+ return delta == 0 ? h = 0 : cmax == r ? h = (g - b) / delta % 6 : cmax == g ? h = (b - r) / delta + 2 : h = (r - g) / delta + 4, h = Math.round(h * 60), h < 0 && (h += 360), l = (cmax + cmin) / 2, s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1)), s = +(s * 100).toFixed(1), l = +(l * 100).toFixed(1), {
3565
+ h,
3566
+ s,
3567
+ l
3568
+ };
2559
3569
  }
2560
3570
  function hslToRgb(hsl) {
2561
3571
  const s = hsl.s / 100, l = hsl.l / 100, c = (1 - Math.abs(2 * l - 1)) * s, x = c * (1 - Math.abs(hsl.h / 60 % 2 - 1)), m = l - c / 2;
@@ -2580,10 +3590,18 @@ function parseHsl(str) {
2580
3590
  const res = HSL_RE.exec(str);
2581
3591
  if (!res)
2582
3592
  throw new Error(`parseHsl: string is not a HSL color: "${str}"`);
2583
- return { h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5]) };
3593
+ return {
3594
+ h: parseInt(res[1]),
3595
+ s: parseFloat(res[3]),
3596
+ l: parseFloat(res[5])
3597
+ };
2584
3598
  }
2585
3599
  function parseColor(color2) {
2586
- if (!color2) return { r: 0, g: 0, b: 0 };
3600
+ if (!color2) return {
3601
+ r: 0,
3602
+ g: 0,
3603
+ b: 0
3604
+ };
2587
3605
  if (typeof color2 != "string")
2588
3606
  throw new Error("parseColor: expected a string");
2589
3607
  if (isHex(color2))
@@ -2598,7 +3616,11 @@ function getContrastRatio(bg, fg) {
2598
3616
  const rgb1 = parseColor(bg), rgb2 = parseColor(fg), c1 = rgb_lrgb(rgb1), c2 = rgb_lrgb(rgb2), l1 = lrgb_luminance(c1), l2 = lrgb_luminance(c2);
2599
3617
  return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05);
2600
3618
  }
2601
- function rgb_lrgb({ r, g, b }) {
3619
+ function rgb_lrgb({
3620
+ r,
3621
+ g,
3622
+ b
3623
+ }) {
2602
3624
  return [rgb_lrgb1(r / 255), rgb_lrgb1(g / 255), rgb_lrgb1(b / 255)];
2603
3625
  }
2604
3626
  function rgb_lrgb1(v) {
@@ -2613,7 +3635,9 @@ function rgba(color2, a) {
2613
3635
  }
2614
3636
  const RGB_RANGE = [0, 255];
2615
3637
  function mixThemeColor(value, options) {
2616
- const { blendMode } = options, color2 = parseColor(value), black2 = parseColor(options.black), white2 = parseColor(options.white), bg = options.bg ? parseColor(options.bg) : blendMode === "multiply" ? white2 : black2, paletteRange = {
3638
+ const {
3639
+ blendMode
3640
+ } = options, color2 = parseColor(value), black2 = parseColor(options.black), white2 = parseColor(options.white), bg = options.bg ? parseColor(options.bg) : blendMode === "multiply" ? white2 : black2, paletteRange = {
2617
3641
  r: [black2.r, white2.r],
2618
3642
  g: [black2.g, white2.g],
2619
3643
  b: [black2.b, white2.b]
@@ -2633,7 +3657,11 @@ function mixThemeColor(value, options) {
2633
3657
  return rgbToHex(v);
2634
3658
  }
2635
3659
  function renderColorValue(str, options) {
2636
- const { bg, blendMode, colorPalette } = options;
3660
+ const {
3661
+ bg,
3662
+ blendMode,
3663
+ colorPalette
3664
+ } = options;
2637
3665
  if (bg === "white")
2638
3666
  throw new Error("Cannot blend with white background");
2639
3667
  const node = parseTokenValue(str);
@@ -2670,17 +3698,31 @@ function renderThemeColorSchemes(value, config) {
2670
3698
  };
2671
3699
  }
2672
3700
  function renderThemeColorScheme(colorPalette, value) {
2673
- const toneEntries = Object.entries(value), [, transparentTone] = toneEntries.find(([k]) => k === "transparent"), [, defaultTone] = toneEntries.find(([k]) => k === "default"), renderedTransparentTone = renderThemeColor(transparentTone, { colorPalette }), renderedDefaultTone = renderThemeColor(defaultTone, { colorPalette }), bg = renderedDefaultTone.bg;
3701
+ const toneEntries = Object.entries(value), [, transparentTone] = toneEntries.find(([k]) => k === "transparent"), [, defaultTone] = toneEntries.find(([k]) => k === "default"), renderedTransparentTone = renderThemeColor(transparentTone, {
3702
+ colorPalette
3703
+ }), renderedDefaultTone = renderThemeColor(defaultTone, {
3704
+ colorPalette
3705
+ }), bg = renderedDefaultTone.bg;
2674
3706
  if (bg === "white")
2675
3707
  throw new Error("Cannot blend with white background");
2676
- return Object.fromEntries([
2677
- ["transparent", renderedTransparentTone],
2678
- ["default", renderedDefaultTone],
2679
- ...toneEntries.filter(([k]) => k !== "default" && k !== "transparent").map(([k, v]) => [k, renderThemeColor(v, { bg, colorPalette })])
2680
- ]);
3708
+ return Object.fromEntries([["transparent", renderedTransparentTone], ["default", renderedDefaultTone], ...toneEntries.filter(([k]) => k !== "default" && k !== "transparent").map(([k, v]) => [k, renderThemeColor(v, {
3709
+ bg,
3710
+ colorPalette
3711
+ })])]);
2681
3712
  }
2682
3713
  function renderThemeColor(value, options) {
2683
- const { colorPalette, bg } = options, blendMode = value._blend || "multiply", baseBg = renderColorValue(value.bg, { colorPalette, bg, blendMode }), colorOptions = { colorPalette, bg: baseBg, blendMode }, button = renderThemeColorButton(value.button, {
3714
+ const {
3715
+ colorPalette,
3716
+ bg
3717
+ } = options, blendMode = value._blend || "multiply", baseBg = renderColorValue(value.bg, {
3718
+ colorPalette,
3719
+ bg,
3720
+ blendMode
3721
+ }), colorOptions = {
3722
+ colorPalette,
3723
+ bg: baseBg,
3724
+ blendMode
3725
+ }, button = renderThemeColorButton(value.button, {
2684
3726
  baseBg,
2685
3727
  blendMode,
2686
3728
  colorPalette
@@ -2693,17 +3735,26 @@ function renderThemeColor(value, options) {
2693
3735
  umbra: renderColorValue(value.shadow.umbra, {
2694
3736
  ...colorOptions,
2695
3737
  bg: void 0,
2696
- colorPalette: { ...colorPalette, black: "#000000" }
3738
+ colorPalette: {
3739
+ ...colorPalette,
3740
+ black: "#000000"
3741
+ }
2697
3742
  }),
2698
3743
  penumbra: renderColorValue(value.shadow.penumbra, {
2699
3744
  ...colorOptions,
2700
3745
  bg: void 0,
2701
- colorPalette: { ...colorPalette, black: "#000000" }
3746
+ colorPalette: {
3747
+ ...colorPalette,
3748
+ black: "#000000"
3749
+ }
2702
3750
  }),
2703
3751
  ambient: renderColorValue(value.shadow.ambient, {
2704
3752
  ...colorOptions,
2705
3753
  bg: void 0,
2706
- colorPalette: { ...colorPalette, black: "#000000" }
3754
+ colorPalette: {
3755
+ ...colorPalette,
3756
+ black: "#000000"
3757
+ }
2707
3758
  })
2708
3759
  };
2709
3760
  return {
@@ -2712,9 +3763,17 @@ function renderThemeColor(value, options) {
2712
3763
  accent: {
2713
3764
  fg: renderColorValue(value.accent.fg, colorOptions)
2714
3765
  },
2715
- avatar: renderThemeColorAvatar(value.avatar, { baseBg, colorPalette, blendMode }),
3766
+ avatar: renderThemeColorAvatar(value.avatar, {
3767
+ baseBg,
3768
+ colorPalette,
3769
+ blendMode
3770
+ }),
2716
3771
  backdrop: renderColorValue(value.backdrop, colorOptions),
2717
- badge: renderThemeColorBadge(value.badge, { baseBg, colorPalette, blendMode }),
3772
+ badge: renderThemeColorBadge(value.badge, {
3773
+ baseBg,
3774
+ colorPalette,
3775
+ blendMode
3776
+ }),
2718
3777
  bg: baseBg,
2719
3778
  border: renderColorValue(value.border, colorOptions),
2720
3779
  button,
@@ -2725,8 +3784,16 @@ function renderThemeColor(value, options) {
2725
3784
  fg: renderColorValue(value.fg, colorOptions),
2726
3785
  focusRing: renderColorValue(value.focusRing, colorOptions),
2727
3786
  icon: renderColorValue(value.icon, colorOptions),
2728
- input: renderThemeColorInput(value.input, { baseBg, colorPalette, blendMode }),
2729
- kbd: renderThemeColorKBD(value.kbd, { baseBg, colorPalette, blendMode }),
3787
+ input: renderThemeColorInput(value.input, {
3788
+ baseBg,
3789
+ colorPalette,
3790
+ blendMode
3791
+ }),
3792
+ kbd: renderThemeColorKBD(value.kbd, {
3793
+ baseBg,
3794
+ colorPalette,
3795
+ blendMode
3796
+ }),
2730
3797
  link: {
2731
3798
  fg: renderColorValue(value.link.fg, colorOptions)
2732
3799
  },
@@ -2739,12 +3806,20 @@ function renderThemeColor(value, options) {
2739
3806
  from: renderColorValue(value.skeleton.from, colorOptions),
2740
3807
  to: renderColorValue(value.skeleton.to, colorOptions)
2741
3808
  },
2742
- syntax: renderSyntaxColorTheme(value.syntax, { baseBg, colorPalette, blendMode }),
3809
+ syntax: renderSyntaxColorTheme(value.syntax, {
3810
+ baseBg,
3811
+ colorPalette,
3812
+ blendMode
3813
+ }),
2743
3814
  selectable
2744
3815
  };
2745
3816
  }
2746
3817
  function renderThemeColorKBD(value, options) {
2747
- const { baseBg, blendMode, colorPalette } = options, rootOptions = {
3818
+ const {
3819
+ baseBg,
3820
+ blendMode,
3821
+ colorPalette
3822
+ } = options, rootOptions = {
2748
3823
  bg: baseBg,
2749
3824
  blendMode,
2750
3825
  colorPalette
@@ -2773,7 +3848,11 @@ function renderThemeColorAvatar(value, options) {
2773
3848
  };
2774
3849
  }
2775
3850
  function renderThemeColorAvatarColor(value, options) {
2776
- const { baseBg, blendMode: rootBlendMode, colorPalette } = options, blendMode = value._blend || "multiply", rootOptions = {
3851
+ const {
3852
+ baseBg,
3853
+ blendMode: rootBlendMode,
3854
+ colorPalette
3855
+ } = options, blendMode = value._blend || "multiply", rootOptions = {
2777
3856
  bg: baseBg,
2778
3857
  blendMode: rootBlendMode,
2779
3858
  colorPalette
@@ -2798,7 +3877,11 @@ function renderThemeColorBadge(value, options) {
2798
3877
  };
2799
3878
  }
2800
3879
  function renderThemeColorBadgeColor(value, options) {
2801
- const { baseBg, blendMode: rootBlendMode, colorPalette } = options, blendMode = rootBlendMode, rootOptions = {
3880
+ const {
3881
+ baseBg,
3882
+ blendMode: rootBlendMode,
3883
+ colorPalette
3884
+ } = options, blendMode = rootBlendMode, rootOptions = {
2802
3885
  bg: baseBg,
2803
3886
  blendMode: rootBlendMode,
2804
3887
  colorPalette
@@ -2840,7 +3923,11 @@ function renderThemeColorButtonStates(value, options) {
2840
3923
  };
2841
3924
  }
2842
3925
  function renderThemeColorState(value, options) {
2843
- const { baseBg, blendMode: rootBlendMode, colorPalette } = options, blendMode = value._blend || "multiply", rootOptions = {
3926
+ const {
3927
+ baseBg,
3928
+ blendMode: rootBlendMode,
3929
+ colorPalette
3930
+ } = options, blendMode = value._blend || "multiply", rootOptions = {
2844
3931
  bg: baseBg,
2845
3932
  blendMode: rootBlendMode,
2846
3933
  colorPalette
@@ -2854,8 +3941,16 @@ function renderThemeColorState(value, options) {
2854
3941
  accent: {
2855
3942
  fg: renderColorValue(value.accent.fg, colorOptions)
2856
3943
  },
2857
- avatar: renderThemeColorAvatar(value.avatar, { baseBg: bg, colorPalette, blendMode }),
2858
- badge: renderThemeColorBadge(value.badge, { baseBg: bg, colorPalette, blendMode }),
3944
+ avatar: renderThemeColorAvatar(value.avatar, {
3945
+ baseBg: bg,
3946
+ colorPalette,
3947
+ blendMode
3948
+ }),
3949
+ badge: renderThemeColorBadge(value.badge, {
3950
+ baseBg: bg,
3951
+ colorPalette,
3952
+ blendMode
3953
+ }),
2859
3954
  bg,
2860
3955
  border: renderColorValue(value.border, colorOptions),
2861
3956
  code: {
@@ -2897,7 +3992,19 @@ function renderInputStatesColorTheme(value, options) {
2897
3992
  };
2898
3993
  }
2899
3994
  function renderInputStateColorTheme(value, options) {
2900
- const { baseBg, blendMode: rootBlendMode, colorPalette } = options, blendMode = value._blend || "multiply", rootOptions = { colorPalette, bg: baseBg, blendMode: rootBlendMode }, bg = renderColorValue(value.bg, rootOptions), colorOptions = { colorPalette, bg, blendMode };
3995
+ const {
3996
+ baseBg,
3997
+ blendMode: rootBlendMode,
3998
+ colorPalette
3999
+ } = options, blendMode = value._blend || "multiply", rootOptions = {
4000
+ colorPalette,
4001
+ bg: baseBg,
4002
+ blendMode: rootBlendMode
4003
+ }, bg = renderColorValue(value.bg, rootOptions), colorOptions = {
4004
+ colorPalette,
4005
+ bg,
4006
+ blendMode
4007
+ };
2901
4008
  return {
2902
4009
  _blend: blendMode,
2903
4010
  bg,
@@ -2928,7 +4035,15 @@ function renderThemeColorSelectableStates(value, options) {
2928
4035
  };
2929
4036
  }
2930
4037
  function renderSyntaxColorTheme(value, options) {
2931
- const { colorPalette, baseBg, blendMode } = options, colorOptions = { colorPalette, bg: baseBg, blendMode };
4038
+ const {
4039
+ colorPalette,
4040
+ baseBg,
4041
+ blendMode
4042
+ } = options, colorOptions = {
4043
+ colorPalette,
4044
+ bg: baseBg,
4045
+ blendMode
4046
+ };
2932
4047
  return {
2933
4048
  atrule: renderColorValue(value.atrule, colorOptions),
2934
4049
  attrName: renderColorValue(value.attrName, colorOptions),
@@ -2971,24 +4086,24 @@ function renderSyntaxColorTheme(value, options) {
2971
4086
  function buildTheme(config) {
2972
4087
  const colorTheme = buildColorTheme(config), v2 = {
2973
4088
  _version: 2,
2974
- avatar: config?.avatar ?? getTheme_v2.defaultThemeConfig.avatar,
2975
- button: config?.button ?? getTheme_v2.defaultThemeConfig.button,
2976
- card: config?.card ?? getTheme_v2.defaultThemeConfig.card,
4089
+ avatar: config?.avatar ?? defaultThemeConfig.avatar,
4090
+ button: config?.button ?? defaultThemeConfig.button,
4091
+ card: config?.card ?? defaultThemeConfig.card,
2977
4092
  // How colors are generated:
2978
4093
  // 1. Merge custom tokens with default tokens
2979
4094
  // 2. Generate tree of color keys (gray/500, black, white, etc.)
2980
4095
  // 3. Apply mixing and render to hex values
2981
4096
  // render(build(mergeWithDefaults()))
2982
4097
  color: renderThemeColorSchemes(colorTheme, config),
2983
- container: config?.container ?? getTheme_v2.defaultThemeConfig.container,
4098
+ container: config?.container ?? defaultThemeConfig.container,
2984
4099
  font: config?.font ?? defaultThemeFonts,
2985
- input: config?.input ?? getTheme_v2.defaultThemeConfig.input,
2986
- layer: config?.layer ?? getTheme_v2.defaultThemeConfig.layer,
2987
- media: config?.media ?? getTheme_v2.defaultThemeConfig.media,
2988
- radius: config?.radius ?? getTheme_v2.defaultThemeConfig.radius,
2989
- shadow: config?.shadow ?? getTheme_v2.defaultThemeConfig.shadow,
2990
- space: config?.space ?? getTheme_v2.defaultThemeConfig.space,
2991
- style: config?.style ?? getTheme_v2.defaultThemeConfig.style
4100
+ input: config?.input ?? defaultThemeConfig.input,
4101
+ layer: config?.layer ?? defaultThemeConfig.layer,
4102
+ media: config?.media ?? defaultThemeConfig.media,
4103
+ radius: config?.radius ?? defaultThemeConfig.radius,
4104
+ shadow: config?.shadow ?? defaultThemeConfig.shadow,
4105
+ space: config?.space ?? defaultThemeConfig.space,
4106
+ style: config?.style ?? defaultThemeConfig.style
2992
4107
  };
2993
4108
  return v2_v0(v2);
2994
4109
  }
@@ -2996,7 +4111,7 @@ const cache = /* @__PURE__ */ new Map();
2996
4111
  function getScopedTheme(themeProp, scheme, tone) {
2997
4112
  const cachedTheme = _getCachedTheme(themeProp, scheme, tone);
2998
4113
  if (cachedTheme) return cachedTheme;
2999
- const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp, v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp), colorScheme_v0 = v0.color[scheme] || v0.color.light, color_v0 = colorScheme_v0[tone] || colorScheme_v0.default, layer_v0 = v0.layer || getTheme_v2.defaultThemeConfig.layer, colorScheme_v2 = v2.color[scheme] || v2.color.light, color_v2 = colorScheme_v2[tone] || colorScheme_v2.default, layer_v2 = v2.layer || getTheme_v2.defaultThemeConfig.layer, theme = {
4114
+ const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp, v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp), colorScheme_v0 = v0.color[scheme] || v0.color.light, color_v0 = colorScheme_v0[tone] || colorScheme_v0.default, layer_v0 = v0.layer || defaultThemeConfig.layer, colorScheme_v2 = v2.color[scheme] || v2.color.light, color_v2 = colorScheme_v2[tone] || colorScheme_v2.default, layer_v2 = v2.layer || defaultThemeConfig.layer, theme = {
3000
4115
  sanity: {
3001
4116
  ...v0,
3002
4117
  color: color_v0,
@@ -3023,7 +4138,6 @@ function _setCachedTheme(rootTheme, scheme, tone, theme) {
3023
4138
  const schemeCache = cache.get(scheme);
3024
4139
  schemeCache.has(tone) || schemeCache.set(tone, /* @__PURE__ */ new WeakMap()), schemeCache.get(tone).set(rootTheme, theme);
3025
4140
  }
3026
- exports.getTheme_v2 = getTheme_v2.getTheme_v2;
3027
4141
  exports.AVATAR_SIZE = AVATAR_SIZE;
3028
4142
  exports.COLOR_CONFIG_AVATAR_COLORS = COLOR_CONFIG_AVATAR_COLORS;
3029
4143
  exports.COLOR_CONFIG_BLEND_KEYS = COLOR_CONFIG_BLEND_KEYS;
@@ -3055,6 +4169,7 @@ exports.buildTheme = buildTheme;
3055
4169
  exports.createColorTheme = createColorTheme;
3056
4170
  exports.getContrastRatio = getContrastRatio;
3057
4171
  exports.getScopedTheme = getScopedTheme;
4172
+ exports.getTheme_v2 = getTheme_v2;
3058
4173
  exports.hexToRgb = hexToRgb;
3059
4174
  exports.hslToRgb = hslToRgb;
3060
4175
  exports.isColorBlendModeValue = isColorBlendModeValue;