@sanity/ui 3.0.0-static.20 → 3.0.0-static.21

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 (500) hide show
  1. package/README.md +2 -1
  2. package/dist/_chunks-cjs/_visual-editing.cjs +198 -862
  3. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
  4. package/dist/_chunks-cjs/refractor.cjs +0 -1
  5. package/dist/_chunks-cjs/refractor.cjs.map +1 -1
  6. package/dist/_chunks-es/_visual-editing.js +211 -874
  7. package/dist/_chunks-es/_visual-editing.js.map +1 -1
  8. package/dist/_chunks-es/refractor.js +0 -1
  9. package/dist/_chunks-es/refractor.js.map +1 -1
  10. package/dist/_visual-editing.d.cts +34 -100
  11. package/dist/_visual-editing.d.ts +34 -100
  12. package/dist/css.cjs +368 -4123
  13. package/dist/css.cjs.map +1 -1
  14. package/dist/css.d.cts +13095 -8462
  15. package/dist/css.d.ts +13095 -8462
  16. package/dist/css.js +368 -4124
  17. package/dist/css.js.map +1 -1
  18. package/dist/index.cjs +769 -141
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +93 -287
  21. package/dist/index.d.ts +93 -287
  22. package/dist/index.js +740 -112
  23. package/dist/index.js.map +1 -1
  24. package/dist/theme.cjs +31 -10
  25. package/dist/theme.cjs.map +1 -1
  26. package/dist/theme.d.cts +2 -2
  27. package/dist/theme.d.ts +2 -2
  28. package/dist/theme.js +31 -10
  29. package/dist/theme.js.map +1 -1
  30. package/dist/ui.css +21459 -24610
  31. package/package.json +17 -12
  32. package/src/cli/buildCommand.ts +1 -91
  33. package/src/core/_compat/theme/themeColorProvider.tsx +0 -2
  34. package/src/core/_compat/theme/themeProvider.tsx +0 -2
  35. package/src/core/components/autocomplete/autocomplete.tsx +15 -15
  36. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -2
  37. package/src/core/components/breadcrumbs/breadcrumbs.tsx +2 -4
  38. package/src/core/components/dialog/dialog.tsx +9 -13
  39. package/src/core/components/dialog/dialogCard.tsx +2 -10
  40. package/src/core/components/dialog/dialogContext.ts +4 -2
  41. package/src/core/components/dialog/dialogProvider.tsx +3 -4
  42. package/src/core/components/hotkeys/hotkeys.tsx +0 -2
  43. package/src/core/components/menu/menu.tsx +2 -4
  44. package/src/core/components/menu/menuButton.tsx +0 -2
  45. package/src/core/components/menu/menuDivider.tsx +2 -4
  46. package/src/core/components/menu/menuGroup.tsx +0 -2
  47. package/src/core/components/menu/menuItem.tsx +2 -4
  48. package/src/core/components/skeleton/codeSkeleton.tsx +6 -10
  49. package/src/core/components/skeleton/headingSkeleton.tsx +6 -10
  50. package/src/core/components/skeleton/labelSkeleton.tsx +6 -10
  51. package/src/core/components/skeleton/skeleton.tsx +4 -8
  52. package/src/core/components/skeleton/textSkeleton.tsx +6 -10
  53. package/src/core/components/tab/tab.tsx +0 -2
  54. package/src/core/components/tab/tabList.tsx +0 -2
  55. package/src/core/components/tab/tabPanel.tsx +0 -2
  56. package/src/core/components/toast/toast.tsx +6 -36
  57. package/src/core/components/toast/toastLayer.tsx +0 -2
  58. package/src/core/components/toast/toastProvider.tsx +2 -3
  59. package/src/core/components/tree/tree.tsx +0 -2
  60. package/src/core/components/tree/treeGroup.tsx +0 -2
  61. package/src/core/components/tree/treeItem.tsx +3 -5
  62. package/src/core/helpers/props.ts +18 -0
  63. package/src/core/hooks/index.ts +1 -0
  64. package/src/core/hooks/useArrayProp.ts +1 -4
  65. package/src/core/hooks/useResponsiveProp.ts +28 -0
  66. package/src/core/index.ts +0 -1
  67. package/src/core/lib/isArray.ts +3 -0
  68. package/src/core/primitives/_selectable/selectable.tsx +2 -6
  69. package/src/core/primitives/avatar/avatar.tsx +15 -17
  70. package/src/core/primitives/avatar/avatarCounter.tsx +14 -15
  71. package/src/core/primitives/avatar/avatarStack.tsx +14 -22
  72. package/src/core/primitives/badge/badge.tsx +3 -10
  73. package/src/core/primitives/box/box.tsx +90 -70
  74. package/src/core/primitives/button/button.tsx +10 -21
  75. package/src/core/primitives/card/card.tsx +5 -11
  76. package/src/core/primitives/card/cardProvider.tsx +2 -2
  77. package/src/core/primitives/card/useCard.ts +1 -0
  78. package/src/core/primitives/checkbox/checkbox.tsx +4 -6
  79. package/src/core/primitives/code/code.tsx +5 -10
  80. package/src/core/primitives/code/refractor.tsx +0 -2
  81. package/src/core/primitives/container/container.tsx +2 -11
  82. package/src/core/primitives/flex/flex.tsx +29 -4
  83. package/src/core/primitives/grid/grid.tsx +0 -2
  84. package/src/core/primitives/heading/heading.tsx +8 -13
  85. package/src/core/primitives/inline/inline.tsx +22 -6
  86. package/src/core/primitives/kbd/kbd.tsx +2 -4
  87. package/src/core/primitives/label/label.tsx +7 -12
  88. package/src/core/primitives/popover/popover.tsx +11 -9
  89. package/src/core/primitives/popover/popoverLayer.tsx +1 -3
  90. package/src/core/primitives/radio/radio.tsx +4 -5
  91. package/src/core/primitives/select/select.tsx +0 -2
  92. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +6 -10
  93. package/src/core/primitives/spinner/spinner.tsx +6 -6
  94. package/src/core/primitives/stack/stack.tsx +16 -6
  95. package/src/core/primitives/switch/switch.tsx +1 -4
  96. package/src/core/primitives/text/text.tsx +9 -19
  97. package/src/core/primitives/textArea/textArea.tsx +0 -2
  98. package/src/core/primitives/textInput/textInput.tsx +40 -47
  99. package/src/core/primitives/tooltip/tooltip.tsx +4 -12
  100. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -2
  101. package/src/core/primitives/tooltip/tooltipLayer.tsx +0 -2
  102. package/src/core/primitives/types.ts +6 -6
  103. package/src/core/types/flex.ts +3 -3
  104. package/src/core/utils/arrow/arrow.tsx +11 -5
  105. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -2
  106. package/src/core/utils/elementQuery/elementQuery.tsx +0 -2
  107. package/src/core/utils/layer/layer.tsx +3 -3
  108. package/src/core/utils/layer/layerCard.tsx +0 -2
  109. package/src/core/utils/layer/layerProvider.tsx +6 -7
  110. package/src/core/utils/portal/portal.tsx +0 -2
  111. package/src/core/utils/portal/portalProvider.tsx +0 -2
  112. package/src/core/utils/srOnly/srOnly.tsx +2 -9
  113. package/src/core/utils/virtualList/virtualList.tsx +0 -2
  114. package/src/css/__theme/index.ts +16 -0
  115. package/src/css/__theme/lib/contract/buildVarContract.ts +78 -0
  116. package/src/css/__theme/lib/contract/index.ts +4 -0
  117. package/src/css/__theme/lib/contract/types.ts +17 -0
  118. package/src/css/__theme/resolveTheme.ts +865 -0
  119. package/src/css/_responsiveClassName.ts +45 -0
  120. package/src/css/_responsiveStyle.css.ts +34 -0
  121. package/src/css/_style.css.ts +9 -0
  122. package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
  123. package/src/css/components/breadcrumbs/breadcrumbs.ts +4 -3
  124. package/src/css/components/dialog/dialog.css.ts +81 -0
  125. package/src/css/components/dialog/dialog.ts +12 -12
  126. package/src/css/components/index.ts +6 -0
  127. package/src/css/components/menu/menu.css.ts +14 -0
  128. package/src/css/components/menu/menu.ts +6 -5
  129. package/src/css/components/skeleton/skeleton.css.ts +132 -0
  130. package/src/css/components/skeleton/skeleton.ts +8 -8
  131. package/src/css/components/skeleton/types.ts +9 -3
  132. package/src/css/components/toast/toast.css.ts +16 -0
  133. package/src/css/components/toast/toast.ts +3 -18
  134. package/src/css/components/tree/tree.css.ts +65 -0
  135. package/src/css/components/tree/tree.ts +4 -3
  136. package/src/css/defaultTheme.css.ts +468 -0
  137. package/src/css/index.ts +11 -37
  138. package/src/css/layers.css.ts +9 -0
  139. package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
  140. package/src/css/primitives/_arrow/_arrow.ts +10 -5
  141. package/src/css/primitives/_input/_input.css.ts +258 -0
  142. package/src/css/primitives/_input/input.ts +10 -12
  143. package/src/css/primitives/_input/types.ts +1 -1
  144. package/src/css/primitives/_selectable/_selectable.css.ts +121 -0
  145. package/src/css/primitives/_selectable/selectable.ts +3 -3
  146. package/src/css/primitives/_selectable/types.ts +2 -1
  147. package/src/css/primitives/avatar/avatar.css.ts +175 -0
  148. package/src/css/primitives/avatar/avatar.ts +45 -10
  149. package/src/css/primitives/avatar/types.ts +1 -0
  150. package/src/css/primitives/badge/badge.css.ts +26 -0
  151. package/src/css/primitives/badge/badge.ts +2 -6
  152. package/src/css/primitives/badge/types.ts +4 -3
  153. package/src/css/primitives/box/box.css.ts +19 -0
  154. package/src/css/primitives/box/box.ts +39 -9
  155. package/src/css/primitives/box/types.ts +35 -8
  156. package/src/css/primitives/button/button.css.ts +285 -0
  157. package/src/css/primitives/button/button.ts +10 -7
  158. package/src/css/primitives/button/types.ts +10 -4
  159. package/src/css/primitives/card/card.css.ts +365 -0
  160. package/src/css/primitives/card/card.ts +5 -4
  161. package/src/css/primitives/card/types.ts +2 -3
  162. package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
  163. package/src/css/primitives/checkbox/checkbox.ts +11 -5
  164. package/src/css/primitives/code/code.css.ts +271 -0
  165. package/src/css/primitives/code/code.ts +8 -4
  166. package/src/css/primitives/code/types.ts +3 -2
  167. package/src/css/primitives/container/container.css.ts +4 -0
  168. package/src/css/primitives/container/container.ts +9 -3
  169. package/src/css/primitives/container/types.ts +1 -0
  170. package/src/css/primitives/heading/heading.css.ts +85 -0
  171. package/src/css/primitives/heading/heading.ts +9 -10
  172. package/src/css/primitives/heading/types.ts +3 -2
  173. package/src/css/primitives/index.ts +24 -0
  174. package/src/css/primitives/kbd/kbd.css.ts +16 -0
  175. package/src/css/primitives/kbd/kbd.ts +3 -3
  176. package/src/css/primitives/kbd/types.ts +2 -3
  177. package/src/css/primitives/label/label.css.ts +85 -0
  178. package/src/css/primitives/label/label.ts +9 -4
  179. package/src/css/primitives/label/types.ts +3 -2
  180. package/src/css/primitives/popover/popover.css.ts +6 -0
  181. package/src/css/primitives/popover/popover.ts +6 -5
  182. package/src/css/primitives/radio/radio.css.ts +78 -0
  183. package/src/css/primitives/radio/radio.ts +14 -3
  184. package/src/css/primitives/select/select.css.ts +24 -0
  185. package/src/css/primitives/select/select.ts +3 -3
  186. package/src/css/primitives/spinner/index.ts +1 -0
  187. package/src/css/primitives/spinner/spinner.css.ts +23 -0
  188. package/src/css/primitives/spinner/spinner.ts +7 -5
  189. package/src/css/primitives/spinner/types.ts +4 -0
  190. package/src/css/primitives/stack/stack.css.ts +6 -0
  191. package/src/css/primitives/stack/stack.ts +4 -3
  192. package/src/css/primitives/switch/switch.css.ts +98 -0
  193. package/src/css/primitives/switch/switch.ts +8 -7
  194. package/src/css/primitives/text/text.css.ts +85 -0
  195. package/src/css/primitives/text/text.ts +9 -5
  196. package/src/css/primitives/text/types.ts +3 -2
  197. package/src/css/primitives/textArea/textArea.css.ts +4 -0
  198. package/src/css/primitives/textArea/textArea.ts +2 -2
  199. package/src/css/primitives/textArea/types.ts +4 -2
  200. package/src/css/primitives/textInput/textInput.css.ts +41 -0
  201. package/src/css/primitives/textInput/textInput.ts +5 -5
  202. package/src/css/primitives/textInput/types.ts +4 -2
  203. package/src/css/primitives/tooltip/index.ts +1 -0
  204. package/src/css/primitives/tooltip/tooltip.css.ts +6 -0
  205. package/src/css/primitives/tooltip/tooltip.ts +7 -3
  206. package/src/css/primitives/tooltip/types.ts +4 -0
  207. package/src/css/props/alignItems/alignItems.css.ts +22 -0
  208. package/src/css/props/alignItems/alignItems.ts +8 -0
  209. package/src/css/props/alignItems/index.ts +2 -0
  210. package/src/css/props/alignItems/types.ts +9 -0
  211. package/src/css/props/border/border.css.ts +65 -0
  212. package/src/css/props/border/border.ts +36 -0
  213. package/src/css/props/border/types.ts +13 -0
  214. package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
  215. package/src/css/props/boxSizing/boxSizing.ts +10 -0
  216. package/src/css/{aspects → props}/boxSizing/types.ts +1 -3
  217. package/src/css/props/display/display.css.ts +56 -0
  218. package/src/css/props/display/display.ts +17 -0
  219. package/src/css/props/flex/flex.css.ts +52 -0
  220. package/src/css/props/flex/flex.ts +8 -0
  221. package/src/css/props/flex/types.ts +9 -0
  222. package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
  223. package/src/css/props/flexDirection/flexDirection.ts +8 -0
  224. package/src/css/props/flexDirection/index.ts +2 -0
  225. package/src/css/props/flexDirection/types.ts +9 -0
  226. package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
  227. package/src/css/props/flexWrap/flexWrap.ts +8 -0
  228. package/src/css/props/flexWrap/index.ts +2 -0
  229. package/src/css/props/flexWrap/types.ts +9 -0
  230. package/src/css/props/font/font.css.ts +93 -0
  231. package/src/css/props/font/font.ts +8 -0
  232. package/src/css/props/gap/gap.css.ts +40 -0
  233. package/src/css/props/gap/gap.ts +13 -0
  234. package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
  235. package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
  236. package/src/css/props/gridAutoColumns/index.ts +2 -0
  237. package/src/css/props/gridAutoColumns/types.ts +19 -0
  238. package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
  239. package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
  240. package/src/css/props/gridAutoFlow/index.ts +2 -0
  241. package/src/css/props/gridAutoFlow/types.ts +13 -0
  242. package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
  243. package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
  244. package/src/css/props/gridAutoRows/index.ts +2 -0
  245. package/src/css/props/gridAutoRows/types.ts +13 -0
  246. package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
  247. package/src/css/props/gridColumn/gridColumn.ts +8 -0
  248. package/src/css/props/gridColumn/index.ts +2 -0
  249. package/src/css/props/gridColumn/types.ts +19 -0
  250. package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
  251. package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
  252. package/src/css/props/gridColumnEnd/index.ts +2 -0
  253. package/src/css/props/gridColumnEnd/types.ts +19 -0
  254. package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
  255. package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
  256. package/src/css/props/gridColumnStart/index.ts +2 -0
  257. package/src/css/props/gridColumnStart/types.ts +19 -0
  258. package/src/css/props/gridRow/gridRow.css.ts +49 -0
  259. package/src/css/props/gridRow/gridRow.ts +8 -0
  260. package/src/css/props/gridRow/index.ts +2 -0
  261. package/src/css/props/gridRow/types.ts +19 -0
  262. package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
  263. package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
  264. package/src/css/props/gridRowEnd/index.ts +2 -0
  265. package/src/css/props/gridRowEnd/types.ts +19 -0
  266. package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
  267. package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
  268. package/src/css/props/gridRowStart/index.ts +2 -0
  269. package/src/css/props/gridRowStart/types.ts +19 -0
  270. package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
  271. package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
  272. package/src/css/props/gridTemplateColumns/index.ts +2 -0
  273. package/src/css/props/gridTemplateColumns/types.ts +19 -0
  274. package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
  275. package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
  276. package/src/css/props/gridTemplateRows/index.ts +2 -0
  277. package/src/css/props/gridTemplateRows/types.ts +19 -0
  278. package/src/css/props/height/height.css.ts +25 -0
  279. package/src/css/props/height/height.ts +8 -0
  280. package/src/css/{aspects → props}/height/index.ts +1 -0
  281. package/src/css/props/height/types.ts +15 -0
  282. package/src/css/{aspects → props}/index.ts +16 -3
  283. package/src/css/props/inset/inset.css.ts +37 -0
  284. package/src/css/props/inset/inset.ts +21 -0
  285. package/src/css/props/justifyContent/index.ts +2 -0
  286. package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
  287. package/src/css/props/justifyContent/justifyContent.ts +8 -0
  288. package/src/css/props/justifyContent/types.ts +15 -0
  289. package/src/css/props/margin/margin.css.ts +117 -0
  290. package/src/css/props/margin/margin.ts +25 -0
  291. package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
  292. package/src/css/props/maxWidth/maxWidth.ts +8 -0
  293. package/src/css/{aspects → props}/maxWidth/types.ts +4 -1
  294. package/src/css/props/minHeight/minHeight.css.ts +13 -0
  295. package/src/css/props/minHeight/minHeight.ts +8 -0
  296. package/src/css/props/minWidth/minWidth.css.ts +25 -0
  297. package/src/css/props/minWidth/minWidth.ts +8 -0
  298. package/src/css/props/outline/index.ts +2 -0
  299. package/src/css/props/outline/outline.css.ts +10 -0
  300. package/src/css/props/outline/outline.ts +8 -0
  301. package/src/css/props/outline/types.ts +7 -0
  302. package/src/css/props/overflow/overflow.css.ts +16 -0
  303. package/src/css/props/overflow/overflow.ts +8 -0
  304. package/src/css/props/overflow/types.ts +17 -0
  305. package/src/css/props/padding/padding.css.ts +87 -0
  306. package/src/css/props/padding/padding.ts +25 -0
  307. package/src/css/props/padding/types.ts +17 -0
  308. package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
  309. package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
  310. package/src/css/props/position/position.css.ts +22 -0
  311. package/src/css/props/position/position.ts +8 -0
  312. package/src/css/props/radius/radius.css.ts +21 -0
  313. package/src/css/props/radius/radius.ts +8 -0
  314. package/src/css/props/shadow/shadow.css.ts +23 -0
  315. package/src/css/props/shadow/shadow.ts +8 -0
  316. package/src/css/props/textAlign/textAlign.css.ts +22 -0
  317. package/src/css/props/textAlign/textAlign.ts +8 -0
  318. package/src/css/props/textOverflow/textOverflow.css.ts +13 -0
  319. package/src/css/props/textOverflow/textOverflow.ts +8 -0
  320. package/src/css/{aspects → props}/textOverflow/types.ts +5 -2
  321. package/src/css/{aspects → props}/width/types.ts +1 -1
  322. package/src/css/props/width/width.css.ts +28 -0
  323. package/src/css/props/width/width.ts +8 -0
  324. package/src/css/types.ts +223 -42
  325. package/src/css/util.ts +0 -10
  326. package/src/css/utils/index.ts +1 -0
  327. package/src/css/utils/srOnly/srOnly.css.ts +10 -0
  328. package/src/css/utils/srOnly/srOnly.ts +3 -3
  329. package/src/css/vars.css.ts +676 -0
  330. package/src/theme/v3/buildTheme_v3.ts +7 -2
  331. package/src/theme/v3/defaultFonts.ts +4 -4
  332. package/src/theme/v3/defaultTokens.ts +3 -3
  333. package/src/theme/v3/types.ts +3 -2
  334. package/src/theme/versioning/v3_v2.ts +24 -3
  335. package/dist/_chunks-cjs/buildCommand.cjs +0 -71
  336. package/dist/_chunks-cjs/buildCommand.cjs.map +0 -1
  337. package/dist/cli.cjs +0 -357
  338. package/dist/cli.cjs.map +0 -1
  339. package/dist/cli.d.cts +0 -1
  340. package/dist/ui-system.css +0 -24528
  341. package/dist/ui-system.min.css +0 -1
  342. package/dist/ui-theme.css +0 -1184
  343. package/dist/ui-theme.min.css +0 -1
  344. package/dist/ui.min.css +0 -1
  345. package/src/core/StyleTags.tsx +0 -18
  346. package/src/css/_compileStyle.ts +0 -156
  347. package/src/css/_compileSystem.ts +0 -7
  348. package/src/css/_compileTheme.ts +0 -13
  349. package/src/css/_hash.ts +0 -9
  350. package/src/css/_mergeStyles.ts +0 -24
  351. package/src/css/_resp.ts +0 -31
  352. package/src/css/_responsiveRule.ts +0 -38
  353. package/src/css/_scopeClassName.ts +0 -9
  354. package/src/css/_scopeClassNames.ts +0 -12
  355. package/src/css/_system.style.ts +0 -166
  356. package/src/css/aspects/border/border.style.ts +0 -13
  357. package/src/css/aspects/border/border.ts +0 -14
  358. package/src/css/aspects/border/types.ts +0 -10
  359. package/src/css/aspects/boxSizing/boxSizing.style.ts +0 -10
  360. package/src/css/aspects/boxSizing/boxSizing.ts +0 -8
  361. package/src/css/aspects/display/display.style.ts +0 -34
  362. package/src/css/aspects/display/display.ts +0 -8
  363. package/src/css/aspects/flex/flex.ts +0 -13
  364. package/src/css/aspects/flex/flexAlign.style.ts +0 -12
  365. package/src/css/aspects/flex/flexDirection.style.ts +0 -11
  366. package/src/css/aspects/flex/flexJustify.style.ts +0 -13
  367. package/src/css/aspects/flex/flexWrap.style.ts +0 -10
  368. package/src/css/aspects/flex/types.ts +0 -27
  369. package/src/css/aspects/flexItem/flex.style.ts +0 -22
  370. package/src/css/aspects/flexItem/flexItem.ts +0 -8
  371. package/src/css/aspects/flexItem/index.ts +0 -2
  372. package/src/css/aspects/flexItem/types.ts +0 -25
  373. package/src/css/aspects/font/font.style.ts +0 -83
  374. package/src/css/aspects/font/font.ts +0 -7
  375. package/src/css/aspects/gap/gap.style.ts +0 -21
  376. package/src/css/aspects/gap/gap.ts +0 -8
  377. package/src/css/aspects/grid/grid.ts +0 -14
  378. package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
  379. package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
  380. package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
  381. package/src/css/aspects/grid/gridColumns.style.ts +0 -18
  382. package/src/css/aspects/grid/gridRows.style.ts +0 -18
  383. package/src/css/aspects/grid/index.ts +0 -2
  384. package/src/css/aspects/grid/types.ts +0 -25
  385. package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
  386. package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
  387. package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
  388. package/src/css/aspects/gridItem/gridItem.ts +0 -15
  389. package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
  390. package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
  391. package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
  392. package/src/css/aspects/gridItem/index.ts +0 -2
  393. package/src/css/aspects/gridItem/types.ts +0 -30
  394. package/src/css/aspects/height/height.style.ts +0 -9
  395. package/src/css/aspects/height/height.ts +0 -16
  396. package/src/css/aspects/inset/inset.style.ts +0 -12
  397. package/src/css/aspects/inset/inset.ts +0 -14
  398. package/src/css/aspects/margin/margin.style.ts +0 -56
  399. package/src/css/aspects/margin/margin.ts +0 -16
  400. package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
  401. package/src/css/aspects/maxWidth/maxWidth.ts +0 -8
  402. package/src/css/aspects/minHeight/minHeight.style.ts +0 -9
  403. package/src/css/aspects/minHeight/minHeight.ts +0 -8
  404. package/src/css/aspects/minWidth/minWidth.style.ts +0 -13
  405. package/src/css/aspects/minWidth/minWidth.ts +0 -8
  406. package/src/css/aspects/outline/outline.style.ts +0 -9
  407. package/src/css/aspects/overflow/overflow.style.ts +0 -11
  408. package/src/css/aspects/overflow/overflow.ts +0 -12
  409. package/src/css/aspects/overflow/types.ts +0 -11
  410. package/src/css/aspects/padding/padding.style.ts +0 -43
  411. package/src/css/aspects/padding/padding.ts +0 -16
  412. package/src/css/aspects/padding/types.ts +0 -14
  413. package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
  414. package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -7
  415. package/src/css/aspects/position/position.style.ts +0 -12
  416. package/src/css/aspects/position/position.ts +0 -8
  417. package/src/css/aspects/radius/radius.style.ts +0 -16
  418. package/src/css/aspects/radius/radius.ts +0 -8
  419. package/src/css/aspects/shadow/shadow.style.ts +0 -24
  420. package/src/css/aspects/shadow/shadow.ts +0 -8
  421. package/src/css/aspects/textAlign/textAlign.style.ts +0 -26
  422. package/src/css/aspects/textAlign/textAlign.ts +0 -8
  423. package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
  424. package/src/css/aspects/textOverflow/textOverflow.ts +0 -7
  425. package/src/css/aspects/width/width.style.ts +0 -11
  426. package/src/css/aspects/width/width.ts +0 -8
  427. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
  428. package/src/css/components/dialog/dialog.style.ts +0 -77
  429. package/src/css/components/menu/menu.style.ts +0 -17
  430. package/src/css/components/skeleton/skeleton.style.ts +0 -104
  431. package/src/css/components/toast/toast.style.ts +0 -20
  432. package/src/css/components/tree/tree.style.ts +0 -39
  433. package/src/css/prefix/constants.ts +0 -6
  434. package/src/css/prefix/index.ts +0 -2
  435. package/src/css/prefix/types.ts +0 -1
  436. package/src/css/primitives/_arrow/_arrow.style.ts +0 -69
  437. package/src/css/primitives/_input/_input.style.ts +0 -235
  438. package/src/css/primitives/_selectable/_selectable.style.ts +0 -129
  439. package/src/css/primitives/avatar/avatar.style.ts +0 -171
  440. package/src/css/primitives/badge/badge.style.ts +0 -21
  441. package/src/css/primitives/box/box.style.ts +0 -22
  442. package/src/css/primitives/button/button.style.ts +0 -275
  443. package/src/css/primitives/card/card.style.ts +0 -295
  444. package/src/css/primitives/checkbox/checkbox.style.ts +0 -178
  445. package/src/css/primitives/code/code.style.ts +0 -61
  446. package/src/css/primitives/container/container.style.ts +0 -10
  447. package/src/css/primitives/heading/heading.style.ts +0 -56
  448. package/src/css/primitives/kbd/kbd.style.ts +0 -19
  449. package/src/css/primitives/label/label.style.ts +0 -52
  450. package/src/css/primitives/popover/popover.style.ts +0 -9
  451. package/src/css/primitives/radio/radio.style.ts +0 -84
  452. package/src/css/primitives/select/select.style.ts +0 -24
  453. package/src/css/primitives/spinner/spinner.style.ts +0 -22
  454. package/src/css/primitives/stack/stack.style.ts +0 -13
  455. package/src/css/primitives/switch/switch.style.ts +0 -102
  456. package/src/css/primitives/text/text.style.ts +0 -65
  457. package/src/css/primitives/textArea/textArea.style.ts +0 -11
  458. package/src/css/primitives/textInput/textInput.style.ts +0 -46
  459. package/src/css/primitives/token/token.style.ts +0 -50
  460. package/src/css/primitives/tooltip/tooltip.style.ts +0 -9
  461. package/src/css/renderColor.ts +0 -31
  462. package/src/css/responsiveRules.ts +0 -18
  463. package/src/css/theme/index.ts +0 -14
  464. package/src/css/theme/lib/contract/buildVarContract.ts +0 -76
  465. package/src/css/theme/lib/contract/index.ts +0 -2
  466. package/src/css/theme/lib/contract/types.ts +0 -15
  467. package/src/css/theme/resolveTheme.ts +0 -863
  468. package/src/css/utils/srOnly/srOnly.style.ts +0 -14
  469. package/src/css/{aspects → props}/border/index.ts +0 -0
  470. package/src/css/{aspects → props}/boxSizing/index.ts +0 -0
  471. package/src/css/{aspects → props}/display/index.ts +0 -0
  472. package/src/css/{aspects → props}/display/types.ts +0 -0
  473. package/src/css/{aspects → props}/flex/index.ts +0 -0
  474. package/src/css/{aspects → props}/font/index.ts +0 -0
  475. package/src/css/{aspects → props}/font/types.ts +0 -0
  476. package/src/css/{aspects → props}/gap/index.ts +0 -0
  477. package/src/css/{aspects → props}/gap/types.ts +0 -0
  478. package/src/css/{aspects → props}/inset/index.ts +0 -0
  479. package/src/css/{aspects → props}/inset/types.ts +0 -0
  480. package/src/css/{aspects → props}/margin/index.ts +0 -0
  481. package/src/css/{aspects → props}/margin/types.ts +2 -2
  482. /package/src/css/{aspects → props}/maxWidth/index.ts +0 -0
  483. /package/src/css/{aspects → props}/minHeight/index.ts +0 -0
  484. /package/src/css/{aspects → props}/minHeight/types.ts +0 -0
  485. /package/src/css/{aspects → props}/minWidth/index.ts +0 -0
  486. /package/src/css/{aspects → props}/minWidth/types.ts +0 -0
  487. /package/src/css/{aspects → props}/overflow/index.ts +0 -0
  488. /package/src/css/{aspects → props}/padding/index.ts +0 -0
  489. /package/src/css/{aspects → props}/pointerEvents/index.ts +0 -0
  490. /package/src/css/{aspects → props}/pointerEvents/types.ts +0 -0
  491. /package/src/css/{aspects → props}/position/index.ts +0 -0
  492. /package/src/css/{aspects → props}/position/types.ts +0 -0
  493. /package/src/css/{aspects → props}/radius/index.ts +0 -0
  494. /package/src/css/{aspects → props}/radius/types.ts +0 -0
  495. /package/src/css/{aspects → props}/shadow/index.ts +0 -0
  496. /package/src/css/{aspects → props}/shadow/types.ts +0 -0
  497. /package/src/css/{aspects → props}/textAlign/index.ts +0 -0
  498. /package/src/css/{aspects → props}/textAlign/types.ts +0 -0
  499. /package/src/css/{aspects → props}/textOverflow/index.ts +0 -0
  500. /package/src/css/{aspects → props}/width/index.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"theme.cjs","sources":["../src/theme/v2/defaults/config.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/themeColor_v2_v2_9.ts","../src/theme/versioning/themeColor_v0_v2.ts","../src/theme/versioning/v0_v2.ts","../src/theme/versioning/v2_v0.ts","../src/theme/getScopedTheme.ts","../src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/v2/build/_deprecated/color/button/createButtonTones.ts","../src/theme/v2/build/_deprecated/color/button/createButtonModes.ts","../src/theme/v2/build/_deprecated/color/card/createCardStates.ts","../src/theme/v2/build/_deprecated/color/defaults.ts","../src/theme/v2/build/_deprecated/color/input/createInputModes.ts","../src/theme/v2/build/_deprecated/color/muted/createMuted.ts","../src/theme/v2/build/_deprecated/color/spot/createSpot.ts","../src/theme/v2/build/_deprecated/color/factory.ts","../src/theme/v3/_constants.ts","../src/theme/v3/palette/constants.ts","../src/theme/v3/_parseColorToken.ts","../src/theme/v3/defaultFonts.ts","../src/theme/v3/defaultTokens.ts","../src/theme/v3/merge.ts","../src/theme/v3/resolveTokens.ts","../src/theme/v3/buildTheme_v3.ts","../src/theme/v3/color/_constants.ts","../src/theme/versioning/themeColor_v3_v2.ts","../src/theme/versioning/v3_v2.ts","../src/theme/v2/build/buildTheme.ts","../src/theme/v2/build/lib/color-fns/blend/mix.ts","../src/theme/v2/build/lib/color-fns/blend/multiply.ts","../src/theme/v2/build/lib/color-fns/blend/screen.ts","../src/theme/v2/build/lib/utils.ts","../src/theme/v2/build/lib/color-fns/convert.ts","../src/theme/v2/build/lib/color-fns/parse.ts","../src/theme/v2/build/lib/color-fns/contrastRatio.ts","../src/theme/v2/build/lib/color-fns/rgba.ts","../src/theme/v2/color/_constants.ts","../src/theme/v2/color/_helpers.ts","../src/theme/v2/config/system.ts","../src/theme/v2/config/helpers.ts","../src/theme/v2/config/tokens/parseTokenValue.ts","../src/theme/versioning/getTheme_v2.ts"],"sourcesContent":["import type {RootTheme_v2} from '../theme'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultThemeConfig: Omit<RootTheme_v2, 'color' | 'font'> = {\n _version: 2,\n avatar: {\n sizes: [\n {distance: -4, size: 19},\n {distance: -4, size: 25},\n {distance: -8, size: 33},\n {distance: -12, size: 49},\n ],\n focusRing: {offset: 1, width: 1},\n },\n button: {\n textWeight: 'medium',\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n },\n card: {\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n shadow: {outline: OUTLINE_WIDTH},\n },\n container: [320, 640, 960, 1280, 1600, 1920],\n media: [360, 600, 900, 1200, 1800, 2400],\n layer: {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n },\n radius: [0, 1, 3, 7, 11, 15, 23, 43, 75, 127],\n shadow: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -2], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 1]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n border: {\n width: BORDER_WIDTH,\n },\n checkbox: {\n size: 17,\n focusRing: {offset: -1, width: 1},\n },\n radio: {\n size: 17,\n markSize: 9,\n focusRing: {offset: -1, width: 1},\n },\n switch: {\n width: 25,\n height: 17,\n padding: 5,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n focusRing: {offset: 1, width: 1},\n },\n select: {\n focusRing: {offset: -1, width: 1},\n },\n text: {\n focusRing: {offset: -1, width: 1},\n },\n },\n style: {\n button: {\n root: {\n transition: 'background-color 100ms,border-color 100ms,color 100ms',\n },\n },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n },\n}\n","import type {RootTheme} from '../types'\nimport type {RootTheme_v2} from '../v2'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import type {ThemeColorCard_v2} from '../v2'\n\n/**\n * Apply `neutral` and `suggest` if they're not already part of the color object,\n * as this was introduced in v2.9, but is not compatible with v2.0.\n *\n * @param color - The color object to upgrade\n * @returns The upgraded color object. Returns as-is if already upgraded.\n * @internal\n */\nexport function themeColor_v0_v2_9(color: ThemeColorCard_v2): ThemeColorCard_v2 {\n if ('neutral' in color.badge) {\n return color // Already at >= v2.9\n }\n\n // TypeScript narrows to `never` because the above should always be true\n const colors = color as ThemeColorCard_v2\n\n return {\n ...colors,\n badge: {\n ...colors.badge,\n neutral: colors.badge.default,\n suggest: colors.badge.primary,\n },\n button: {\n bleed: {\n ...colors.button.bleed,\n neutral: colors.button.bleed.default,\n suggest: colors.button.bleed.primary,\n },\n default: {\n ...colors.button.default,\n neutral: colors.button.default.default,\n suggest: colors.button.default.primary,\n },\n ghost: {\n ...colors.button.ghost,\n neutral: colors.button.ghost.default,\n suggest: colors.button.ghost.primary,\n },\n },\n selectable: {\n ...colors.selectable,\n neutral: colors.selectable.default,\n suggest: colors.selectable.primary,\n },\n }\n}\n","import type {\n ThemeColor,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorInputStates,\n ThemeColorMuted,\n} from '../v0'\nimport type {\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorSelectable_v2,\n ThemeColorState_v2,\n} from '../v2'\n\nconst cache = new WeakMap<ThemeColor, ThemeColorCard_v2>()\n\n/** @internal */\nexport function themeColor_v0_v2(color_v0: ThemeColor): ThemeColorCard_v2 {\n const cached_v2 = cache.get(color_v0)\n\n if (cached_v2) return cached_v2\n\n const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled)\n\n const color_v2: ThemeColorCard_v2 = {\n _blend: color_v0._blend || (color_v0.dark ? 'screen' : 'multiply'),\n _dark: color_v0.dark,\n accent: base.accent,\n avatar: base.avatar,\n backdrop: color_v0.base.shadow.ambient,\n badge: base.badge,\n bg: color_v0.base.bg,\n border: color_v0.base.border,\n button: {\n default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),\n ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),\n bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed),\n },\n code: base.code,\n fg: color_v0.base.fg,\n focusRing: color_v0.base.focusRing,\n icon: base.muted.fg,\n input: {\n default: inputStatesThemeColor_v0_v2(color_v0.input.default),\n invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid),\n },\n kbd: base.kbd,\n link: base.link,\n muted: {\n ...base.muted,\n bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg,\n },\n selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),\n shadow: color_v0.base.shadow,\n skeleton: {\n from: color_v0.skeleton?.from || color_v0.base.border,\n to: color_v0.skeleton?.to || color_v0.base.border,\n },\n syntax: color_v0.syntax,\n }\n\n cache.set(color_v0, color_v2)\n\n return color_v2\n}\n\nfunction stateTonesThemeColor_v0_v2(\n v0: ThemeColor,\n t: Omit<ThemeColorMuted, 'transparent'>,\n): ThemeColorSelectable_v2 {\n return {\n default: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n neutral: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n primary: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n suggest: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n positive: {\n enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),\n selected: stateThemeColor_v0_v2(v0, t.positive.selected),\n disabled: stateThemeColor_v0_v2(v0, t.positive.disabled),\n },\n caution: {\n enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),\n selected: stateThemeColor_v0_v2(v0, t.caution.selected),\n disabled: stateThemeColor_v0_v2(v0, t.caution.disabled),\n },\n critical: {\n enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),\n selected: stateThemeColor_v0_v2(v0, t.critical.selected),\n disabled: stateThemeColor_v0_v2(v0, t.critical.disabled),\n },\n }\n}\n\nfunction stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): ThemeColorState_v2 {\n return {\n ...state,\n avatar: {\n gray: {\n bg: v0.spot.gray,\n fg: v0.base.bg,\n },\n blue: {\n bg: v0.spot.blue,\n fg: v0.base.bg,\n },\n purple: {\n bg: v0.spot.purple,\n fg: v0.base.bg,\n },\n magenta: {\n bg: v0.spot.magenta,\n fg: v0.base.bg,\n },\n red: {\n bg: v0.spot.red,\n fg: v0.base.bg,\n },\n orange: {\n bg: v0.spot.orange,\n fg: v0.base.bg,\n },\n yellow: {\n bg: v0.spot.yellow,\n fg: v0.base.bg,\n },\n green: {\n bg: v0.spot.green,\n fg: v0.base.bg,\n },\n cyan: {\n bg: v0.spot.cyan,\n fg: v0.base.bg,\n },\n },\n badge: {\n default: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n dot: v0.muted.default.enabled.muted.fg,\n icon: v0.muted.default.enabled.muted.fg,\n },\n neutral: {\n bg: v0.muted.transparent.enabled.bg,\n fg: v0.muted.transparent.enabled.fg,\n dot: v0.muted.transparent.enabled.muted.fg,\n icon: v0.muted.transparent.enabled.muted.fg,\n },\n primary: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n suggest: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n positive: {\n bg: v0.muted.positive.enabled.bg,\n fg: v0.muted.positive.enabled.fg,\n dot: v0.muted.positive.enabled.muted.fg,\n icon: v0.muted.positive.enabled.muted.fg,\n },\n caution: {\n bg: v0.muted.caution.enabled.bg,\n fg: v0.muted.caution.enabled.fg,\n dot: v0.muted.caution.enabled.muted.fg,\n icon: v0.muted.caution.enabled.muted.fg,\n },\n critical: {\n bg: v0.muted.critical.enabled.bg,\n fg: v0.muted.critical.enabled.fg,\n dot: v0.muted.critical.enabled.muted.fg,\n icon: v0.muted.critical.enabled.muted.fg,\n },\n },\n kbd: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n border: v0.muted.default.enabled.border,\n },\n muted: {\n ...v0.muted.default.enabled.muted,\n bg: state.bg2 || state.bg,\n },\n skeleton: {\n from: state.skeleton?.from || state.border,\n to: state.skeleton?.to || state.border,\n },\n }\n}\n\nfunction inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {\n return {\n enabled: inputStateThemeColor_v0_v2(states.enabled),\n disabled: inputStateThemeColor_v0_v2(states.disabled),\n readOnly: inputStateThemeColor_v0_v2(states.readOnly),\n hovered: inputStateThemeColor_v0_v2(states.hovered),\n }\n}\n\nfunction inputStateThemeColor_v0_v2(state: ThemeColorInputState): ThemeColorInputState_v2 {\n return {\n bg: state.bg,\n border: state.border,\n fg: state.fg,\n muted: {\n bg: state.bg2,\n },\n placeholder: state.placeholder,\n }\n}\n","import type {RootTheme} from '../types'\nimport type {RootTheme_v2} from '../v2'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<RootTheme, RootTheme_v2>()\n\n/** @internal */\nexport function v0_v2(v0: RootTheme): RootTheme_v2 {\n if (v0.v2) return v0.v2\n\n const cached_v2 = cache.get(v0)\n\n if (cached_v2) return cached_v2\n\n const {\n avatar,\n button,\n color,\n container,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusRing: _unused_focusRing,\n fonts: font,\n input,\n layer,\n media,\n radius,\n shadows: shadow,\n space,\n styles: style,\n } = v0\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...button,\n },\n card: defaultThemeConfig.card,\n color: {\n light: {\n transparent: themeColor_v0_v2(color.light.transparent),\n default: themeColor_v0_v2(color.light.default),\n neutral: themeColor_v0_v2(color.light.transparent),\n primary: themeColor_v0_v2(color.light.primary),\n suggest: themeColor_v0_v2(color.light.primary),\n positive: themeColor_v0_v2(color.light.positive),\n caution: themeColor_v0_v2(color.light.caution),\n critical: themeColor_v0_v2(color.light.critical),\n },\n dark: {\n transparent: themeColor_v0_v2(color.dark.transparent),\n default: themeColor_v0_v2(color.dark.default),\n neutral: themeColor_v0_v2(color.dark.transparent),\n primary: themeColor_v0_v2(color.dark.primary),\n suggest: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import type {RootTheme} from '../types'\nimport type {ThemeColor, ThemeColorInputState, ThemeColorInputStates} from '../v0'\nimport type {\n RootTheme_v2,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../v2'\nimport type {Theme_v3} from '../v3'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2, v3?: Theme_v3): RootTheme {\n const cachedTheme = cache.get(v2)\n\n if (cachedTheme) return cachedTheme\n\n const {\n avatar,\n button,\n color,\n container,\n font: fonts,\n input,\n media,\n radius,\n shadow: shadows,\n space,\n style: styles,\n } = v2\n\n return {\n _version: 0,\n avatar,\n button,\n container,\n color: {\n light: {\n transparent: themeColor_v2_v0(color.light.transparent),\n default: themeColor_v2_v0(color.light.default),\n primary: themeColor_v2_v0(color.light.primary),\n positive: themeColor_v2_v0(color.light.positive),\n caution: themeColor_v2_v0(color.light.caution),\n critical: themeColor_v2_v0(color.light.critical),\n },\n dark: {\n transparent: themeColor_v2_v0(color.dark.transparent),\n default: themeColor_v2_v0(color.dark.default),\n primary: themeColor_v2_v0(color.dark.primary),\n positive: themeColor_v2_v0(color.dark.positive),\n caution: themeColor_v2_v0(color.dark.caution),\n critical: themeColor_v2_v0(color.dark.critical),\n },\n },\n focusRing: input.text.focusRing,\n fonts,\n input,\n media,\n radius,\n shadows,\n space,\n styles,\n\n v2,\n v3,\n }\n}\n\nfunction themeColor_v2_v0(color_v2: ThemeColorCard_v2): ThemeColor {\n return {\n base: {\n bg: color_v2.bg,\n fg: color_v2.fg,\n border: color_v2.border,\n focusRing: color_v2.focusRing,\n shadow: color_v2.shadow,\n },\n button: color_v2.button,\n card: color_v2.selectable.default,\n dark: color_v2._dark,\n input: {\n default: inputStatesThemeColor_v2_v0(color_v2.input.default),\n invalid: inputStatesThemeColor_v2_v0(color_v2.input.invalid),\n },\n muted: {\n ...color_v2.button.ghost,\n transparent: color_v2.button.ghost.default,\n },\n solid: {\n ...color_v2.button.default,\n transparent: color_v2.button.default.default,\n },\n selectable: color_v2.selectable,\n spot: {\n gray: color_v2.avatar.gray.bg,\n blue: color_v2.avatar.blue.bg,\n purple: color_v2.avatar.purple.bg,\n magenta: color_v2.avatar.magenta.bg,\n red: color_v2.avatar.red.bg,\n orange: color_v2.avatar.orange.bg,\n yellow: color_v2.avatar.yellow.bg,\n green: color_v2.avatar.green.bg,\n cyan: color_v2.avatar.cyan.bg,\n },\n syntax: color_v2.syntax,\n }\n}\n\nfunction inputStatesThemeColor_v2_v0(t: ThemeColorInputMode_v2): ThemeColorInputStates {\n return {\n enabled: inputStateThemeColor_v2_v0(t.enabled),\n disabled: inputStateThemeColor_v2_v0(t.disabled),\n readOnly: inputStateThemeColor_v2_v0(t.readOnly),\n hovered: inputStateThemeColor_v2_v0(t.hovered),\n }\n}\n\nfunction inputStateThemeColor_v2_v0(t: ThemeColorInputState_v2): ThemeColorInputState {\n return {\n bg: t.bg,\n bg2: t.muted.bg,\n border: t.border,\n fg: t.fg,\n placeholder: t.placeholder,\n }\n}\n","import type {RootTheme, Theme} from './types'\nimport type {ThemeColor} from './v0'\nimport type {RootTheme_v2, ThemeColorCardToneKey, ThemeColorSchemeKey} from './v2'\nimport {defaultThemeConfig} from './v2/defaults/config'\nimport {is_v2} from './versioning/is_v2'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\nimport {v0_v2} from './versioning/v0_v2'\nimport {v2_v0} from './versioning/v2_v0'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const color_v2_9 = themeColor_v0_v2_9(color_v2)\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n },\n }\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n","import type {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import type {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import type {\n ThemeColorBase,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorButtonModeKey} from '../../../../color'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import type {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import type {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorName,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import type {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n icon: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n icon: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n icon: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n icon: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n icon: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import type {\n ThemeColorBase,\n ThemeColorInput,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import type {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import type {ThemeColorBase, ThemeColorSpot} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import type {\n ThemeColor,\n ThemeColorBase,\n ThemeColorButtonStates,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSpotKey,\n ThemeColorToneKey,\n} from '../../../../v0'\nimport type {ThemeColorButtonModeKey, ThemeColorSyntax} from '../../../color'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorName\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorGenericState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","/** @public */\nexport const AVATAR_SIZE = [0, 1, 2, 3] as const\n\n/** @public */\nexport const CONTAINER_SCALE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const CONTAINER = [...CONTAINER_SCALE, 'auto'] as const\n\n/** @public */\nexport const RADIUS = [0, 1, 2, 3, 4, 5, 6] as const\n\n/** @public */\nexport const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\n\n/** @public */\nexport const FONT_CODE_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const FONT_HEADING_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_LABEL_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_TEXT_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const SHADOW = [0, 1, 2, 3, 4, 5] as const\n","/** @public */\nexport const HUES = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n\n/** @public */\nexport const TINTS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const\n","import type {ColorToken} from './color'\nimport {type Hue, HUES, type Tint, TINTS} from './palette'\n\nconst RE_PERCENTAGE = /^([0-9]+)%/\nconst RE_OPACITY = /^(1|0\\.[0-9]+)?/\n\n/** @internal */\nexport interface ColorNode {\n type: 'color'\n name: 'black' | 'white'\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorTintNode {\n type: 'tint'\n hue: Hue\n tint: Tint\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorInheritNode {\n type: 'inherit'\n}\n\n/** @internal */\nexport type TokenizeColorResult = ColorNode | ColorTintNode | ColorInheritNode\n\n/** @internal */\nexport function _parseColorToken(str: ColorToken, options: {defaultHue: Hue}): TokenizeColorResult {\n const {defaultHue} = options\n\n let cursor = 0\n\n return parseColorNode()\n\n function _consume(s: string) {\n if (str.startsWith(s, cursor)) {\n cursor += s.length\n\n return s\n }\n\n return undefined\n }\n\n function _peek() {\n return str[cursor]\n }\n\n function parseColorNode(): ColorNode | ColorTintNode | ColorInheritNode {\n ignoreWhitespace()\n\n let v = _consume('black') || _consume('white')\n\n if (v) {\n return {\n type: 'color',\n name: v as 'black' | 'white',\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n for (const hue of HUES) {\n v = _consume(String(hue))\n\n if (v) {\n if (_peek() !== '-') {\n throw new Error(`Expected \"-\" after hue key`)\n }\n\n cursor += 1\n\n const tint = parseTint()\n\n if (!tint) {\n throw new Error(`Expected tint after hue`)\n }\n\n return {\n type: 'tint',\n hue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n }\n\n const tint = parseTint()\n\n if (tint) {\n return {\n type: 'tint',\n hue: defaultHue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n if (str === 'inherit') {\n return {\n type: 'inherit',\n }\n }\n\n throw new Error(`Invalid color: ${str}`)\n }\n\n function parseTint() {\n ignoreWhitespace()\n\n let v = Number(str.slice(cursor, cursor + 3)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 3\n\n return v\n }\n\n v = Number(str.slice(cursor, cursor + 2)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 2\n\n return v\n }\n\n return undefined\n }\n\n function parseMix() {\n ignoreWhitespace()\n\n const match = RE_PERCENTAGE.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1]) / 100\n }\n\n return undefined\n }\n\n function parseOpacity() {\n ignoreWhitespace()\n\n if (_peek() === '/') {\n cursor += 1\n\n const match = RE_OPACITY.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1])\n }\n\n cursor -= 1\n }\n\n return undefined\n }\n\n function ignoreWhitespace() {\n while (_peek() === ' ') {\n cursor++\n }\n }\n}\n","import type {ThemeFonts_v3} from './types'\n\nexport const defaultThemeFonts: ThemeFonts_v3 = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n featureSettings: `'liga' 1, 'calt' 1, 'ss01' 1, 'ss03' 1, 'zero' 1`,\n weight: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: -0.25,\n customIconSize: 28,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n customIconSize: 36,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n customIconSize: 44,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\n customIconSize: 48,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weight: {\n regular: 500,\n medium: 600,\n semibold: 700,\n bold: 800,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n customIconSize: 8,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n customIconSize: 10,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n customIconSize: 12,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n customIconSize: 14,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n customIconSize: 16,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n customIconSize: 18,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\n },\n ],\n },\n}\n","import type {PartialTokens, Tokens} from './tokens'\n\n/** @internal */\nexport const defaultTokens: PartialTokens<Tokens> = {\n color: {\n '*': {\n backdrop: ['gray-100/0.5', 'black/0.5'],\n code: {\n bg: ['50', '950'],\n fg: ['700', '300'],\n token: {\n atrule: ['purple-600', 'purple-400'],\n attrName: ['green-600', 'green-400'],\n attrValue: ['yellow-600', 'yellow-400'],\n attribute: ['yellow-600', 'yellow-400'],\n boolean: ['purple-600', 'purple-400'],\n builtin: ['purple-600', 'purple-400'],\n cdata: ['yellow-600', 'yellow-400'],\n char: ['yellow-600', 'yellow-400'],\n class: ['orange-600', 'orange-400'],\n className: ['cyan-600', 'cyan-400'],\n comment: ['gray-400', 'gray-600'],\n constant: ['purple-600', 'purple-400'],\n deleted: ['red-600', 'red-400'],\n entity: ['red-600', 'red-400'],\n function: ['green-600', 'green-400'],\n hexcode: ['blue-600', 'blue-400'],\n id: ['purple-600', 'purple-400'],\n important: ['purple-600', 'purple-400'],\n inserted: ['green-600', 'green-400'],\n keyword: ['magenta-600', 'magenta-400'],\n number: ['purple-600', 'purple-400'],\n operator: ['magenta-600', 'magenta-400'],\n prolog: ['gray-600', 'gray-400'],\n property: ['blue-600', 'blue-400'],\n pseudoClass: ['yellow-600', 'yellow-400'],\n pseudoElement: ['yellow-600', 'yellow-400'],\n punctuation: ['gray-600', 'gray-400'],\n regex: ['blue-600', 'blue-400'],\n selector: ['red-600', 'red-400'],\n string: ['yellow-600', 'yellow-400'],\n symbol: ['purple-600', 'purple-400'],\n tag: ['red-600', 'red-400'],\n unit: ['orange-600', 'orange-400'],\n url: ['red-600', 'red-400'],\n variable: ['red-600', 'red-400'],\n },\n },\n focusRing: ['blue-500', 'blue-500'],\n link: {\n fg: ['blue-600', 'blue-400'],\n },\n shadow: {\n outline: ['600/0.3', '500/0.4'],\n umbra: ['600/0.1', 'black/0.2'],\n penumbra: ['600/0.07', 'black/0.14'],\n ambient: ['600/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['200 70%', '800 35%'],\n to: ['200 40%', '800 50%'],\n },\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['50', '900'],\n 4: ['200', '700'],\n },\n border: {\n 0: ['100', '700 50%'],\n 4: ['300 75%', '500'],\n },\n fg: {\n 0: ['900', '100'],\n 4: ['700', '300'],\n },\n },\n 'primary': {\n _hue: 'blue',\n bg: {0: ['inherit', 'inherit']},\n },\n 'suggest': {\n _hue: 'purple',\n bg: {0: ['inherit', 'inherit']},\n },\n 'positive': {\n _hue: 'green',\n bg: {0: ['inherit', 'inherit']},\n },\n 'caution': {\n _hue: 'yellow',\n bg: {0: ['inherit', 'inherit']},\n },\n 'critical': {\n _hue: 'red',\n bg: {0: ['inherit', 'inherit']},\n },\n },\n solid: {\n '*': {\n bg: {\n 0: ['500', '400'],\n 4: ['600', '300'],\n },\n border: {\n 0: ['400', '200'],\n 4: ['500', '100'],\n },\n fg: {\n 0: ['white', 'black'],\n 4: ['200', '700'],\n },\n },\n 'default': {\n bg: {\n 0: ['800', '200'],\n 4: ['black', 'white'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['800', '200'],\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n },\n },\n 'transparent': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['gray-50', 'black'],\n 4: ['200', '800'],\n },\n border: {\n 0: ['200 50%', '800 50%'],\n 4: ['300', '600'],\n },\n fg: {\n 0: ['black', '100'],\n 4: ['700', '400'],\n },\n },\n },\n },\n },\n 'default': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['white', '950'],\n 4: ['200', '800'],\n },\n border: {\n 0: ['200 50%', '800 50%'],\n 4: ['300 75%', '600'],\n },\n fg: {\n 0: ['black', 'white'],\n 4: ['600', '400'],\n },\n },\n },\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n}\n","export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n return (records.filter(Boolean) as T[]).reduce(_merge, {} as T)\n}\n\nfunction _merge<T extends Record<string, any>>(acc: T, source: T): T {\n for (const key of Object.keys(source)) {\n const prevValue = acc[key]\n const nextValue = source[key]\n\n if (isRecord(prevValue) && isRecord(nextValue)) {\n ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n\nfunction isRecord(value: unknown): value is Record<string, any> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n","import {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n type ThemeColorCardToneKey,\n type ThemeColorStateToneKey,\n} from '../v2'\nimport type {CardColorTokens} from './color/card'\nimport type {ElementColorTokens} from './color/element'\nimport {merge} from './merge'\nimport type {PartialTokens, Tokens} from './tokens'\n\nconst defaultElementTokens: ElementColorTokens = {\n _hue: 'gray',\n bg: {\n 0: ['950', '50'],\n 4: ['700', '300'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['400', '600'],\n },\n fg: {\n 0: ['100', '900'],\n 4: ['400', '600'],\n },\n}\n\n/** @internal */\nexport function resolveTokens(tokens: PartialTokens<Tokens> = {}): Tokens {\n return {\n color: {\n '*': resolveCardColorTokens(tokens.color?.['*']),\n\n ...THEME_COLOR_CARD_TONES.reduce(\n (acc, tone) => {\n return {\n ...acc,\n [tone]: resolveCardColorTokens(merge(tokens.color?.['*'], tokens.color?.[tone])),\n }\n },\n {} as Record<ThemeColorCardToneKey, CardColorTokens>,\n ),\n },\n }\n}\n\nfunction resolveCardColorTokens(\n tokens: PartialTokens<CardColorTokens> | undefined,\n): CardColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n avatar: {\n gray: {\n _hue: tokens?.avatar?.gray?._hue ?? 'gray',\n bg: tokens?.avatar?.gray?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.gray?.fg ?? ['white', '900'],\n },\n blue: {\n _hue: tokens?.avatar?.blue?._hue ?? 'blue',\n bg: tokens?.avatar?.blue?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.blue?.fg ?? ['white', '900'],\n },\n purple: {\n _hue: tokens?.avatar?.purple?._hue ?? 'purple',\n bg: tokens?.avatar?.purple?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.purple?.fg ?? ['white', '900'],\n },\n magenta: {\n _hue: tokens?.avatar?.magenta?._hue ?? 'magenta',\n bg: tokens?.avatar?.magenta?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.magenta?.fg ?? ['white', '900'],\n },\n red: {\n _hue: tokens?.avatar?.red?._hue ?? 'red',\n bg: tokens?.avatar?.red?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.red?.fg ?? ['white', '900'],\n },\n orange: {\n _hue: tokens?.avatar?.orange?._hue ?? 'orange',\n bg: tokens?.avatar?.orange?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.orange?.fg ?? ['white', '900'],\n },\n yellow: {\n _hue: tokens?.avatar?.yellow?._hue ?? 'yellow',\n bg: tokens?.avatar?.yellow?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.yellow?.fg ?? ['white', '900'],\n },\n green: {\n _hue: tokens?.avatar?.green?._hue ?? 'green',\n bg: tokens?.avatar?.green?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.green?.fg ?? ['white', '900'],\n },\n cyan: {\n _hue: tokens?.avatar?.cyan?._hue ?? 'cyan',\n bg: tokens?.avatar?.cyan?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.cyan?.fg ?? ['white', '900'],\n },\n },\n backdrop: tokens?.backdrop ?? ['100', '900'],\n code: {\n bg: tokens?.code?.bg ?? ['50', '950'],\n fg: tokens?.code?.fg ?? ['600', '400'],\n token: {\n atrule: tokens?.code?.token?.atrule ?? ['600', '400'],\n attribute: tokens?.code?.token?.attribute ?? ['600', '400'],\n attrName: tokens?.code?.token?.attrName ?? ['600', '400'],\n attrValue: tokens?.code?.token?.attrValue ?? ['600', '400'],\n boolean: tokens?.code?.token?.boolean ?? ['600', '400'],\n builtin: tokens?.code?.token?.builtin ?? ['600', '400'],\n cdata: tokens?.code?.token?.cdata ?? ['600', '400'],\n char: tokens?.code?.token?.char ?? ['600', '400'],\n class: tokens?.code?.token?.class ?? ['600', '400'],\n className: tokens?.code?.token?.className ?? ['600', '400'],\n comment: tokens?.code?.token?.comment ?? ['400', '600'],\n constant: tokens?.code?.token?.constant ?? ['600', '400'],\n deleted: tokens?.code?.token?.deleted ?? ['600', '400'],\n doctype: tokens?.code?.token?.doctype ?? ['600', '400'],\n entity: tokens?.code?.token?.entity ?? ['600', '400'],\n function: tokens?.code?.token?.function ?? ['600', '400'],\n hexcode: tokens?.code?.token?.hexcode ?? ['600', '400'],\n id: tokens?.code?.token?.id ?? ['600', '400'],\n important: tokens?.code?.token?.important ?? ['600', '400'],\n inserted: tokens?.code?.token?.inserted ?? ['600', '400'],\n keyword: tokens?.code?.token?.keyword ?? ['600', '400'],\n number: tokens?.code?.token?.number ?? ['600', '400'],\n operator: tokens?.code?.token?.operator ?? ['600', '400'],\n prolog: tokens?.code?.token?.prolog ?? ['600', '400'],\n property: tokens?.code?.token?.property ?? ['600', '400'],\n pseudoClass: tokens?.code?.token?.pseudoClass ?? ['600', '400'],\n pseudoElement: tokens?.code?.token?.pseudoElement ?? ['600', '400'],\n punctuation: tokens?.code?.token?.punctuation ?? ['600', '400'],\n regex: tokens?.code?.token?.regex ?? ['600', '400'],\n selector: tokens?.code?.token?.selector ?? ['600', '400'],\n string: tokens?.code?.token?.string ?? ['600', '400'],\n symbol: tokens?.code?.token?.symbol ?? ['600', '400'],\n tag: tokens?.code?.token?.tag ?? ['600', '400'],\n unit: tokens?.code?.token?.unit ?? ['600', '400'],\n url: tokens?.code?.token?.url ?? ['600', '400'],\n variable: tokens?.code?.token?.variable ?? ['600', '400'],\n },\n },\n focusRing: tokens?.focusRing ?? ['500', '500'],\n link: {\n fg: tokens?.link?.fg ?? ['600', '400'],\n },\n shadow: {\n outline: tokens?.shadow?.outline ?? ['500', '500'],\n umbra: tokens?.shadow?.umbra ?? ['500', '500'],\n penumbra: tokens?.shadow?.penumbra ?? ['500', '500'],\n ambient: tokens?.shadow?.ambient ?? ['500', '500'],\n },\n skeleton: {\n from: tokens?.skeleton?.from ?? ['100', '900'],\n to: tokens?.skeleton?.to ?? ['50', '950'],\n },\n\n variant: {\n solid: {\n '*': resolveElementTokens(tokens?.variant?.solid?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.solid?.['*'], tokens?.variant?.solid?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n tinted: {\n '*': resolveElementTokens(tokens?.variant?.tinted?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.tinted?.['*'], tokens?.variant?.tinted?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n },\n }\n}\n\nfunction resolveElementTokens(tokens?: PartialTokens<ElementColorTokens>): ElementColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n bg: {\n 0: tokens?.bg?.[0] ?? defaultElementTokens.bg[0],\n 4: tokens?.bg?.[4] ?? defaultElementTokens.bg[4],\n },\n border: {\n 0: tokens?.border?.[0] ?? defaultElementTokens.border[0],\n 4: tokens?.border?.[4] ?? defaultElementTokens.border[4],\n },\n fg: {\n 0: tokens?.fg?.[0] ?? defaultElementTokens.fg[0],\n 4: tokens?.fg?.[4] ?? defaultElementTokens.fg[4],\n },\n }\n}\n","import {black, hues, white} from '@sanity/color'\n\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {defaultThemeFonts} from './defaultFonts'\nimport {defaultTokens} from './defaultTokens'\nimport {resolveTokens} from './resolveTokens'\nimport type {Radius, Space, Theme_v3, ThemeOptions} from './types'\n\n/** @public */\nexport function buildTheme_v3(options?: ThemeOptions): Theme_v3 {\n const {v2} = options ?? {}\n\n const tokens = resolveTokens(options?.tokens ?? defaultTokens)\n\n return {\n _version: 3,\n _tokens: tokens,\n avatar: v2?.avatar ?? defaultThemeConfig.avatar,\n button: v2?.button ?? defaultThemeConfig.button,\n card: v2?.card ?? defaultThemeConfig.card,\n color: tokens.color,\n container: v2?.container ?? defaultThemeConfig.container,\n font: defaultThemeFonts,\n input: v2?.input ?? defaultThemeConfig.input,\n layer: v2?.layer ?? defaultThemeConfig.layer,\n media: v2?.media ?? defaultThemeConfig.media,\n palette: {black, white, hues},\n // TODO\n radius: (v2?.radius ?? defaultThemeConfig.radius) as unknown as Record<Radius, number>,\n shadow: v2?.shadow ?? defaultThemeConfig.shadow,\n // TODO\n space: (v2?.space ?? defaultThemeConfig.space) as unknown as Record<Space, number>,\n }\n}\n","/** @public */\nexport const COLOR_VARIANTS = ['tinted', 'solid'] as const\n\n/** @public */\nexport const AVATAR_COLORS = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n","import {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorBadge_v2,\n type ThemeColorButton_v2,\n type ThemeColorButtonMode_v2,\n type ThemeColorButtonTone_v2,\n type ThemeColorCard_v2,\n type ThemeColorInput_v2,\n type ThemeColorInputMode_v2,\n type ThemeColorInputState_v2,\n type ThemeColorSelectable_v2,\n type ThemeColorSelectableTone_v2,\n type ThemeColorState_v2,\n type ThemeColorStateKey,\n type ThemeColorStateToneKey,\n} from '../v2'\nimport {\n _parseColorToken,\n type ColorToken,\n type ColorValue,\n type Hue,\n type ThemeColorCard_v3,\n type ThemeColorElement,\n type ThemeColorVariantKey,\n type ThemePalette_v3,\n} from '../v3'\n\nfunction renderColor(colorToken: ColorToken, options: {defaultHue: Hue; palette: ThemePalette_v3}) {\n const {defaultHue, palette} = options\n\n const color = _parseColorToken(colorToken, {defaultHue})\n\n if (color.type === 'color') {\n return palette[color.name].hex\n }\n\n if (color.type === 'tint') {\n return palette.hues[color.hue][color.tint].hex\n }\n\n return '#000'\n}\n\nexport function themeColor_v3_v2(options: {\n color: ThemeColorCard_v3\n dark: boolean\n palette: ThemePalette_v3\n}): ThemeColorCard_v2 {\n const {color, dark, palette} = options\n\n const i = dark ? 1 : 0\n\n const defaultHue = color._hue\n\n const colorOptions = {defaultHue, palette}\n\n return {\n _blend: 'screen',\n _dark: dark,\n ...buildColorState({\n cardColor: color,\n dark,\n palette,\n state: 'enabled',\n tone: 'default',\n variant: 'tinted',\n }),\n\n backdrop: renderColor(color.backdrop[i], colorOptions),\n button: THEME_COLOR_BUTTON_MODES.reduce<ThemeColorButton_v2>((modes, mode) => {\n modes[mode] = THEME_COLOR_STATE_TONES.reduce<ThemeColorButtonMode_v2>((tones, tone) => {\n tones[tone] = THEME_COLOR_STATES.reduce<ThemeColorButtonTone_v2>((states, state) => {\n states[state] = buildColorState({\n cardColor: color,\n dark,\n palette,\n state,\n tone,\n variant: mode === 'default' ? 'solid' : 'tinted',\n })\n\n if (mode === 'bleed') {\n states[state].border = 'transparent'\n }\n\n return states\n }, {} as ThemeColorButtonTone_v2)\n\n return tones\n }, {} as ThemeColorButtonMode_v2)\n\n return modes\n }, {} as ThemeColorButton_v2),\n\n focusRing: renderColor(color.focusRing[i], colorOptions),\n input: THEME_COLOR_INPUT_MODES.reduce<ThemeColorInput_v2>((modes, mode) => {\n modes[mode] = THEME_COLOR_INPUT_STATES.reduce<ThemeColorInputMode_v2>((states, state) => {\n states[state] = buildInputState(color.variant.tinted.default, {\n dark,\n defaultHue,\n palette,\n })\n\n return states\n }, {} as ThemeColorInputMode_v2)\n\n return modes\n }, {} as ThemeColorInput_v2),\n selectable: THEME_COLOR_STATE_TONES.reduce<ThemeColorSelectable_v2>((tones, tone) => {\n tones[tone] = THEME_COLOR_STATES.reduce<ThemeColorSelectableTone_v2>((states, state) => {\n states[state] = buildColorState({\n cardColor: color,\n dark,\n palette,\n state,\n tone,\n variant: 'tinted',\n })\n\n return states\n }, {} as ThemeColorSelectableTone_v2)\n\n return tones\n }, {} as ThemeColorSelectable_v2),\n\n shadow: {\n outline: renderColor(color.shadow.outline[i], colorOptions),\n umbra: renderColor(color.shadow.umbra[i], colorOptions),\n penumbra: renderColor(color.shadow.penumbra[i], colorOptions),\n ambient: renderColor(color.shadow.ambient[i], colorOptions),\n },\n\n syntax: {\n atrule: renderColor(color.code.token.atrule[i], colorOptions),\n attrName: renderColor(color.code.token.attrName[i], colorOptions),\n attrValue: renderColor(color.code.token.attrValue[i], colorOptions),\n attribute: renderColor(color.code.token.attribute[i], colorOptions),\n boolean: renderColor(color.code.token.boolean[i], colorOptions),\n builtin: renderColor(color.code.token.builtin[i], colorOptions),\n cdata: renderColor(color.code.token.cdata[i], colorOptions),\n char: renderColor(color.code.token.char[i], colorOptions),\n class: renderColor(color.code.token.class[i], colorOptions),\n className: renderColor(color.code.token.className[i], colorOptions),\n comment: renderColor(color.code.token.comment[i], colorOptions),\n constant: renderColor(color.code.token.constant[i], colorOptions),\n deleted: renderColor(color.code.token.deleted[i], colorOptions),\n doctype: renderColor(color.code.token.doctype[i], colorOptions),\n entity: renderColor(color.code.token.entity[i], colorOptions),\n function: renderColor(color.code.token.function[i], colorOptions),\n hexcode: renderColor(color.code.token.hexcode[i], colorOptions),\n id: renderColor(color.code.token.id[i], colorOptions),\n important: renderColor(color.code.token.important[i], colorOptions),\n inserted: renderColor(color.code.token.inserted[i], colorOptions),\n keyword: renderColor(color.code.token.keyword[i], colorOptions),\n number: renderColor(color.code.token.number[i], colorOptions),\n operator: renderColor(color.code.token.operator[i], colorOptions),\n prolog: renderColor(color.code.token.prolog[i], colorOptions),\n property: renderColor(color.code.token.property[i], colorOptions),\n pseudoClass: renderColor(color.code.token.pseudoClass[i], colorOptions),\n pseudoElement: renderColor(color.code.token.pseudoElement[i], colorOptions),\n punctuation: renderColor(color.code.token.punctuation[i], colorOptions),\n regex: renderColor(color.code.token.regex[i], colorOptions),\n selector: renderColor(color.code.token.selector[i], colorOptions),\n string: renderColor(color.code.token.string[i], colorOptions),\n symbol: renderColor(color.code.token.symbol[i], colorOptions),\n tag: renderColor(color.code.token.tag[i], colorOptions),\n unit: renderColor(color.code.token.unit[i], colorOptions),\n url: renderColor(color.code.token.url[i], colorOptions),\n variable: renderColor(color.code.token.variable[i], colorOptions),\n },\n }\n}\n\ntype ElementTokenIndex = 0 | 1 | 2 | 3 | 4\n\nconst stateShades: Record<\n ThemeColorStateKey,\n {\n bg: [ElementTokenIndex, ElementTokenIndex, ElementTokenIndex]\n border: [ElementTokenIndex, ElementTokenIndex, ElementTokenIndex]\n fg: [ElementTokenIndex, ElementTokenIndex, ElementTokenIndex]\n }\n> = {\n enabled: {\n bg: [0, 1, 2],\n border: [0, 1, 2],\n fg: [0, 1, 2],\n },\n hovered: {\n bg: [1, 2, 3],\n border: [1, 2, 3],\n fg: [1, 2, 3],\n },\n pressed: {\n bg: [2, 3, 4],\n border: [2, 3, 4],\n fg: [2, 3, 4],\n },\n selected: {\n bg: [3, 4, 4],\n border: [3, 4, 4],\n fg: [3, 4, 4],\n },\n disabled: {\n bg: [4, 4, 4],\n border: [4, 4, 4],\n fg: [4, 4, 4],\n },\n}\n\nfunction mix(\n tokens: {\n 0: ColorValue\n 4: ColorValue\n },\n index: ElementTokenIndex,\n options: {\n dark: boolean\n defaultHue: Hue\n palette: ThemePalette_v3\n },\n) {\n const {dark, defaultHue, palette} = options\n const colorOptions = {defaultHue, palette}\n const i = dark ? 1 : 0\n\n const from = renderColor(tokens[0][i], colorOptions)\n const to = renderColor(tokens[4][i], colorOptions)\n\n if (index === 0) {\n return from\n }\n\n if (index === 4) {\n return to\n }\n\n return `color-mix(in oklch, ${from}, ${to} ${index * 25}%)`\n}\n\nfunction buildColorState(options: {\n cardColor: ThemeColorCard_v3\n dark: boolean\n palette: ThemePalette_v3\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n variant: ThemeColorVariantKey\n}): ThemeColorState_v2 {\n const {cardColor, dark, palette, state, tone, variant} = options\n const color = cardColor.variant[variant][tone]\n\n const shades = stateShades[state]\n\n const defaultHue = cardColor._hue\n const colorOptions = {defaultHue, palette}\n\n const i = dark ? 1 : 0\n\n // cardColor.avatar.blue.bg\n\n return {\n accent: {\n fg: renderColor(color.fg[4][i], colorOptions),\n },\n\n avatar: {\n gray: {\n bg: renderColor(cardColor.avatar.gray.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.gray.fg[i], colorOptions),\n },\n blue: {\n bg: renderColor(cardColor.avatar.blue.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.blue.fg[i], colorOptions),\n },\n purple: {\n bg: renderColor(cardColor.avatar.purple.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.purple.fg[i], colorOptions),\n },\n magenta: {\n bg: renderColor(cardColor.avatar.magenta.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.magenta.fg[i], colorOptions),\n },\n red: {\n bg: renderColor(cardColor.avatar.red.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.red.fg[i], colorOptions),\n },\n orange: {\n bg: renderColor(cardColor.avatar.orange.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.orange.fg[i], colorOptions),\n },\n yellow: {\n bg: renderColor(cardColor.avatar.yellow.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.yellow.fg[i], colorOptions),\n },\n green: {\n bg: renderColor(cardColor.avatar.green.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.green.fg[i], colorOptions),\n },\n cyan: {\n bg: renderColor(cardColor.avatar.cyan.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.cyan.fg[i], colorOptions),\n },\n },\n\n // avatar: cardColor.avatar,\n badge: THEME_COLOR_STATE_TONES.reduce<ThemeColorBadge_v2>((tones, tone) => {\n tones[tone] = {\n bg: mix(color.bg, 1, {dark, defaultHue, palette}),\n\n fg: mix(color.fg, 1, {dark, defaultHue, palette}),\n\n dot: mix(color.fg, 3, {dark, defaultHue, palette}),\n\n icon: mix(color.fg, 3, {dark, defaultHue, palette}),\n }\n\n return tones\n }, {} as ThemeColorBadge_v2),\n\n bg: mix(color.bg, shades.bg[0], {dark, defaultHue, palette}),\n\n border: mix(color.border, shades.border[0], {dark, defaultHue, palette}),\n\n fg: mix(color.fg, shades.fg[0], {dark, defaultHue, palette}),\n code: {\n bg: mix(color.bg, shades.bg[1], {dark, defaultHue, palette}),\n\n fg: mix(color.fg, shades.fg[2], {dark, defaultHue, palette}),\n },\n\n icon: mix(color.fg, shades.fg[2], {dark, defaultHue, palette}),\n kbd: {\n bg: mix(color.bg, 0, {dark, defaultHue, palette}),\n\n fg: mix(color.fg, 0, {dark, defaultHue, palette}),\n\n border: mix(color.bg, 0, {dark, defaultHue, palette}),\n },\n link: {\n fg: mix(color.fg, shades.fg[2], {dark, defaultHue, palette}),\n },\n muted: {\n bg: mix(color.bg, shades.bg[1], {dark, defaultHue, palette}),\n\n fg: mix(color.fg, shades.fg[2], {dark, defaultHue, palette}),\n },\n\n skeleton: {\n from: renderColor(cardColor.skeleton.from[i], colorOptions),\n to: renderColor(cardColor.skeleton.to[i], colorOptions),\n },\n }\n}\n\nfunction buildInputState(\n colorElement: ThemeColorElement,\n options: {\n dark: boolean\n defaultHue: Hue\n palette: ThemePalette_v3\n },\n): ThemeColorInputState_v2 {\n const {dark, defaultHue, palette} = options\n const colorOptions = {defaultHue, palette}\n const i = dark ? 1 : 0\n\n return {\n bg: renderColor(colorElement.bg[0][i], colorOptions),\n\n border: renderColor(colorElement.bg[0][i], colorOptions),\n\n fg: renderColor(colorElement.fg[0][i], colorOptions),\n muted: {\n bg: renderColor(colorElement.bg[0][i], colorOptions),\n },\n\n placeholder: renderColor(colorElement.fg[0][i], colorOptions),\n }\n}\n","import type {RootTheme_v2} from '../v2'\nimport type {Theme_v3} from '../v3'\nimport {themeColor_v3_v2} from './themeColor_v3_v2'\n\nexport function v3_v2(theme_v3: Theme_v3): RootTheme_v2 {\n const palette = theme_v3.palette\n\n return {\n _version: 2,\n avatar: theme_v3.avatar,\n button: theme_v3.button,\n card: theme_v3.card,\n color: {\n dark: {\n transparent: themeColor_v3_v2({\n color: theme_v3.color.transparent,\n dark: true,\n palette,\n }),\n default: themeColor_v3_v2({\n color: theme_v3.color.default,\n dark: true,\n palette,\n }),\n neutral: themeColor_v3_v2({\n color: theme_v3.color.neutral,\n dark: true,\n palette,\n }),\n primary: themeColor_v3_v2({\n color: theme_v3.color.primary,\n dark: true,\n palette,\n }),\n suggest: themeColor_v3_v2({\n color: theme_v3.color.suggest,\n dark: true,\n palette,\n }),\n positive: themeColor_v3_v2({\n color: theme_v3.color.positive,\n dark: true,\n palette,\n }),\n caution: themeColor_v3_v2({\n color: theme_v3.color.caution,\n dark: true,\n palette,\n }),\n critical: themeColor_v3_v2({\n color: theme_v3.color.critical,\n dark: true,\n palette,\n }),\n },\n light: {\n transparent: themeColor_v3_v2({\n color: theme_v3.color.transparent,\n dark: false,\n palette,\n }),\n default: themeColor_v3_v2({\n color: theme_v3.color.default,\n dark: false,\n palette,\n }),\n neutral: themeColor_v3_v2({\n color: theme_v3.color.neutral,\n dark: false,\n palette,\n }),\n primary: themeColor_v3_v2({\n color: theme_v3.color.primary,\n dark: false,\n palette,\n }),\n suggest: themeColor_v3_v2({\n color: theme_v3.color.suggest,\n dark: false,\n palette,\n }),\n positive: themeColor_v3_v2({\n color: theme_v3.color.positive,\n dark: false,\n palette,\n }),\n caution: themeColor_v3_v2({\n color: theme_v3.color.caution,\n dark: false,\n palette,\n }),\n critical: themeColor_v3_v2({\n color: theme_v3.color.critical,\n dark: false,\n palette,\n }),\n },\n },\n container: theme_v3.container,\n // @ts-expect-error TODO: fix this\n font: theme_v3.font,\n input: theme_v3.input,\n layer: theme_v3.layer,\n media: theme_v3.media,\n radius: Object.values(theme_v3.radius),\n shadow: theme_v3.shadow,\n space: Object.values(theme_v3.space),\n }\n}\n","import {type RootTheme} from '../../types'\nimport {buildTheme_v3} from '../../v3'\nimport {v2_v0} from '../../versioning/v2_v0'\nimport {v3_v2} from '../../versioning/v3_v2'\nimport {type ThemeConfig} from '../config'\n\n/** @internal */\nexport function buildTheme(_config?: ThemeConfig): RootTheme {\n const v3 = buildTheme_v3({v2: _config})\n\n return v2_v0(v3_v2(v3), v3)\n}\n","import type {RGB, RGBA} from '../types'\n\nfunction mixChannel(b: number, s: number, weight: number) {\n const diff = s - b\n\n const delta = diff * weight\n\n return b + delta\n}\n\n/**\n * Apply the \\`mix\\` blend mode\n * @internal\n */\nexport function mix(b: RGB | RGBA, s: RGB | RGBA, weight: number): RGB {\n return {\n r: mixChannel(b.r, s.r, weight),\n g: mixChannel(b.g, s.g, weight),\n b: mixChannel(b.b, s.b, weight),\n }\n}\n","import type {RGB, RGBA} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: multiplyChannel(b.r / 255, s.r / 255) * 255,\n g: multiplyChannel(b.g / 255, s.g / 255) * 255,\n b: multiplyChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import type {RGB, RGBA} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: screenChannel(b.r / 255, s.r / 255) * 255,\n g: screenChannel(b.g / 255, s.g / 255) * 255,\n b: screenChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","export function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nexport function invlerp(x: number, y: number, a: number): number {\n return clamp((a - x) / (y - x))\n}\n\nexport function clamp(a: number, min = 0, max = 1): number {\n return Math.min(max, Math.max(min, a))\n}\n\nexport function range(x1: number, y1: number, x2: number, y2: number, a: number): number {\n return lerp(x2, y2, invlerp(x1, y1, a))\n}\n\nexport function round(value: number): number {\n return Math.round(value)\n}\n","import {clamp, round} from '../utils'\nimport type {HSL, RGB, RGBA} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbaToRGBA(rgba: string): RGBA {\n const values = rgba.replace(/rgba\\(|\\)/g, '').split(',')\n\n return {\n r: parseInt(values[0]),\n g: parseInt(values[1]),\n b: parseInt(values[2]),\n a: parseFloat(values[3]),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex(color: RGB | RGBA): string {\n const r = round(clamp(Math.round(color.r), 0, 255))\n const g = round(clamp(Math.round(color.g), 0, 255))\n const b = round(clamp(Math.round(color.b), 0, 255))\n\n if ('a' in color) {\n return `rgba(${r},${g},${b},${color.a})`\n }\n\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb, rgbaToRGBA} from './convert'\nimport type {HSL, RGB, RGBA} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB | RGBA {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n if (color.startsWith('rgba(')) {\n return rgbaToRGBA(color)\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from './parse'\nimport type {RGB, RGBA} from './types'\n\n/**\n * @internal\n * @deprecated Will be removed in next major version\n */\nexport function getContrastRatio(bg: string, fg: string): number {\n const rgb1 = parseColor(bg) // bg: RGB | RGBA, fg: RGB | RGBA\n const rgb2 = parseColor(fg)\n\n // convert the two colors from sRGB to linear-light RGB\n const c1 = rgb_lrgb(rgb1)\n const c2 = rgb_lrgb(rgb2)\n\n // compute the relative luminances\n const l1 = lrgb_luminance(c1)\n const l2 = lrgb_luminance(c2)\n\n // compute the contrast ratio\n return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05)\n}\n\nfunction rgb_lrgb({r, g, b}: RGB | RGBA): [number, number, number] {\n return [rgb_lrgb1(r / 255), rgb_lrgb1(g / 255), rgb_lrgb1(b / 255)]\n}\n\nfunction rgb_lrgb1(v: number) {\n return v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4\n}\n\nfunction lrgb_luminance([r, g, b]: [number, number, number]) {\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n","import {parseColor} from './parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n if (typeof color === 'string' && color.startsWith('var(')) {\n return `color-mix(in srgb, transparent, ${color} ${a * 100}%)`\n }\n\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {COLOR_HUES} from '@sanity/color'\n\n/** @public */\nexport const THEME_COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const THEME_COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n\n/** @public */\nexport const THEME_COLOR_CARD_TONES = [\n 'transparent',\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATE_TONES = [\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_MODES = ['default', 'invalid'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_STATES = ['enabled', 'hovered', 'readOnly', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_AVATAR_COLORS = COLOR_HUES\n","import {COLOR_HUES, COLOR_TINTS, type ColorHueKey, type ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport type {ThemeColorBlendModeKey, ThemeColorButtonModeKey} from './_system'\n\n/** @internal */\nexport function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey {\n return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","import type {Hue, Tint} from '../../v3'\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorBlendModeKey,\n} from '../color'\n\n/** @public */\nexport const COLOR_CONFIG_STATE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'accent/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'skeleton/from',\n 'skeleton/to',\n 'status/dot',\n 'status/icon',\n] as const\n\n/** @public */\nexport type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_KEYS = [\n ...COLOR_CONFIG_STATE_KEYS,\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'shadow/outline',\n 'shadow/umbra',\n 'shadow/penumbra',\n 'shadow/ambient',\n] as const\n\n/** @public */\nexport type ColorConfigCardKey = (typeof COLOR_CONFIG_CARD_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_BLEND_KEYS = ['_blend'] as const\n\n/** @public */\nexport type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number]\n\n/** @public */\nexport type ColorConfigOpacityValue = `0` | `0.${number}` | `1`\n\n/** @public */\nexport type ColorConfigValue =\n | `black`\n | `white`\n | `black/${ColorConfigOpacityValue}`\n | `white/${ColorConfigOpacityValue}`\n | `${Hue}`\n | `${Hue} ${number}%`\n | `${Hue}/${Tint}`\n | `${Hue}/${Tint} ${number}%`\n | `${Hue}/${Tint}/${ColorConfigOpacityValue}`\n | `${Tint}`\n | `${Tint} ${number}%`\n | `${Tint}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n type ColorConfigBlendKey,\n type ColorConfigCardKey,\n type ColorConfigCardTone,\n type ColorConfigOpacityValue,\n type ColorConfigStateKey,\n type ColorConfigStateTone,\n} from './system'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\n return COLOR_CONFIG_BLEND_KEYS.includes(str as ColorConfigBlendKey)\n}\n\n/** @internal */\nexport function isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../color'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport type {TokenValueNode} from './types'\n\nfunction isColorMixPercentValue(str: string): str is `${number}%` {\n return /^\\d+%$/.test(str)\n}\n\n/** @internal */\nexport function parseTokenValue(str: string): TokenValueNode | undefined {\n const segments = str.split('/')\n\n let nextSegment = segments.shift() || ''\n\n const [segment0, segment0mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment0)) {\n const tint = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n tint,\n }\n }\n\n if (isColorValue(segment0)) {\n const key = segment0 as 'black' | 'white'\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n key,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n key,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key,\n }\n }\n\n if (isColorHueKey(segment0)) {\n const hue = segment0\n\n nextSegment = segments.shift() || ''\n\n const [segment1, segment1mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment1)) {\n const tint = segment1\n const segment2 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment1mix)) {\n const mix = Number(segment1mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n hue,\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment2)) {\n const opacity = Number(segment2)\n\n return {\n type: 'color',\n hue,\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n hue,\n tint,\n }\n }\n\n return {\n type: 'hue',\n value: hue,\n }\n }\n\n if (isColorBlendModeValue(segment0)) {\n const value = segment0\n\n return {\n type: 'blendMode',\n value,\n }\n }\n\n return undefined\n}\n","import type {Theme} from '../types'\nimport type {Theme_v2} from '../v2'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<Theme, Theme_v2>()\n\n/** @public */\nexport function getTheme_v2(theme: Theme): Theme_v2 {\n if (theme.sanity.v2?._resolved) return theme.sanity.v2\n\n const cached_v2 = cache.get(theme)\n\n if (cached_v2) return cached_v2\n\n const v2: Theme_v2 = {\n _version: 2,\n _resolved: true,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...theme.sanity.avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...theme.sanity.button,\n },\n card: defaultThemeConfig.card,\n color: themeColor_v0_v2(theme.sanity.color),\n container: theme.sanity.container,\n font: theme.sanity.fonts,\n input: {\n ...defaultThemeConfig.input,\n ...theme.sanity.input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...theme.sanity.input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...theme.sanity.input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...theme.sanity.input.switch,\n },\n },\n layer: theme.sanity.layer ?? defaultThemeConfig.layer,\n media: theme.sanity.media,\n radius: theme.sanity.radius,\n shadow: theme.sanity.shadows,\n space: theme.sanity.space,\n style: theme.sanity.styles,\n }\n\n cache.set(theme, v2)\n\n return v2\n}\n"],"names":["defaultThemeConfig","avatar","sizes","distance","size","focusRing","offset","width","button","textWeight","border","BORDER_WIDTH","card","shadow","outline","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","umbra","penumbra","ambient","space","input","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","is_v2","themeProp","_version","themeColor_v0_v2_9","color","badge","colors","neutral","default","suggest","primary","bleed","ghost","selectable","cache","WeakMap","themeColor_v0_v2","color_v0","cached_v2","get","base","stateThemeColor_v0_v2","enabled","color_v2","_blend","dark","_dark","accent","backdrop","bg","stateTonesThemeColor_v0_v2","code","fg","icon","muted","inputStatesThemeColor_v0_v2","invalid","kbd","link","bg2","skeleton","from","to","syntax","set","v0","t","hovered","pressed","selected","disabled","positive","caution","critical","state","gray","spot","blue","purple","magenta","red","orange","yellow","green","cyan","dot","transparent","states","inputStateThemeColor_v0_v2","readOnly","placeholder","v0_v2","v2","fonts","font","shadows","styles","style","light","v2_v0","v3","cachedTheme","themeColor_v2_v0","inputStatesThemeColor_v2_v0","solid","inputStateThemeColor_v2_v0","Map","getScopedTheme","scheme","tone","_getCachedTheme","colorScheme_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","theme","sanity","_resolved","_setCachedTheme","rootTheme","schemeCache","toneCache","has","createSelectableTones","opts","_createSelectableStates","createSolidTones","name","createButtonTones","mode","createButtonModes","createCardStates","black","white","lightest","lighter","darker","darkest","spots","tones","defaultOpts","key","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","createInputModes","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","AVATAR_SIZE","CONTAINER_SCALE","CONTAINER","RADIUS","SPACE","FONT_CODE_SIZE","FONT_HEADING_SIZE","FONT_LABEL_SIZE","FONT_TEXT_SIZE","SHADOW","HUES","TINTS","RE_PERCENTAGE","RE_OPACITY","_parseColorToken","str","options","defaultHue","cursor","parseColorNode","_consume","s","startsWith","length","_peek","v","type","opacity","parseOpacity","mix","parseMix","hue","String","Error","tint","parseTint","Number","slice","includes","match","exec","parseFloat","ignoreWhitespace","defaultThemeFonts","family","weight","regular","medium","semibold","bold","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","customIconSize","heading","featureSettings","label","defaultTokens","token","variant","tinted","_hue","merge","records","filter","Boolean","reduce","_merge","acc","source","Object","keys","prevValue","nextValue","isRecord","value","Array","isArray","defaultElementTokens","resolveTokens","tokens","resolveCardColorTokens","THEME_COLOR_CARD_TONES","resolveElementTokens","THEME_COLOR_STATE_TONES","buildTheme_v3","_tokens","palette","hues","COLOR_VARIANTS","AVATAR_COLORS","renderColor","colorToken","hex","themeColor_v3_v2","i","colorOptions","buildColorState","cardColor","THEME_COLOR_BUTTON_MODES","modes","THEME_COLOR_STATES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","buildInputState","stateShades","index","shades","colorElement","v3_v2","theme_v3","values","buildTheme","_config","mixChannel","b","delta","r","g","multiplyChannel","multiply","screenChannel","screen","clamp","a","min","max","Math","round","hexToRgb","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","replace","split","rgbToHex","toString","rgbToHsl","cmin","cmax","h","l","abs","toFixed","hslToRgb","hsl","c","x","m","HEX_CHARS","HSL_RE","isHexChars","indexOf","isHex","parseHsl","res","parseColor","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","rgb","THEME_COLOR_SCHEMES","THEME_COLOR_BLEND_MODES","THEME_COLOR_AVATAR_COLORS","COLOR_HUES","isColorBlendModeValue","isColorHueKey","isColorTintKey","COLOR_TINTS","isColorButtonMode","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_AVATAR_COLORS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_TONES","COLOR_CONFIG_STATES","COLOR_CONFIG_INPUT_MODES","COLOR_CONFIG_INPUT_STATES","isColorConfigBaseTone","isColorConfigBaseKey","isColorConfigStateKey","isColorConfigStateTone","isColorConfigBlendKey","isColorValue","isColorOpacityValue","test","isColorMixPercentValue","parseTokenValue","segments","nextSegment","shift","segment0","segment0mix","segment1","segment1mix","segment2","getTheme_v2"],"mappings":"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"}
1
+ {"version":3,"file":"theme.cjs","sources":["../src/theme/v2/defaults/config.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/themeColor_v2_v2_9.ts","../src/theme/versioning/themeColor_v0_v2.ts","../src/theme/versioning/v0_v2.ts","../src/theme/versioning/v2_v0.ts","../src/theme/getScopedTheme.ts","../src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/v2/build/_deprecated/color/button/createButtonTones.ts","../src/theme/v2/build/_deprecated/color/button/createButtonModes.ts","../src/theme/v2/build/_deprecated/color/card/createCardStates.ts","../src/theme/v2/build/_deprecated/color/defaults.ts","../src/theme/v2/build/_deprecated/color/input/createInputModes.ts","../src/theme/v2/build/_deprecated/color/muted/createMuted.ts","../src/theme/v2/build/_deprecated/color/spot/createSpot.ts","../src/theme/v2/build/_deprecated/color/factory.ts","../src/theme/v3/_constants.ts","../src/theme/v3/palette/constants.ts","../src/theme/v3/_parseColorToken.ts","../src/theme/v3/defaultFonts.ts","../src/theme/v3/defaultTokens.ts","../src/theme/v3/merge.ts","../src/theme/v3/resolveTokens.ts","../src/theme/v3/buildTheme_v3.ts","../src/theme/v3/color/_constants.ts","../src/theme/versioning/themeColor_v3_v2.ts","../src/theme/versioning/v3_v2.ts","../src/theme/v2/build/buildTheme.ts","../src/theme/v2/build/lib/color-fns/blend/mix.ts","../src/theme/v2/build/lib/color-fns/blend/multiply.ts","../src/theme/v2/build/lib/color-fns/blend/screen.ts","../src/theme/v2/build/lib/utils.ts","../src/theme/v2/build/lib/color-fns/convert.ts","../src/theme/v2/build/lib/color-fns/parse.ts","../src/theme/v2/build/lib/color-fns/contrastRatio.ts","../src/theme/v2/build/lib/color-fns/rgba.ts","../src/theme/v2/color/_constants.ts","../src/theme/v2/color/_helpers.ts","../src/theme/v2/config/system.ts","../src/theme/v2/config/helpers.ts","../src/theme/v2/config/tokens/parseTokenValue.ts","../src/theme/versioning/getTheme_v2.ts"],"sourcesContent":["import type {RootTheme_v2} from '../theme'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultThemeConfig: Omit<RootTheme_v2, 'color' | 'font'> = {\n _version: 2,\n avatar: {\n sizes: [\n {distance: -4, size: 19},\n {distance: -4, size: 25},\n {distance: -8, size: 33},\n {distance: -12, size: 49},\n ],\n focusRing: {offset: 1, width: 1},\n },\n button: {\n textWeight: 'medium',\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n },\n card: {\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n shadow: {outline: OUTLINE_WIDTH},\n },\n container: [320, 640, 960, 1280, 1600, 1920],\n media: [360, 600, 900, 1200, 1800, 2400],\n layer: {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n },\n radius: [0, 1, 3, 7, 11, 15, 23, 43, 75, 127],\n shadow: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -2], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 1]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n border: {\n width: BORDER_WIDTH,\n },\n checkbox: {\n size: 17,\n focusRing: {offset: -1, width: 1},\n },\n radio: {\n size: 17,\n markSize: 9,\n focusRing: {offset: -1, width: 1},\n },\n switch: {\n width: 25,\n height: 17,\n padding: 5,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n focusRing: {offset: 1, width: 1},\n },\n select: {\n focusRing: {offset: -1, width: 1},\n },\n text: {\n focusRing: {offset: -1, width: 1},\n },\n },\n style: {\n button: {\n root: {\n transition: 'background-color 100ms,border-color 100ms,color 100ms',\n },\n },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n },\n}\n","import type {RootTheme} from '../types'\nimport type {RootTheme_v2} from '../v2'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import type {ThemeColorCard_v2} from '../v2'\n\n/**\n * Apply `neutral` and `suggest` if they're not already part of the color object,\n * as this was introduced in v2.9, but is not compatible with v2.0.\n *\n * @param color - The color object to upgrade\n * @returns The upgraded color object. Returns as-is if already upgraded.\n * @internal\n */\nexport function themeColor_v0_v2_9(color: ThemeColorCard_v2): ThemeColorCard_v2 {\n if ('neutral' in color.badge) {\n return color // Already at >= v2.9\n }\n\n // TypeScript narrows to `never` because the above should always be true\n const colors = color as ThemeColorCard_v2\n\n return {\n ...colors,\n badge: {\n ...colors.badge,\n neutral: colors.badge.default,\n suggest: colors.badge.primary,\n },\n button: {\n bleed: {\n ...colors.button.bleed,\n neutral: colors.button.bleed.default,\n suggest: colors.button.bleed.primary,\n },\n default: {\n ...colors.button.default,\n neutral: colors.button.default.default,\n suggest: colors.button.default.primary,\n },\n ghost: {\n ...colors.button.ghost,\n neutral: colors.button.ghost.default,\n suggest: colors.button.ghost.primary,\n },\n },\n selectable: {\n ...colors.selectable,\n neutral: colors.selectable.default,\n suggest: colors.selectable.primary,\n },\n }\n}\n","import type {\n ThemeColor,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorInputStates,\n ThemeColorMuted,\n} from '../v0'\nimport type {\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorSelectable_v2,\n ThemeColorState_v2,\n} from '../v2'\n\nconst cache = new WeakMap<ThemeColor, ThemeColorCard_v2>()\n\n/** @internal */\nexport function themeColor_v0_v2(color_v0: ThemeColor): ThemeColorCard_v2 {\n const cached_v2 = cache.get(color_v0)\n\n if (cached_v2) return cached_v2\n\n const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled)\n\n const color_v2: ThemeColorCard_v2 = {\n _blend: color_v0._blend || (color_v0.dark ? 'screen' : 'multiply'),\n _dark: color_v0.dark,\n accent: base.accent,\n avatar: base.avatar,\n backdrop: color_v0.base.shadow.ambient,\n badge: base.badge,\n bg: color_v0.base.bg,\n border: color_v0.base.border,\n button: {\n default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),\n ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),\n bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed),\n },\n code: base.code,\n fg: color_v0.base.fg,\n focusRing: color_v0.base.focusRing,\n icon: base.muted.fg,\n input: {\n default: inputStatesThemeColor_v0_v2(color_v0.input.default),\n invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid),\n },\n kbd: base.kbd,\n link: base.link,\n muted: {\n ...base.muted,\n bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg,\n },\n selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),\n shadow: color_v0.base.shadow,\n skeleton: {\n from: color_v0.skeleton?.from || color_v0.base.border,\n to: color_v0.skeleton?.to || color_v0.base.border,\n },\n syntax: color_v0.syntax,\n }\n\n cache.set(color_v0, color_v2)\n\n return color_v2\n}\n\nfunction stateTonesThemeColor_v0_v2(\n v0: ThemeColor,\n t: Omit<ThemeColorMuted, 'transparent'>,\n): ThemeColorSelectable_v2 {\n return {\n default: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n neutral: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n primary: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n suggest: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n positive: {\n enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),\n selected: stateThemeColor_v0_v2(v0, t.positive.selected),\n disabled: stateThemeColor_v0_v2(v0, t.positive.disabled),\n },\n caution: {\n enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),\n selected: stateThemeColor_v0_v2(v0, t.caution.selected),\n disabled: stateThemeColor_v0_v2(v0, t.caution.disabled),\n },\n critical: {\n enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),\n selected: stateThemeColor_v0_v2(v0, t.critical.selected),\n disabled: stateThemeColor_v0_v2(v0, t.critical.disabled),\n },\n }\n}\n\nfunction stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): ThemeColorState_v2 {\n return {\n ...state,\n avatar: {\n gray: {\n bg: v0.spot.gray,\n fg: v0.base.bg,\n },\n blue: {\n bg: v0.spot.blue,\n fg: v0.base.bg,\n },\n purple: {\n bg: v0.spot.purple,\n fg: v0.base.bg,\n },\n magenta: {\n bg: v0.spot.magenta,\n fg: v0.base.bg,\n },\n red: {\n bg: v0.spot.red,\n fg: v0.base.bg,\n },\n orange: {\n bg: v0.spot.orange,\n fg: v0.base.bg,\n },\n yellow: {\n bg: v0.spot.yellow,\n fg: v0.base.bg,\n },\n green: {\n bg: v0.spot.green,\n fg: v0.base.bg,\n },\n cyan: {\n bg: v0.spot.cyan,\n fg: v0.base.bg,\n },\n },\n badge: {\n default: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n dot: v0.muted.default.enabled.muted.fg,\n icon: v0.muted.default.enabled.muted.fg,\n },\n neutral: {\n bg: v0.muted.transparent.enabled.bg,\n fg: v0.muted.transparent.enabled.fg,\n dot: v0.muted.transparent.enabled.muted.fg,\n icon: v0.muted.transparent.enabled.muted.fg,\n },\n primary: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n suggest: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n positive: {\n bg: v0.muted.positive.enabled.bg,\n fg: v0.muted.positive.enabled.fg,\n dot: v0.muted.positive.enabled.muted.fg,\n icon: v0.muted.positive.enabled.muted.fg,\n },\n caution: {\n bg: v0.muted.caution.enabled.bg,\n fg: v0.muted.caution.enabled.fg,\n dot: v0.muted.caution.enabled.muted.fg,\n icon: v0.muted.caution.enabled.muted.fg,\n },\n critical: {\n bg: v0.muted.critical.enabled.bg,\n fg: v0.muted.critical.enabled.fg,\n dot: v0.muted.critical.enabled.muted.fg,\n icon: v0.muted.critical.enabled.muted.fg,\n },\n },\n kbd: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n border: v0.muted.default.enabled.border,\n },\n muted: {\n ...v0.muted.default.enabled.muted,\n bg: state.bg2 || state.bg,\n },\n skeleton: {\n from: state.skeleton?.from || state.border,\n to: state.skeleton?.to || state.border,\n },\n }\n}\n\nfunction inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {\n return {\n enabled: inputStateThemeColor_v0_v2(states.enabled),\n disabled: inputStateThemeColor_v0_v2(states.disabled),\n readOnly: inputStateThemeColor_v0_v2(states.readOnly),\n hovered: inputStateThemeColor_v0_v2(states.hovered),\n }\n}\n\nfunction inputStateThemeColor_v0_v2(state: ThemeColorInputState): ThemeColorInputState_v2 {\n return {\n bg: state.bg,\n border: state.border,\n fg: state.fg,\n muted: {\n bg: state.bg2,\n },\n placeholder: state.placeholder,\n }\n}\n","import type {RootTheme} from '../types'\nimport type {RootTheme_v2} from '../v2'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<RootTheme, RootTheme_v2>()\n\n/** @internal */\nexport function v0_v2(v0: RootTheme): RootTheme_v2 {\n if (v0.v2) return v0.v2\n\n const cached_v2 = cache.get(v0)\n\n if (cached_v2) return cached_v2\n\n const {\n avatar,\n button,\n color,\n container,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusRing: _unused_focusRing,\n fonts: font,\n input,\n layer,\n media,\n radius,\n shadows: shadow,\n space,\n styles: style,\n } = v0\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...button,\n },\n card: defaultThemeConfig.card,\n color: {\n light: {\n transparent: themeColor_v0_v2(color.light.transparent),\n default: themeColor_v0_v2(color.light.default),\n neutral: themeColor_v0_v2(color.light.transparent),\n primary: themeColor_v0_v2(color.light.primary),\n suggest: themeColor_v0_v2(color.light.primary),\n positive: themeColor_v0_v2(color.light.positive),\n caution: themeColor_v0_v2(color.light.caution),\n critical: themeColor_v0_v2(color.light.critical),\n },\n dark: {\n transparent: themeColor_v0_v2(color.dark.transparent),\n default: themeColor_v0_v2(color.dark.default),\n neutral: themeColor_v0_v2(color.dark.transparent),\n primary: themeColor_v0_v2(color.dark.primary),\n suggest: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import type {RootTheme} from '../types'\nimport type {ThemeColor, ThemeColorInputState, ThemeColorInputStates} from '../v0'\nimport type {\n RootTheme_v2,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../v2'\nimport type {Theme_v3} from '../v3'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2, v3?: Theme_v3): RootTheme {\n const cachedTheme = cache.get(v2)\n\n if (cachedTheme) return cachedTheme\n\n const {\n avatar,\n button,\n color,\n container,\n font: fonts,\n input,\n media,\n radius,\n shadow: shadows,\n space,\n style: styles,\n } = v2\n\n return {\n _version: 0,\n avatar,\n button,\n container,\n color: {\n light: {\n transparent: themeColor_v2_v0(color.light.transparent),\n default: themeColor_v2_v0(color.light.default),\n primary: themeColor_v2_v0(color.light.primary),\n positive: themeColor_v2_v0(color.light.positive),\n caution: themeColor_v2_v0(color.light.caution),\n critical: themeColor_v2_v0(color.light.critical),\n },\n dark: {\n transparent: themeColor_v2_v0(color.dark.transparent),\n default: themeColor_v2_v0(color.dark.default),\n primary: themeColor_v2_v0(color.dark.primary),\n positive: themeColor_v2_v0(color.dark.positive),\n caution: themeColor_v2_v0(color.dark.caution),\n critical: themeColor_v2_v0(color.dark.critical),\n },\n },\n focusRing: input.text.focusRing,\n fonts,\n input,\n media,\n radius,\n shadows,\n space,\n styles,\n\n v2,\n v3,\n }\n}\n\nfunction themeColor_v2_v0(color_v2: ThemeColorCard_v2): ThemeColor {\n return {\n base: {\n bg: color_v2.bg,\n fg: color_v2.fg,\n border: color_v2.border,\n focusRing: color_v2.focusRing,\n shadow: color_v2.shadow,\n },\n button: color_v2.button,\n card: color_v2.selectable.default,\n dark: color_v2._dark,\n input: {\n default: inputStatesThemeColor_v2_v0(color_v2.input.default),\n invalid: inputStatesThemeColor_v2_v0(color_v2.input.invalid),\n },\n muted: {\n ...color_v2.button.ghost,\n transparent: color_v2.button.ghost.default,\n },\n solid: {\n ...color_v2.button.default,\n transparent: color_v2.button.default.default,\n },\n selectable: color_v2.selectable,\n spot: {\n gray: color_v2.avatar.gray.bg,\n blue: color_v2.avatar.blue.bg,\n purple: color_v2.avatar.purple.bg,\n magenta: color_v2.avatar.magenta.bg,\n red: color_v2.avatar.red.bg,\n orange: color_v2.avatar.orange.bg,\n yellow: color_v2.avatar.yellow.bg,\n green: color_v2.avatar.green.bg,\n cyan: color_v2.avatar.cyan.bg,\n },\n syntax: color_v2.syntax,\n }\n}\n\nfunction inputStatesThemeColor_v2_v0(t: ThemeColorInputMode_v2): ThemeColorInputStates {\n return {\n enabled: inputStateThemeColor_v2_v0(t.enabled),\n disabled: inputStateThemeColor_v2_v0(t.disabled),\n readOnly: inputStateThemeColor_v2_v0(t.readOnly),\n hovered: inputStateThemeColor_v2_v0(t.hovered),\n }\n}\n\nfunction inputStateThemeColor_v2_v0(t: ThemeColorInputState_v2): ThemeColorInputState {\n return {\n bg: t.bg,\n bg2: t.muted.bg,\n border: t.border,\n fg: t.fg,\n placeholder: t.placeholder,\n }\n}\n","import type {RootTheme, Theme} from './types'\nimport type {ThemeColor} from './v0'\nimport type {RootTheme_v2, ThemeColorCardToneKey, ThemeColorSchemeKey} from './v2'\nimport {defaultThemeConfig} from './v2/defaults/config'\nimport {is_v2} from './versioning/is_v2'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\nimport {v0_v2} from './versioning/v0_v2'\nimport {v2_v0} from './versioning/v2_v0'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const color_v2_9 = themeColor_v0_v2_9(color_v2)\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n },\n }\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n","import type {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import type {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import type {\n ThemeColorBase,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorButtonModeKey} from '../../../../color'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import type {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import type {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorName,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import type {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n icon: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n icon: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n icon: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n icon: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n icon: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import type {\n ThemeColorBase,\n ThemeColorInput,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import type {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import type {ThemeColorBase, ThemeColorSpot} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import type {\n ThemeColor,\n ThemeColorBase,\n ThemeColorButtonStates,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSpotKey,\n ThemeColorToneKey,\n} from '../../../../v0'\nimport type {ThemeColorButtonModeKey, ThemeColorSyntax} from '../../../color'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorName\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorGenericState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","/** @public */\nexport const AVATAR_SIZE = [0, 1, 2, 3] as const\n\n/** @public */\nexport const CONTAINER_SCALE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const CONTAINER = [...CONTAINER_SCALE, 'auto'] as const\n\n/** @public */\nexport const RADIUS = [0, 1, 2, 3, 4, 5, 6] as const\n\n/** @public */\nexport const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\n\n/** @public */\nexport const FONT_CODE_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const FONT_HEADING_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_LABEL_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_TEXT_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const SHADOW = [0, 1, 2, 3, 4, 5] as const\n","/** @public */\nexport const HUES = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n\n/** @public */\nexport const TINTS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const\n","import type {ColorToken} from './color'\nimport {type Hue, HUES, type Tint, TINTS} from './palette'\n\nconst RE_PERCENTAGE = /^([0-9]+)%/\nconst RE_OPACITY = /^(1|0\\.[0-9]+)?/\n\n/** @internal */\nexport interface ColorNode {\n type: 'color'\n name: 'black' | 'white'\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorTintNode {\n type: 'tint'\n hue: Hue\n tint: Tint\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorInheritNode {\n type: 'inherit'\n}\n\n/** @internal */\nexport type TokenizeColorResult = ColorNode | ColorTintNode | ColorInheritNode\n\n/** @internal */\nexport function _parseColorToken(str: ColorToken, options: {defaultHue: Hue}): TokenizeColorResult {\n const {defaultHue} = options\n\n let cursor = 0\n\n return parseColorNode()\n\n function _consume(s: string) {\n if (str.startsWith(s, cursor)) {\n cursor += s.length\n\n return s\n }\n\n return undefined\n }\n\n function _peek() {\n return str[cursor]\n }\n\n function parseColorNode(): ColorNode | ColorTintNode | ColorInheritNode {\n ignoreWhitespace()\n\n let v = _consume('black') || _consume('white')\n\n if (v) {\n return {\n type: 'color',\n name: v as 'black' | 'white',\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n for (const hue of HUES) {\n v = _consume(String(hue))\n\n if (v) {\n if (_peek() !== '-') {\n throw new Error(`Expected \"-\" after hue key`)\n }\n\n cursor += 1\n\n const tint = parseTint()\n\n if (!tint) {\n throw new Error(`Expected tint after hue`)\n }\n\n return {\n type: 'tint',\n hue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n }\n\n const tint = parseTint()\n\n if (tint) {\n return {\n type: 'tint',\n hue: defaultHue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n if (str === 'inherit') {\n return {\n type: 'inherit',\n }\n }\n\n throw new Error(`Invalid color: ${str}`)\n }\n\n function parseTint() {\n ignoreWhitespace()\n\n let v = Number(str.slice(cursor, cursor + 3)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 3\n\n return v\n }\n\n v = Number(str.slice(cursor, cursor + 2)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 2\n\n return v\n }\n\n return undefined\n }\n\n function parseMix() {\n ignoreWhitespace()\n\n const match = RE_PERCENTAGE.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1]) / 100\n }\n\n return undefined\n }\n\n function parseOpacity() {\n ignoreWhitespace()\n\n if (_peek() === '/') {\n cursor += 1\n\n const match = RE_OPACITY.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1])\n }\n\n cursor -= 1\n }\n\n return undefined\n }\n\n function ignoreWhitespace() {\n while (_peek() === ' ') {\n cursor++\n }\n }\n}\n","import type {ThemeFonts_v3} from './types'\n\nexport const defaultThemeFonts: ThemeFonts_v3 = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n scale: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n featureSettings: `'liga' 1, 'calt' 1, 'ss01' 1, 'ss03' 1, 'zero' 1`,\n weight: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n scale: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: -0.25,\n customIconSize: 28,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n customIconSize: 36,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n customIconSize: 44,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\n customIconSize: 48,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weight: {\n regular: 500,\n medium: 600,\n semibold: 700,\n bold: 800,\n },\n scale: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n customIconSize: 8,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n customIconSize: 10,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n customIconSize: 12,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n customIconSize: 14,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n customIconSize: 16,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n customIconSize: 18,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n scale: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\n },\n ],\n },\n}\n","import type {PartialTokens, Tokens} from './tokens'\n\n/** @internal */\nexport const defaultTokens: PartialTokens<Tokens> = {\n color: {\n '*': {\n backdrop: ['gray-100/0.5', 'black/0.5'],\n code: {\n bg: ['50', '950'],\n fg: ['700', '300'],\n token: {\n atrule: ['purple-600', 'purple-400'],\n attrName: ['green-600', 'green-400'],\n attrValue: ['yellow-600', 'yellow-400'],\n attribute: ['yellow-600', 'yellow-400'],\n boolean: ['purple-600', 'purple-400'],\n builtin: ['purple-600', 'purple-400'],\n cdata: ['yellow-600', 'yellow-400'],\n char: ['yellow-600', 'yellow-400'],\n class: ['orange-600', 'orange-400'],\n className: ['cyan-600', 'cyan-400'],\n comment: ['gray-400', 'gray-600'],\n constant: ['purple-600', 'purple-400'],\n deleted: ['red-600', 'red-400'],\n entity: ['red-600', 'red-400'],\n function: ['green-600', 'green-400'],\n hexcode: ['blue-600', 'blue-400'],\n id: ['purple-600', 'purple-400'],\n important: ['purple-600', 'purple-400'],\n inserted: ['green-600', 'green-400'],\n keyword: ['magenta-600', 'magenta-400'],\n number: ['purple-600', 'purple-400'],\n operator: ['magenta-600', 'magenta-400'],\n prolog: ['gray-600', 'gray-400'],\n property: ['blue-600', 'blue-400'],\n pseudoClass: ['yellow-600', 'yellow-400'],\n pseudoElement: ['yellow-600', 'yellow-400'],\n punctuation: ['gray-600', 'gray-400'],\n regex: ['blue-600', 'blue-400'],\n selector: ['red-600', 'red-400'],\n string: ['yellow-600', 'yellow-400'],\n symbol: ['purple-600', 'purple-400'],\n tag: ['red-600', 'red-400'],\n unit: ['orange-600', 'orange-400'],\n url: ['red-600', 'red-400'],\n variable: ['red-600', 'red-400'],\n },\n },\n focusRing: ['blue-500', 'blue-500'],\n link: {\n fg: ['blue-600', 'blue-400'],\n },\n shadow: {\n outline: ['600/0.3', '500/0.4'],\n umbra: ['600/0.1', 'black/0.2'],\n penumbra: ['600/0.07', 'black/0.14'],\n ambient: ['600/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['200 70%', '800 35%'],\n to: ['200 40%', '800 50%'],\n },\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['100 75%', '900 75%'],\n 4: ['300', '700'],\n },\n border: {\n 0: ['200', '700 50%'],\n 4: ['300 75%', '500'],\n },\n fg: {\n 0: ['900', '100'],\n 4: ['700', '300'],\n },\n },\n 'primary': {\n _hue: 'blue',\n bg: {0: ['inherit', 'inherit']},\n },\n 'suggest': {\n _hue: 'purple',\n bg: {0: ['inherit', 'inherit']},\n },\n 'positive': {\n _hue: 'green',\n bg: {0: ['inherit', 'inherit']},\n },\n 'caution': {\n _hue: 'yellow',\n bg: {0: ['inherit', 'inherit']},\n },\n 'critical': {\n _hue: 'red',\n bg: {0: ['inherit', 'inherit']},\n },\n },\n solid: {\n '*': {\n bg: {\n 0: ['500', '400'],\n 4: ['600', '300'],\n },\n border: {\n 0: ['400', '200'],\n 4: ['500', '100'],\n },\n fg: {\n 0: ['white', 'black'],\n 4: ['200', '700'],\n },\n },\n 'default': {\n bg: {\n 0: ['800', '200'],\n 4: ['black', 'white'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['800', '200'],\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n },\n },\n 'transparent': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['gray-50', 'black'],\n 4: ['200', '800'],\n },\n border: {\n 0: ['200 50%', '800 50%'],\n 4: ['300', '600'],\n },\n fg: {\n 0: ['black', '100'],\n 4: ['700', '400'],\n },\n },\n },\n },\n },\n 'default': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['white', '950'],\n 4: ['200', '800'],\n },\n border: {\n 0: ['200 50%', '800 50%'],\n 4: ['300 75%', '600'],\n },\n fg: {\n 0: ['black', 'white'],\n 4: ['600', '400'],\n },\n },\n },\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n}\n","export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n return (records.filter(Boolean) as T[]).reduce(_merge, {} as T)\n}\n\nfunction _merge<T extends Record<string, any>>(acc: T, source: T): T {\n for (const key of Object.keys(source)) {\n const prevValue = acc[key]\n const nextValue = source[key]\n\n if (isRecord(prevValue) && isRecord(nextValue)) {\n ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n\nfunction isRecord(value: unknown): value is Record<string, any> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n","import {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n type ThemeColorCardToneKey,\n type ThemeColorStateToneKey,\n} from '../v2'\nimport type {CardColorTokens} from './color/card'\nimport type {ElementColorTokens} from './color/element'\nimport {merge} from './merge'\nimport type {PartialTokens, Tokens} from './tokens'\n\nconst defaultElementTokens: ElementColorTokens = {\n _hue: 'gray',\n bg: {\n 0: ['950', '50'],\n 4: ['700', '300'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['400', '600'],\n },\n fg: {\n 0: ['100', '900'],\n 4: ['400', '600'],\n },\n}\n\n/** @internal */\nexport function resolveTokens(tokens: PartialTokens<Tokens> = {}): Tokens {\n return {\n color: {\n '*': resolveCardColorTokens(tokens.color?.['*']),\n\n ...THEME_COLOR_CARD_TONES.reduce(\n (acc, tone) => {\n return {\n ...acc,\n [tone]: resolveCardColorTokens(merge(tokens.color?.['*'], tokens.color?.[tone])),\n }\n },\n {} as Record<ThemeColorCardToneKey, CardColorTokens>,\n ),\n },\n }\n}\n\nfunction resolveCardColorTokens(\n tokens: PartialTokens<CardColorTokens> | undefined,\n): CardColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n avatar: {\n gray: {\n _hue: tokens?.avatar?.gray?._hue ?? 'gray',\n bg: tokens?.avatar?.gray?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.gray?.fg ?? ['white', '900'],\n },\n blue: {\n _hue: tokens?.avatar?.blue?._hue ?? 'blue',\n bg: tokens?.avatar?.blue?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.blue?.fg ?? ['white', '900'],\n },\n purple: {\n _hue: tokens?.avatar?.purple?._hue ?? 'purple',\n bg: tokens?.avatar?.purple?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.purple?.fg ?? ['white', '900'],\n },\n magenta: {\n _hue: tokens?.avatar?.magenta?._hue ?? 'magenta',\n bg: tokens?.avatar?.magenta?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.magenta?.fg ?? ['white', '900'],\n },\n red: {\n _hue: tokens?.avatar?.red?._hue ?? 'red',\n bg: tokens?.avatar?.red?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.red?.fg ?? ['white', '900'],\n },\n orange: {\n _hue: tokens?.avatar?.orange?._hue ?? 'orange',\n bg: tokens?.avatar?.orange?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.orange?.fg ?? ['white', '900'],\n },\n yellow: {\n _hue: tokens?.avatar?.yellow?._hue ?? 'yellow',\n bg: tokens?.avatar?.yellow?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.yellow?.fg ?? ['white', '900'],\n },\n green: {\n _hue: tokens?.avatar?.green?._hue ?? 'green',\n bg: tokens?.avatar?.green?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.green?.fg ?? ['white', '900'],\n },\n cyan: {\n _hue: tokens?.avatar?.cyan?._hue ?? 'cyan',\n bg: tokens?.avatar?.cyan?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.cyan?.fg ?? ['white', '900'],\n },\n },\n backdrop: tokens?.backdrop ?? ['100', '900'],\n code: {\n bg: tokens?.code?.bg ?? ['50', '950'],\n fg: tokens?.code?.fg ?? ['600', '400'],\n token: {\n atrule: tokens?.code?.token?.atrule ?? ['600', '400'],\n attribute: tokens?.code?.token?.attribute ?? ['600', '400'],\n attrName: tokens?.code?.token?.attrName ?? ['600', '400'],\n attrValue: tokens?.code?.token?.attrValue ?? ['600', '400'],\n boolean: tokens?.code?.token?.boolean ?? ['600', '400'],\n builtin: tokens?.code?.token?.builtin ?? ['600', '400'],\n cdata: tokens?.code?.token?.cdata ?? ['600', '400'],\n char: tokens?.code?.token?.char ?? ['600', '400'],\n class: tokens?.code?.token?.class ?? ['600', '400'],\n className: tokens?.code?.token?.className ?? ['600', '400'],\n comment: tokens?.code?.token?.comment ?? ['400', '600'],\n constant: tokens?.code?.token?.constant ?? ['600', '400'],\n deleted: tokens?.code?.token?.deleted ?? ['600', '400'],\n doctype: tokens?.code?.token?.doctype ?? ['600', '400'],\n entity: tokens?.code?.token?.entity ?? ['600', '400'],\n function: tokens?.code?.token?.function ?? ['600', '400'],\n hexcode: tokens?.code?.token?.hexcode ?? ['600', '400'],\n id: tokens?.code?.token?.id ?? ['600', '400'],\n important: tokens?.code?.token?.important ?? ['600', '400'],\n inserted: tokens?.code?.token?.inserted ?? ['600', '400'],\n keyword: tokens?.code?.token?.keyword ?? ['600', '400'],\n number: tokens?.code?.token?.number ?? ['600', '400'],\n operator: tokens?.code?.token?.operator ?? ['600', '400'],\n prolog: tokens?.code?.token?.prolog ?? ['600', '400'],\n property: tokens?.code?.token?.property ?? ['600', '400'],\n pseudoClass: tokens?.code?.token?.pseudoClass ?? ['600', '400'],\n pseudoElement: tokens?.code?.token?.pseudoElement ?? ['600', '400'],\n punctuation: tokens?.code?.token?.punctuation ?? ['600', '400'],\n regex: tokens?.code?.token?.regex ?? ['600', '400'],\n selector: tokens?.code?.token?.selector ?? ['600', '400'],\n string: tokens?.code?.token?.string ?? ['600', '400'],\n symbol: tokens?.code?.token?.symbol ?? ['600', '400'],\n tag: tokens?.code?.token?.tag ?? ['600', '400'],\n unit: tokens?.code?.token?.unit ?? ['600', '400'],\n url: tokens?.code?.token?.url ?? ['600', '400'],\n variable: tokens?.code?.token?.variable ?? ['600', '400'],\n },\n },\n focusRing: tokens?.focusRing ?? ['500', '500'],\n link: {\n fg: tokens?.link?.fg ?? ['600', '400'],\n },\n shadow: {\n outline: tokens?.shadow?.outline ?? ['500', '500'],\n umbra: tokens?.shadow?.umbra ?? ['500', '500'],\n penumbra: tokens?.shadow?.penumbra ?? ['500', '500'],\n ambient: tokens?.shadow?.ambient ?? ['500', '500'],\n },\n skeleton: {\n from: tokens?.skeleton?.from ?? ['100', '900'],\n to: tokens?.skeleton?.to ?? ['50', '950'],\n },\n\n variant: {\n solid: {\n '*': resolveElementTokens(tokens?.variant?.solid?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.solid?.['*'], tokens?.variant?.solid?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n tinted: {\n '*': resolveElementTokens(tokens?.variant?.tinted?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.tinted?.['*'], tokens?.variant?.tinted?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n },\n }\n}\n\nfunction resolveElementTokens(tokens?: PartialTokens<ElementColorTokens>): ElementColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n bg: {\n 0: tokens?.bg?.[0] ?? defaultElementTokens.bg[0],\n 4: tokens?.bg?.[4] ?? defaultElementTokens.bg[4],\n },\n border: {\n 0: tokens?.border?.[0] ?? defaultElementTokens.border[0],\n 4: tokens?.border?.[4] ?? defaultElementTokens.border[4],\n },\n fg: {\n 0: tokens?.fg?.[0] ?? defaultElementTokens.fg[0],\n 4: tokens?.fg?.[4] ?? defaultElementTokens.fg[4],\n },\n }\n}\n","import {black, hues, white} from '@sanity/color'\n\nimport type {ThemeShadow} from '../v0'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {defaultThemeFonts} from './defaultFonts'\nimport {defaultTokens} from './defaultTokens'\nimport {resolveTokens} from './resolveTokens'\nimport type {Radius, Shadow, Space, Theme_v3, ThemeOptions} from './types'\n\n/** @public */\nexport function buildTheme_v3(options?: ThemeOptions): Theme_v3 {\n const {v2} = options ?? {}\n\n const tokens = resolveTokens(options?.tokens ?? defaultTokens)\n\n return {\n _version: 3,\n _tokens: tokens,\n avatar: v2?.avatar ?? defaultThemeConfig.avatar,\n button: v2?.button ?? defaultThemeConfig.button,\n card: v2?.card ?? defaultThemeConfig.card,\n color: tokens.color,\n container: v2?.container ?? defaultThemeConfig.container,\n font: defaultThemeFonts,\n input: v2?.input ?? defaultThemeConfig.input,\n layer: v2?.layer ?? defaultThemeConfig.layer,\n media: v2?.media ?? defaultThemeConfig.media,\n palette: {black, white, hues},\n // TODO\n radius: (v2?.radius ?? defaultThemeConfig.radius) as unknown as Record<Radius, number>,\n // TODO\n shadow: (v2?.shadow ?? defaultThemeConfig.shadow) as unknown as Record<\n Shadow,\n ThemeShadow | undefined\n >,\n // TODO\n space: (v2?.space ?? defaultThemeConfig.space) as unknown as Record<Space, number>,\n }\n}\n","/** @public */\nexport const COLOR_VARIANTS = ['tinted', 'solid'] as const\n\n/** @public */\nexport const AVATAR_COLORS = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n","import {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorBadge_v2,\n type ThemeColorButton_v2,\n type ThemeColorButtonMode_v2,\n type ThemeColorButtonTone_v2,\n type ThemeColorCard_v2,\n type ThemeColorInput_v2,\n type ThemeColorInputMode_v2,\n type ThemeColorInputState_v2,\n type ThemeColorSelectable_v2,\n type ThemeColorSelectableTone_v2,\n type ThemeColorState_v2,\n type ThemeColorStateKey,\n type ThemeColorStateToneKey,\n} from '../v2'\nimport {\n _parseColorToken,\n type ColorToken,\n type ColorValue,\n type Hue,\n type ThemeColorCard_v3,\n type ThemeColorElement,\n type ThemeColorVariantKey,\n type ThemePalette_v3,\n} from '../v3'\n\nfunction renderColor(colorToken: ColorToken, options: {defaultHue: Hue; palette: ThemePalette_v3}) {\n const {defaultHue, palette} = options\n\n const color = _parseColorToken(colorToken, {defaultHue})\n\n if (color.type === 'color') {\n return palette[color.name].hex\n }\n\n if (color.type === 'tint') {\n return palette.hues[color.hue][color.tint].hex\n }\n\n return '#000'\n}\n\nexport function themeColor_v3_v2(options: {\n color: ThemeColorCard_v3\n dark: boolean\n palette: ThemePalette_v3\n}): ThemeColorCard_v2 {\n const {color, dark, palette} = options\n\n const i = dark ? 1 : 0\n\n const defaultHue = color._hue\n\n const colorOptions = {defaultHue, palette}\n\n return {\n _blend: 'screen',\n _dark: dark,\n ...buildColorState({\n cardColor: color,\n dark,\n palette,\n state: 'enabled',\n tone: 'default',\n variant: 'tinted',\n }),\n\n backdrop: renderColor(color.backdrop[i], colorOptions),\n button: THEME_COLOR_BUTTON_MODES.reduce<ThemeColorButton_v2>((modes, mode) => {\n modes[mode] = THEME_COLOR_STATE_TONES.reduce<ThemeColorButtonMode_v2>((tones, tone) => {\n tones[tone] = THEME_COLOR_STATES.reduce<ThemeColorButtonTone_v2>((states, state) => {\n states[state] = buildColorState({\n cardColor: color,\n dark,\n palette,\n state,\n tone,\n variant: mode === 'default' ? 'solid' : 'tinted',\n })\n\n if (mode === 'bleed') {\n states[state].border = 'transparent'\n }\n\n return states\n }, {} as ThemeColorButtonTone_v2)\n\n return tones\n }, {} as ThemeColorButtonMode_v2)\n\n return modes\n }, {} as ThemeColorButton_v2),\n\n focusRing: renderColor(color.focusRing[i], colorOptions),\n input: THEME_COLOR_INPUT_MODES.reduce<ThemeColorInput_v2>((modes, mode) => {\n modes[mode] = THEME_COLOR_INPUT_STATES.reduce<ThemeColorInputMode_v2>((states, state) => {\n states[state] = buildInputState(color.variant.tinted.default, {\n dark,\n defaultHue,\n palette,\n })\n\n return states\n }, {} as ThemeColorInputMode_v2)\n\n return modes\n }, {} as ThemeColorInput_v2),\n selectable: THEME_COLOR_STATE_TONES.reduce<ThemeColorSelectable_v2>((tones, tone) => {\n tones[tone] = THEME_COLOR_STATES.reduce<ThemeColorSelectableTone_v2>((states, state) => {\n states[state] = buildColorState({\n cardColor: color,\n dark,\n palette,\n state,\n tone,\n variant: 'tinted',\n })\n\n return states\n }, {} as ThemeColorSelectableTone_v2)\n\n return tones\n }, {} as ThemeColorSelectable_v2),\n\n shadow: {\n outline: renderColor(color.shadow.outline[i], colorOptions),\n umbra: renderColor(color.shadow.umbra[i], colorOptions),\n penumbra: renderColor(color.shadow.penumbra[i], colorOptions),\n ambient: renderColor(color.shadow.ambient[i], colorOptions),\n },\n\n syntax: {\n atrule: renderColor(color.code.token.atrule[i], colorOptions),\n attrName: renderColor(color.code.token.attrName[i], colorOptions),\n attrValue: renderColor(color.code.token.attrValue[i], colorOptions),\n attribute: renderColor(color.code.token.attribute[i], colorOptions),\n boolean: renderColor(color.code.token.boolean[i], colorOptions),\n builtin: renderColor(color.code.token.builtin[i], colorOptions),\n cdata: renderColor(color.code.token.cdata[i], colorOptions),\n char: renderColor(color.code.token.char[i], colorOptions),\n class: renderColor(color.code.token.class[i], colorOptions),\n className: renderColor(color.code.token.className[i], colorOptions),\n comment: renderColor(color.code.token.comment[i], colorOptions),\n constant: renderColor(color.code.token.constant[i], colorOptions),\n deleted: renderColor(color.code.token.deleted[i], colorOptions),\n doctype: renderColor(color.code.token.doctype[i], colorOptions),\n entity: renderColor(color.code.token.entity[i], colorOptions),\n function: renderColor(color.code.token.function[i], colorOptions),\n hexcode: renderColor(color.code.token.hexcode[i], colorOptions),\n id: renderColor(color.code.token.id[i], colorOptions),\n important: renderColor(color.code.token.important[i], colorOptions),\n inserted: renderColor(color.code.token.inserted[i], colorOptions),\n keyword: renderColor(color.code.token.keyword[i], colorOptions),\n number: renderColor(color.code.token.number[i], colorOptions),\n operator: renderColor(color.code.token.operator[i], colorOptions),\n prolog: renderColor(color.code.token.prolog[i], colorOptions),\n property: renderColor(color.code.token.property[i], colorOptions),\n pseudoClass: renderColor(color.code.token.pseudoClass[i], colorOptions),\n pseudoElement: renderColor(color.code.token.pseudoElement[i], colorOptions),\n punctuation: renderColor(color.code.token.punctuation[i], colorOptions),\n regex: renderColor(color.code.token.regex[i], colorOptions),\n selector: renderColor(color.code.token.selector[i], colorOptions),\n string: renderColor(color.code.token.string[i], colorOptions),\n symbol: renderColor(color.code.token.symbol[i], colorOptions),\n tag: renderColor(color.code.token.tag[i], colorOptions),\n unit: renderColor(color.code.token.unit[i], colorOptions),\n url: renderColor(color.code.token.url[i], colorOptions),\n variable: renderColor(color.code.token.variable[i], colorOptions),\n },\n }\n}\n\ntype ElementTokenIndex = 0 | 1 | 2 | 3 | 4\n\nconst stateShades: Record<\n ThemeColorStateKey,\n {\n bg: [ElementTokenIndex, ElementTokenIndex, ElementTokenIndex]\n border: [ElementTokenIndex, ElementTokenIndex, ElementTokenIndex]\n fg: [ElementTokenIndex, ElementTokenIndex, ElementTokenIndex]\n }\n> = {\n enabled: {\n bg: [0, 1, 2],\n border: [0, 1, 2],\n fg: [0, 1, 2],\n },\n hovered: {\n bg: [1, 2, 3],\n border: [1, 2, 3],\n fg: [1, 2, 3],\n },\n pressed: {\n bg: [2, 3, 4],\n border: [2, 3, 4],\n fg: [2, 3, 4],\n },\n selected: {\n bg: [3, 4, 4],\n border: [3, 4, 4],\n fg: [3, 4, 4],\n },\n disabled: {\n bg: [4, 4, 4],\n border: [4, 4, 4],\n fg: [4, 4, 4],\n },\n}\n\nfunction mix(\n tokens: {\n 0: ColorValue\n 4: ColorValue\n },\n index: ElementTokenIndex,\n options: {\n dark: boolean\n defaultHue: Hue\n palette: ThemePalette_v3\n },\n) {\n const {dark, defaultHue, palette} = options\n const colorOptions = {defaultHue, palette}\n const i = dark ? 1 : 0\n\n const from = renderColor(tokens[0][i], colorOptions)\n const to = renderColor(tokens[4][i], colorOptions)\n\n if (index === 0) {\n return from\n }\n\n if (index === 4) {\n return to\n }\n\n return `color-mix(in oklch, ${from}, ${to} ${index * 25}%)`\n}\n\nfunction buildColorState(options: {\n cardColor: ThemeColorCard_v3\n dark: boolean\n palette: ThemePalette_v3\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n variant: ThemeColorVariantKey\n}): ThemeColorState_v2 {\n const {cardColor, dark, palette, state, tone, variant} = options\n const color = cardColor.variant[variant][tone]\n\n const shades = stateShades[state]\n\n const defaultHue = cardColor._hue\n const colorOptions = {defaultHue, palette}\n\n const i = dark ? 1 : 0\n\n // cardColor.avatar.blue.bg\n\n return {\n accent: {\n fg: renderColor(color.fg[4][i], colorOptions),\n },\n\n avatar: {\n gray: {\n bg: renderColor(cardColor.avatar.gray.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.gray.fg[i], colorOptions),\n },\n blue: {\n bg: renderColor(cardColor.avatar.blue.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.blue.fg[i], colorOptions),\n },\n purple: {\n bg: renderColor(cardColor.avatar.purple.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.purple.fg[i], colorOptions),\n },\n magenta: {\n bg: renderColor(cardColor.avatar.magenta.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.magenta.fg[i], colorOptions),\n },\n red: {\n bg: renderColor(cardColor.avatar.red.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.red.fg[i], colorOptions),\n },\n orange: {\n bg: renderColor(cardColor.avatar.orange.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.orange.fg[i], colorOptions),\n },\n yellow: {\n bg: renderColor(cardColor.avatar.yellow.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.yellow.fg[i], colorOptions),\n },\n green: {\n bg: renderColor(cardColor.avatar.green.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.green.fg[i], colorOptions),\n },\n cyan: {\n bg: renderColor(cardColor.avatar.cyan.bg[i], colorOptions),\n fg: renderColor(cardColor.avatar.cyan.fg[i], colorOptions),\n },\n },\n\n // avatar: cardColor.avatar,\n badge: THEME_COLOR_STATE_TONES.reduce<ThemeColorBadge_v2>((tones, tone) => {\n tones[tone] = {\n bg: mix(color.bg, 1, {dark, defaultHue, palette}),\n\n fg: mix(color.fg, 1, {dark, defaultHue, palette}),\n\n dot: mix(color.fg, 3, {dark, defaultHue, palette}),\n\n icon: mix(color.fg, 3, {dark, defaultHue, palette}),\n }\n\n return tones\n }, {} as ThemeColorBadge_v2),\n\n bg: mix(color.bg, shades.bg[0], {dark, defaultHue, palette}),\n\n border: mix(color.border, shades.border[0], {dark, defaultHue, palette}),\n\n fg: mix(color.fg, shades.fg[0], {dark, defaultHue, palette}),\n code: {\n bg: mix(color.bg, shades.bg[1], {dark, defaultHue, palette}),\n\n fg: mix(color.fg, shades.fg[2], {dark, defaultHue, palette}),\n },\n\n icon: mix(color.fg, shades.fg[2], {dark, defaultHue, palette}),\n kbd: {\n bg: mix(color.bg, 0, {dark, defaultHue, palette}),\n\n fg: mix(color.fg, 0, {dark, defaultHue, palette}),\n\n border: mix(color.bg, 0, {dark, defaultHue, palette}),\n },\n link: {\n fg: mix(color.fg, shades.fg[2], {dark, defaultHue, palette}),\n },\n muted: {\n bg: mix(color.bg, shades.bg[1], {dark, defaultHue, palette}),\n\n fg: mix(color.fg, shades.fg[2], {dark, defaultHue, palette}),\n },\n\n skeleton: {\n from: renderColor(cardColor.skeleton.from[i], colorOptions),\n to: renderColor(cardColor.skeleton.to[i], colorOptions),\n },\n }\n}\n\nfunction buildInputState(\n colorElement: ThemeColorElement,\n options: {\n dark: boolean\n defaultHue: Hue\n palette: ThemePalette_v3\n },\n): ThemeColorInputState_v2 {\n const {dark, defaultHue, palette} = options\n const colorOptions = {defaultHue, palette}\n const i = dark ? 1 : 0\n\n return {\n bg: renderColor(colorElement.bg[0][i], colorOptions),\n\n border: renderColor(colorElement.bg[0][i], colorOptions),\n\n fg: renderColor(colorElement.fg[0][i], colorOptions),\n muted: {\n bg: renderColor(colorElement.bg[0][i], colorOptions),\n },\n\n placeholder: renderColor(colorElement.fg[0][i], colorOptions),\n }\n}\n","import type {ThemeShadow} from '../v0'\nimport type {RootTheme_v2} from '../v2'\nimport type {Theme_v3} from '../v3'\nimport {themeColor_v3_v2} from './themeColor_v3_v2'\n\nexport function v3_v2(theme_v3: Theme_v3): RootTheme_v2 {\n const palette = theme_v3.palette\n\n return {\n _version: 2,\n avatar: theme_v3.avatar,\n button: theme_v3.button,\n card: theme_v3.card,\n color: {\n dark: {\n transparent: themeColor_v3_v2({\n color: theme_v3.color.transparent,\n dark: true,\n palette,\n }),\n default: themeColor_v3_v2({\n color: theme_v3.color.default,\n dark: true,\n palette,\n }),\n neutral: themeColor_v3_v2({\n color: theme_v3.color.neutral,\n dark: true,\n palette,\n }),\n primary: themeColor_v3_v2({\n color: theme_v3.color.primary,\n dark: true,\n palette,\n }),\n suggest: themeColor_v3_v2({\n color: theme_v3.color.suggest,\n dark: true,\n palette,\n }),\n positive: themeColor_v3_v2({\n color: theme_v3.color.positive,\n dark: true,\n palette,\n }),\n caution: themeColor_v3_v2({\n color: theme_v3.color.caution,\n dark: true,\n palette,\n }),\n critical: themeColor_v3_v2({\n color: theme_v3.color.critical,\n dark: true,\n palette,\n }),\n },\n light: {\n transparent: themeColor_v3_v2({\n color: theme_v3.color.transparent,\n dark: false,\n palette,\n }),\n default: themeColor_v3_v2({\n color: theme_v3.color.default,\n dark: false,\n palette,\n }),\n neutral: themeColor_v3_v2({\n color: theme_v3.color.neutral,\n dark: false,\n palette,\n }),\n primary: themeColor_v3_v2({\n color: theme_v3.color.primary,\n dark: false,\n palette,\n }),\n suggest: themeColor_v3_v2({\n color: theme_v3.color.suggest,\n dark: false,\n palette,\n }),\n positive: themeColor_v3_v2({\n color: theme_v3.color.positive,\n dark: false,\n palette,\n }),\n caution: themeColor_v3_v2({\n color: theme_v3.color.caution,\n dark: false,\n palette,\n }),\n critical: themeColor_v3_v2({\n color: theme_v3.color.critical,\n dark: false,\n palette,\n }),\n },\n },\n container: theme_v3.container,\n font: {\n code: {\n family: theme_v3.font.code.family,\n weights: theme_v3.font.code.weight,\n sizes: theme_v3.font.code.scale,\n },\n heading: {\n family: theme_v3.font.heading.family,\n weights: theme_v3.font.heading.weight,\n sizes: theme_v3.font.heading.scale,\n },\n label: {\n family: theme_v3.font.label.family,\n weights: theme_v3.font.label.weight,\n sizes: theme_v3.font.label.scale,\n },\n text: {\n family: theme_v3.font.text.family,\n weights: theme_v3.font.text.weight,\n sizes: theme_v3.font.text.scale,\n },\n },\n input: theme_v3.input,\n layer: theme_v3.layer,\n media: theme_v3.media,\n radius: Object.values(theme_v3.radius),\n shadow: Object.values(theme_v3.shadow) as unknown as Array<ThemeShadow | null>,\n space: Object.values(theme_v3.space),\n }\n}\n","import {type RootTheme} from '../../types'\nimport {buildTheme_v3} from '../../v3'\nimport {v2_v0} from '../../versioning/v2_v0'\nimport {v3_v2} from '../../versioning/v3_v2'\nimport {type ThemeConfig} from '../config'\n\n/** @internal */\nexport function buildTheme(_config?: ThemeConfig): RootTheme {\n const v3 = buildTheme_v3({v2: _config})\n\n return v2_v0(v3_v2(v3), v3)\n}\n","import type {RGB, RGBA} from '../types'\n\nfunction mixChannel(b: number, s: number, weight: number) {\n const diff = s - b\n\n const delta = diff * weight\n\n return b + delta\n}\n\n/**\n * Apply the \\`mix\\` blend mode\n * @internal\n */\nexport function mix(b: RGB | RGBA, s: RGB | RGBA, weight: number): RGB {\n return {\n r: mixChannel(b.r, s.r, weight),\n g: mixChannel(b.g, s.g, weight),\n b: mixChannel(b.b, s.b, weight),\n }\n}\n","import type {RGB, RGBA} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: multiplyChannel(b.r / 255, s.r / 255) * 255,\n g: multiplyChannel(b.g / 255, s.g / 255) * 255,\n b: multiplyChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import type {RGB, RGBA} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: screenChannel(b.r / 255, s.r / 255) * 255,\n g: screenChannel(b.g / 255, s.g / 255) * 255,\n b: screenChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","export function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nexport function invlerp(x: number, y: number, a: number): number {\n return clamp((a - x) / (y - x))\n}\n\nexport function clamp(a: number, min = 0, max = 1): number {\n return Math.min(max, Math.max(min, a))\n}\n\nexport function range(x1: number, y1: number, x2: number, y2: number, a: number): number {\n return lerp(x2, y2, invlerp(x1, y1, a))\n}\n\nexport function round(value: number): number {\n return Math.round(value)\n}\n","import {clamp, round} from '../utils'\nimport type {HSL, RGB, RGBA} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbaToRGBA(rgba: string): RGBA {\n const values = rgba.replace(/rgba\\(|\\)/g, '').split(',')\n\n return {\n r: parseInt(values[0]),\n g: parseInt(values[1]),\n b: parseInt(values[2]),\n a: parseFloat(values[3]),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex(color: RGB | RGBA): string {\n const r = round(clamp(Math.round(color.r), 0, 255))\n const g = round(clamp(Math.round(color.g), 0, 255))\n const b = round(clamp(Math.round(color.b), 0, 255))\n\n if ('a' in color) {\n return `rgba(${r},${g},${b},${color.a})`\n }\n\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb, rgbaToRGBA} from './convert'\nimport type {HSL, RGB, RGBA} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB | RGBA {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n if (color.startsWith('rgba(')) {\n return rgbaToRGBA(color)\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from './parse'\nimport type {RGB, RGBA} from './types'\n\n/**\n * @internal\n * @deprecated Will be removed in next major version\n */\nexport function getContrastRatio(bg: string, fg: string): number {\n const rgb1 = parseColor(bg) // bg: RGB | RGBA, fg: RGB | RGBA\n const rgb2 = parseColor(fg)\n\n // convert the two colors from sRGB to linear-light RGB\n const c1 = rgb_lrgb(rgb1)\n const c2 = rgb_lrgb(rgb2)\n\n // compute the relative luminances\n const l1 = lrgb_luminance(c1)\n const l2 = lrgb_luminance(c2)\n\n // compute the contrast ratio\n return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05)\n}\n\nfunction rgb_lrgb({r, g, b}: RGB | RGBA): [number, number, number] {\n return [rgb_lrgb1(r / 255), rgb_lrgb1(g / 255), rgb_lrgb1(b / 255)]\n}\n\nfunction rgb_lrgb1(v: number) {\n return v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4\n}\n\nfunction lrgb_luminance([r, g, b]: [number, number, number]) {\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n","import {parseColor} from './parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n if (typeof color === 'string' && color.startsWith('var(')) {\n return `color-mix(in srgb, transparent, ${color} ${a * 100}%)`\n }\n\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {COLOR_HUES} from '@sanity/color'\n\n/** @public */\nexport const THEME_COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const THEME_COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n\n/** @public */\nexport const THEME_COLOR_CARD_TONES = [\n 'transparent',\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATE_TONES = [\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_MODES = ['default', 'invalid'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_STATES = ['enabled', 'hovered', 'readOnly', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_AVATAR_COLORS = COLOR_HUES\n","import {COLOR_HUES, COLOR_TINTS, type ColorHueKey, type ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport type {ThemeColorBlendModeKey, ThemeColorButtonModeKey} from './_system'\n\n/** @internal */\nexport function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey {\n return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","import type {Hue, Tint} from '../../v3'\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorBlendModeKey,\n} from '../color'\n\n/** @public */\nexport const COLOR_CONFIG_STATE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'accent/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'skeleton/from',\n 'skeleton/to',\n 'status/dot',\n 'status/icon',\n] as const\n\n/** @public */\nexport type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_KEYS = [\n ...COLOR_CONFIG_STATE_KEYS,\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'shadow/outline',\n 'shadow/umbra',\n 'shadow/penumbra',\n 'shadow/ambient',\n] as const\n\n/** @public */\nexport type ColorConfigCardKey = (typeof COLOR_CONFIG_CARD_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_BLEND_KEYS = ['_blend'] as const\n\n/** @public */\nexport type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number]\n\n/** @public */\nexport type ColorConfigOpacityValue = `0` | `0.${number}` | `1`\n\n/** @public */\nexport type ColorConfigValue =\n | `black`\n | `white`\n | `black/${ColorConfigOpacityValue}`\n | `white/${ColorConfigOpacityValue}`\n | `${Hue}`\n | `${Hue} ${number}%`\n | `${Hue}/${Tint}`\n | `${Hue}/${Tint} ${number}%`\n | `${Hue}/${Tint}/${ColorConfigOpacityValue}`\n | `${Tint}`\n | `${Tint} ${number}%`\n | `${Tint}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n type ColorConfigBlendKey,\n type ColorConfigCardKey,\n type ColorConfigCardTone,\n type ColorConfigOpacityValue,\n type ColorConfigStateKey,\n type ColorConfigStateTone,\n} from './system'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\n return COLOR_CONFIG_BLEND_KEYS.includes(str as ColorConfigBlendKey)\n}\n\n/** @internal */\nexport function isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../color'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport type {TokenValueNode} from './types'\n\nfunction isColorMixPercentValue(str: string): str is `${number}%` {\n return /^\\d+%$/.test(str)\n}\n\n/** @internal */\nexport function parseTokenValue(str: string): TokenValueNode | undefined {\n const segments = str.split('/')\n\n let nextSegment = segments.shift() || ''\n\n const [segment0, segment0mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment0)) {\n const tint = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n tint,\n }\n }\n\n if (isColorValue(segment0)) {\n const key = segment0 as 'black' | 'white'\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n key,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n key,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key,\n }\n }\n\n if (isColorHueKey(segment0)) {\n const hue = segment0\n\n nextSegment = segments.shift() || ''\n\n const [segment1, segment1mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment1)) {\n const tint = segment1\n const segment2 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment1mix)) {\n const mix = Number(segment1mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n hue,\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment2)) {\n const opacity = Number(segment2)\n\n return {\n type: 'color',\n hue,\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n hue,\n tint,\n }\n }\n\n return {\n type: 'hue',\n value: hue,\n }\n }\n\n if (isColorBlendModeValue(segment0)) {\n const value = segment0\n\n return {\n type: 'blendMode',\n value,\n }\n }\n\n return undefined\n}\n","import type {Theme} from '../types'\nimport type {Theme_v2} from '../v2'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<Theme, Theme_v2>()\n\n/** @public */\nexport function getTheme_v2(theme: Theme): Theme_v2 {\n if (theme.sanity.v2?._resolved) return theme.sanity.v2\n\n const cached_v2 = cache.get(theme)\n\n if (cached_v2) return cached_v2\n\n const v2: Theme_v2 = {\n _version: 2,\n _resolved: true,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...theme.sanity.avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...theme.sanity.button,\n },\n card: defaultThemeConfig.card,\n color: themeColor_v0_v2(theme.sanity.color),\n container: theme.sanity.container,\n font: theme.sanity.fonts,\n input: {\n ...defaultThemeConfig.input,\n ...theme.sanity.input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...theme.sanity.input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...theme.sanity.input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...theme.sanity.input.switch,\n },\n },\n layer: theme.sanity.layer ?? defaultThemeConfig.layer,\n media: theme.sanity.media,\n radius: theme.sanity.radius,\n shadow: theme.sanity.shadows,\n space: theme.sanity.space,\n style: theme.sanity.styles,\n }\n\n cache.set(theme, v2)\n\n return v2\n}\n"],"names":["defaultThemeConfig","avatar","sizes","distance","size","focusRing","offset","width","button","textWeight","border","BORDER_WIDTH","card","shadow","outline","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","umbra","penumbra","ambient","space","input","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","is_v2","themeProp","_version","themeColor_v0_v2_9","color","badge","colors","neutral","default","suggest","primary","bleed","ghost","selectable","cache","WeakMap","themeColor_v0_v2","color_v0","cached_v2","get","base","stateThemeColor_v0_v2","enabled","color_v2","_blend","dark","_dark","accent","backdrop","bg","stateTonesThemeColor_v0_v2","code","fg","icon","muted","inputStatesThemeColor_v0_v2","invalid","kbd","link","bg2","skeleton","from","to","syntax","set","v0","t","hovered","pressed","selected","disabled","positive","caution","critical","state","gray","spot","blue","purple","magenta","red","orange","yellow","green","cyan","dot","transparent","states","inputStateThemeColor_v0_v2","readOnly","placeholder","v0_v2","v2","fonts","font","shadows","styles","style","light","v2_v0","v3","cachedTheme","themeColor_v2_v0","inputStatesThemeColor_v2_v0","solid","inputStateThemeColor_v2_v0","Map","getScopedTheme","scheme","tone","_getCachedTheme","colorScheme_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","theme","sanity","_resolved","_setCachedTheme","rootTheme","schemeCache","toneCache","has","createSelectableTones","opts","_createSelectableStates","createSolidTones","name","createButtonTones","mode","createButtonModes","createCardStates","black","white","lightest","lighter","darker","darkest","spots","tones","defaultOpts","key","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","createInputModes","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","AVATAR_SIZE","CONTAINER_SCALE","CONTAINER","RADIUS","SPACE","FONT_CODE_SIZE","FONT_HEADING_SIZE","FONT_LABEL_SIZE","FONT_TEXT_SIZE","SHADOW","HUES","TINTS","RE_PERCENTAGE","RE_OPACITY","_parseColorToken","str","options","defaultHue","cursor","parseColorNode","_consume","s","startsWith","length","_peek","v","type","opacity","parseOpacity","mix","parseMix","hue","String","Error","tint","parseTint","Number","slice","includes","match","exec","parseFloat","ignoreWhitespace","defaultThemeFonts","family","weight","regular","medium","semibold","bold","scale","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","customIconSize","heading","featureSettings","label","defaultTokens","token","variant","tinted","_hue","merge","records","filter","Boolean","reduce","_merge","acc","source","Object","keys","prevValue","nextValue","isRecord","value","Array","isArray","defaultElementTokens","resolveTokens","tokens","resolveCardColorTokens","THEME_COLOR_CARD_TONES","resolveElementTokens","THEME_COLOR_STATE_TONES","buildTheme_v3","_tokens","palette","hues","COLOR_VARIANTS","AVATAR_COLORS","renderColor","colorToken","hex","themeColor_v3_v2","i","colorOptions","buildColorState","cardColor","THEME_COLOR_BUTTON_MODES","modes","THEME_COLOR_STATES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","buildInputState","stateShades","index","shades","colorElement","v3_v2","theme_v3","weights","values","buildTheme","_config","mixChannel","b","delta","r","g","multiplyChannel","multiply","screenChannel","screen","clamp","a","min","max","Math","round","hexToRgb","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","replace","split","rgbToHex","toString","rgbToHsl","cmin","cmax","h","l","abs","toFixed","hslToRgb","hsl","c","x","m","HEX_CHARS","HSL_RE","isHexChars","indexOf","isHex","parseHsl","res","parseColor","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","rgb","THEME_COLOR_SCHEMES","THEME_COLOR_BLEND_MODES","THEME_COLOR_AVATAR_COLORS","COLOR_HUES","isColorBlendModeValue","isColorHueKey","isColorTintKey","COLOR_TINTS","isColorButtonMode","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_AVATAR_COLORS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_TONES","COLOR_CONFIG_STATES","COLOR_CONFIG_INPUT_MODES","COLOR_CONFIG_INPUT_STATES","isColorConfigBaseTone","isColorConfigBaseKey","isColorConfigStateKey","isColorConfigStateTone","isColorConfigBlendKey","isColorValue","isColorOpacityValue","test","isColorMixPercentValue","parseTokenValue","segments","nextSegment","shift","segment0","segment0mix","segment1","segment1mix","segment2","getTheme_v2"],"mappings":"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"}