@sanity/ui 3.0.0-static.8 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1062) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +3550 -1279
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-cjs/refractor.js +3 -7
  4. package/dist/_chunks-cjs/refractor.js.map +1 -1
  5. package/dist/_chunks-es/_visual-editing.mjs +3562 -1292
  6. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  7. package/dist/_chunks-es/refractor.mjs +2 -2
  8. package/dist/_chunks-es/refractor.mjs.map +1 -1
  9. package/dist/_visual-editing.d.mts +439 -239
  10. package/dist/_visual-editing.d.ts +439 -239
  11. package/dist/index.d.mts +638 -544
  12. package/dist/index.d.ts +638 -544
  13. package/dist/index.js +501 -315
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +504 -309
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/theme.d.mts +76 -425
  18. package/dist/theme.d.ts +76 -425
  19. package/dist/theme.js +2237 -1325
  20. package/dist/theme.js.map +1 -1
  21. package/dist/theme.mjs +2284 -1372
  22. package/dist/theme.mjs.map +1 -1
  23. package/exports/_visual-editing.ts +27 -27
  24. package/exports/index.ts +1 -1
  25. package/package.json +91 -97
  26. package/src/core/__workshop__/constants.ts +293 -0
  27. package/src/core/_compat.ts +264 -0
  28. package/src/core/components/autocomplete/__workshop__/async.tsx +156 -0
  29. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +137 -0
  30. package/src/core/components/autocomplete/__workshop__/custom.tsx +89 -0
  31. package/src/core/components/autocomplete/__workshop__/example.tsx +79 -0
  32. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +294 -0
  33. package/src/core/components/autocomplete/autocomplete.styles.tsx +39 -0
  34. package/src/core/components/autocomplete/autocomplete.tsx +729 -0
  35. package/src/core/components/autocomplete/autocompleteOption.tsx +45 -0
  36. package/src/core/components/autocomplete/types.ts +108 -0
  37. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +18 -0
  38. package/src/core/components/breadcrumbs/breadcrumbs.tsx +99 -0
  39. package/src/core/components/dialog/__workshop__/nested.tsx +72 -0
  40. package/src/core/components/dialog/__workshop__/onScroll.tsx +39 -0
  41. package/src/core/components/dialog/__workshop__/position.tsx +30 -0
  42. package/src/core/components/dialog/__workshop__/props.tsx +75 -0
  43. package/src/core/components/dialog/dialog.tsx +434 -0
  44. package/src/core/components/dialog/dialogProvider.tsx +35 -0
  45. package/src/core/components/dialog/styles.ts +77 -0
  46. package/src/core/components/hotkeys/hotkeys.tsx +62 -0
  47. package/src/core/components/menu/__workshop__/menuButton.tsx +80 -0
  48. package/src/core/components/menu/__workshop__/tones.tsx +25 -0
  49. package/src/core/components/menu/menu.test.tsx +128 -0
  50. package/src/core/components/menu/menu.tsx +177 -0
  51. package/src/core/components/menu/menuButton.tsx +268 -0
  52. package/src/core/components/menu/menuContext.ts +29 -0
  53. package/src/core/components/menu/menuDivider.ts +12 -0
  54. package/src/core/components/menu/menuGroup.tsx +217 -0
  55. package/src/core/components/menu/menuItem.tsx +180 -0
  56. package/src/core/components/menu/useMenuController.ts +231 -0
  57. package/src/core/components/skeleton/__workshop__/delay.tsx +70 -0
  58. package/src/core/components/skeleton/__workshop__/skeleton.tsx +64 -0
  59. package/src/core/components/skeleton/skeleton.tsx +57 -0
  60. package/src/core/components/skeleton/styles.ts +50 -0
  61. package/src/core/components/skeleton/textSkeleton.tsx +123 -0
  62. package/src/core/components/tab/tab.tsx +101 -0
  63. package/src/core/components/tab/tabList.tsx +70 -0
  64. package/src/core/components/tab/tabPanel.tsx +39 -0
  65. package/src/core/components/toast/__workshop__/toast.tsx +26 -0
  66. package/src/core/components/toast/styles.ts +77 -0
  67. package/src/core/components/toast/toast.tsx +198 -0
  68. package/src/core/components/toast/toastLayer.tsx +51 -0
  69. package/src/core/components/toast/types.ts +26 -0
  70. package/src/core/components/tree/style.ts +105 -0
  71. package/src/core/components/tree/tree.tsx +237 -0
  72. package/src/core/components/tree/treeGroup.tsx +30 -0
  73. package/src/core/components/tree/treeItem.tsx +205 -0
  74. package/src/core/components/tree/types.ts +21 -0
  75. package/src/core/constants.ts +79 -0
  76. package/src/core/helpers/index.ts +4 -0
  77. package/src/core/hooks/useArrayProp.ts +31 -0
  78. package/src/core/hooks/useClickOutside.test.tsx +482 -0
  79. package/src/core/hooks/useForwardedRef.ts +19 -0
  80. package/src/core/hooks/useMatchMedia.ts +28 -0
  81. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +36 -0
  82. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +102 -0
  83. package/src/core/hooks/usePrefersDark.ts +16 -0
  84. package/src/core/hooks/usePrefersReducedMotion.ts +16 -0
  85. package/src/core/index.ts +10 -0
  86. package/src/core/primitives/_selectable/selectable.tsx +15 -0
  87. package/src/core/primitives/_selectable/style.ts +115 -0
  88. package/src/core/primitives/avatar/__workshop__/asButton.tsx +14 -0
  89. package/src/core/primitives/avatar/__workshop__/stack.tsx +25 -0
  90. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +63 -0
  91. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +70 -0
  92. package/src/core/primitives/avatar/avatar.tsx +192 -0
  93. package/src/core/primitives/avatar/avatarCounter.tsx +94 -0
  94. package/src/core/primitives/avatar/avatarStack.tsx +101 -0
  95. package/src/core/primitives/avatar/styles.ts +167 -0
  96. package/src/core/primitives/badge/__workshop__/props.tsx +30 -0
  97. package/src/core/primitives/badge/__workshop__/tones.tsx +21 -0
  98. package/src/core/primitives/badge/badge.tsx +62 -0
  99. package/src/core/primitives/badge/styles.ts +20 -0
  100. package/src/core/primitives/box/__workshop__/props.tsx +20 -0
  101. package/src/core/primitives/box/box.tsx +131 -0
  102. package/src/core/primitives/button/__workshop__/custom.tsx +51 -0
  103. package/src/core/primitives/button/__workshop__/props.tsx +55 -0
  104. package/src/core/primitives/button/__workshop__/stacked.tsx +58 -0
  105. package/src/core/primitives/button/button.tsx +187 -0
  106. package/src/core/primitives/button/styles.ts +117 -0
  107. package/src/core/primitives/card/__workshop__/allTones.tsx +25 -0
  108. package/src/core/primitives/card/__workshop__/asButton.tsx +107 -0
  109. package/src/core/primitives/card/__workshop__/props.tsx +53 -0
  110. package/src/core/primitives/card/__workshop__/selected.tsx +94 -0
  111. package/src/core/primitives/card/card.tsx +116 -0
  112. package/src/core/primitives/card/styles.ts +147 -0
  113. package/src/core/primitives/card/types.ts +11 -0
  114. package/src/core/primitives/checkbox/checkbox.tsx +73 -0
  115. package/src/core/primitives/checkbox/styles.ts +128 -0
  116. package/src/core/primitives/code/__workshop__/props.tsx +21 -0
  117. package/src/core/primitives/code/code.tsx +40 -0
  118. package/src/core/primitives/code/refractor.tsx +20 -0
  119. package/src/core/primitives/code/styles.ts +77 -0
  120. package/src/core/primitives/container/__workshop__/example.tsx +20 -0
  121. package/src/core/primitives/container/container.tsx +41 -0
  122. package/src/core/primitives/container/styles.ts +23 -0
  123. package/src/core/primitives/flex/__workshop__/example.tsx +34 -0
  124. package/src/core/primitives/flex/__workshop__/gap.tsx +25 -0
  125. package/src/core/primitives/flex/flex.tsx +54 -0
  126. package/src/core/primitives/grid/grid.tsx +48 -0
  127. package/src/core/primitives/heading/__workshop__/plain.tsx +32 -0
  128. package/src/core/primitives/heading/heading.tsx +80 -0
  129. package/src/core/primitives/heading/styles.ts +64 -0
  130. package/src/core/primitives/heading/types.ts +7 -0
  131. package/src/core/primitives/inline/__workshop__/plain.tsx +27 -0
  132. package/src/core/primitives/inline/inline.tsx +47 -0
  133. package/src/core/primitives/inline/styles.ts +32 -0
  134. package/src/core/primitives/kbd/kbd.tsx +61 -0
  135. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +48 -0
  136. package/src/core/primitives/label/__workshop__/plain.tsx +24 -0
  137. package/src/core/primitives/label/label.tsx +79 -0
  138. package/src/core/primitives/label/styles.ts +45 -0
  139. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +77 -0
  140. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +32 -0
  141. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +11 -0
  142. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +71 -0
  143. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +71 -0
  144. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +89 -0
  145. package/src/core/primitives/popover/__workshop__/TestStory.tsx +97 -0
  146. package/src/core/primitives/popover/helpers.ts +31 -0
  147. package/src/core/primitives/popover/popover.tsx +484 -0
  148. package/src/core/primitives/popover/popoverCard.tsx +168 -0
  149. package/src/core/primitives/radio/radio.tsx +51 -0
  150. package/src/core/primitives/radio/styles.ts +117 -0
  151. package/src/core/primitives/select/__workshop__/plain.tsx +27 -0
  152. package/src/core/primitives/select/select.tsx +87 -0
  153. package/src/core/primitives/select/styles.ts +166 -0
  154. package/src/core/primitives/spinner/__workshop__/Props.tsx +15 -0
  155. package/src/core/primitives/spinner/spinner.tsx +46 -0
  156. package/src/core/primitives/stack/__workshop__/plain.tsx +32 -0
  157. package/src/core/primitives/stack/stack.tsx +43 -0
  158. package/src/core/primitives/stack/styles.ts +32 -0
  159. package/src/core/primitives/switch/styles.ts +173 -0
  160. package/src/core/primitives/switch/switch.tsx +68 -0
  161. package/src/core/primitives/text/__workshop__/colored.tsx +30 -0
  162. package/src/core/primitives/text/__workshop__/example.tsx +39 -0
  163. package/src/core/primitives/text/styles.ts +74 -0
  164. package/src/core/primitives/text/text.tsx +81 -0
  165. package/src/core/primitives/textArea/__workshop__/plain.tsx +50 -0
  166. package/src/core/primitives/textArea/textArea.tsx +119 -0
  167. package/src/core/primitives/textInput/__workshop__/plain.tsx +98 -0
  168. package/src/core/primitives/textInput/__workshop__/typed.tsx +23 -0
  169. package/src/core/primitives/textInput/textInput.tsx +389 -0
  170. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +102 -0
  171. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +74 -0
  172. package/src/core/primitives/tooltip/__workshop__/props.tsx +107 -0
  173. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +86 -0
  174. package/src/core/primitives/tooltip/tooltip.test.tsx +452 -0
  175. package/src/core/primitives/tooltip/tooltip.tsx +465 -0
  176. package/src/core/primitives/tooltip/tooltipCard.tsx +111 -0
  177. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +57 -0
  178. package/src/core/primitives/types.ts +146 -0
  179. package/src/core/styles/border/borderStyle.ts +56 -0
  180. package/src/core/styles/border/index.ts +2 -0
  181. package/src/core/styles/border/types.ts +10 -0
  182. package/src/core/styles/box/boxStyle.ts +69 -0
  183. package/src/core/styles/box/index.ts +2 -0
  184. package/src/core/styles/box/types.ts +11 -0
  185. package/src/core/styles/card/_cardColorStyle.ts +108 -0
  186. package/src/core/styles/card/index.ts +1 -0
  187. package/src/core/styles/flex/flexItemStyle.ts +27 -0
  188. package/src/core/styles/flex/flexStyle.ts +70 -0
  189. package/src/core/styles/flex/index.ts +3 -0
  190. package/src/core/styles/flex/types.ts +25 -0
  191. package/src/core/styles/focusRing/index.ts +25 -0
  192. package/src/core/styles/font/codeFontStyle.ts +13 -0
  193. package/src/core/styles/font/headingFontStyle.ts +13 -0
  194. package/src/core/styles/font/index.ts +6 -0
  195. package/src/core/styles/font/labelFontStyle.ts +13 -0
  196. package/src/core/styles/font/responsiveFont.ts +101 -0
  197. package/src/core/styles/font/textAlignStyle.ts +19 -0
  198. package/src/core/styles/font/textFontStyle.ts +13 -0
  199. package/src/core/styles/font/types.ts +35 -0
  200. package/src/core/styles/grid/gridItemStyle.ts +82 -0
  201. package/src/core/styles/grid/gridStyle.ts +108 -0
  202. package/src/core/styles/grid/index.ts +3 -0
  203. package/src/core/styles/grid/types.ts +37 -0
  204. package/src/core/styles/helpers.ts +72 -0
  205. package/src/core/styles/index.ts +5 -0
  206. package/src/core/styles/input/index.ts +2 -0
  207. package/src/core/styles/input/responsiveInputPaddingStyle.ts +78 -0
  208. package/src/core/styles/input/textInputStyle.ts +263 -0
  209. package/src/core/styles/internal.ts +12 -0
  210. package/src/core/styles/margin/index.ts +2 -0
  211. package/src/core/styles/margin/marginStyle.ts +21 -0
  212. package/src/core/styles/margin/marginsStyle.test.ts +33 -0
  213. package/src/core/styles/margin/types.ts +9 -0
  214. package/src/core/styles/padding/index.ts +2 -0
  215. package/src/core/styles/padding/paddingStyle.test.ts +33 -0
  216. package/src/core/styles/padding/paddingStyle.ts +21 -0
  217. package/src/core/styles/padding/types.ts +12 -0
  218. package/src/core/styles/radius/index.ts +2 -0
  219. package/src/core/styles/radius/radiusStyle.ts +23 -0
  220. package/src/core/styles/radius/types.ts +8 -0
  221. package/src/core/styles/shadow/index.ts +2 -0
  222. package/src/core/styles/shadow/shadowStyle.ts +29 -0
  223. package/src/core/styles/shadow/types.ts +6 -0
  224. package/src/core/styles/types.ts +8 -0
  225. package/src/core/theme/__workshop__/build/Root.tsx +367 -0
  226. package/src/core/theme/__workshop__/build/helpers.ts +46 -0
  227. package/src/core/theme/__workshop__/build/story.tsx +465 -0
  228. package/src/core/theme/__workshop__/canvas.tsx +351 -0
  229. package/src/core/theme/__workshop__/color.tsx +62 -0
  230. package/src/core/theme/__workshop__/debug/story.tsx +408 -0
  231. package/src/core/theme/__workshop__/index.ts +39 -0
  232. package/src/core/theme/__workshop__/layer.tsx +78 -0
  233. package/src/core/theme/__workshop__/nestedProvider.tsx +15 -0
  234. package/src/core/theme/theme.test.tsx +73 -0
  235. package/src/core/theme/themeColorProvider.tsx +29 -0
  236. package/src/core/theme/themeContext.ts +10 -0
  237. package/src/core/theme/themeProvider.tsx +62 -0
  238. package/src/core/types/avatar.ts +14 -0
  239. package/src/core/types/box.ts +19 -0
  240. package/src/core/types/button.ts +21 -0
  241. package/src/core/types/flex.ts +30 -0
  242. package/src/core/types/grid.ts +14 -0
  243. package/src/core/types/gridItem.ts +29 -0
  244. package/src/core/types/index.ts +14 -0
  245. package/src/core/types/radius.ts +4 -0
  246. package/src/core/types/selectable.ts +6 -0
  247. package/src/core/types/text.ts +4 -0
  248. package/src/core/utils/arrow/arrow.tsx +123 -0
  249. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +24 -0
  250. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +21 -0
  251. package/src/core/utils/elementQuery/elementQuery.tsx +53 -0
  252. package/src/core/utils/errorBoundary.tsx +48 -0
  253. package/src/core/utils/layer/layer.tsx +98 -0
  254. package/src/core/utils/layer/layerProvider.tsx +110 -0
  255. package/src/core/utils/portal/portal.ts +32 -0
  256. package/src/core/utils/portal/portalProvider.tsx +79 -0
  257. package/src/core/utils/srOnly/srOnly.tsx +36 -0
  258. package/src/core/utils/virtualList/virtualList.tsx +174 -0
  259. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +1 -1
  260. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +1 -1
  261. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +6 -1
  262. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +2 -2
  263. package/src/theme/build/_deprecated/color/card/createCardStates.ts +1 -1
  264. package/src/theme/build/_deprecated/color/factory.ts +3 -2
  265. package/src/theme/build/_deprecated/color/input/createInputModes.ts +1 -1
  266. package/src/theme/build/_deprecated/color/muted/createMuted.ts +1 -1
  267. package/src/theme/build/_deprecated/color/spot/createSpot.ts +1 -1
  268. package/src/theme/build/buildColorTheme.ts +1 -1
  269. package/src/theme/build/buildTheme.ts +32 -8
  270. package/src/theme/build/lib/color-fns/rgba.ts +0 -4
  271. package/src/theme/build/renderColorTheme.ts +4 -4
  272. package/src/theme/build/renderColorValue.ts +1 -1
  273. package/src/theme/build/resolveColorTokens.ts +1 -1
  274. package/src/theme/config/system.ts +1 -1
  275. package/src/theme/config/tokens/color/types.ts +1 -1
  276. package/src/theme/config/tokens/parseTokenKey.ts +1 -1
  277. package/src/theme/config/tokens/parseTokenValue.ts +1 -1
  278. package/src/theme/config/tokens/types.ts +1 -1
  279. package/src/theme/config/types.ts +3 -2
  280. package/src/theme/defaults/config.ts +2 -2
  281. package/src/theme/defaults/fonts.ts +16 -17
  282. package/src/theme/getScopedTheme.ts +9 -6
  283. package/src/theme/index.ts +1 -7
  284. package/src/theme/system/avatar.ts +14 -0
  285. package/src/theme/system/font.ts +52 -0
  286. package/src/theme/system/index.ts +11 -0
  287. package/src/theme/system/input.ts +33 -0
  288. package/src/theme/system/theme.ts +138 -0
  289. package/src/theme/system/v0/color/_generic.ts +35 -0
  290. package/src/theme/system/v0/color/color.ts +40 -0
  291. package/src/theme/system/v0/color/input.ts +34 -0
  292. package/src/theme/system/v0/color/spot.ts +13 -0
  293. package/src/theme/system/v0/index.ts +3 -0
  294. package/src/theme/versioning/getTheme_v2.ts +1 -2
  295. package/src/theme/versioning/index.ts +4 -0
  296. package/src/theme/versioning/is_v0.ts +1 -2
  297. package/src/theme/versioning/is_v2.ts +1 -2
  298. package/src/theme/versioning/themeColor_v0_v2.ts +4 -6
  299. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
  300. package/src/theme/versioning/v0_v2.ts +1 -2
  301. package/src/theme/versioning/v2_v0.ts +6 -6
  302. package/bin/ui.js +0 -5
  303. package/dist/_chunks-cjs/buildCommand.js +0 -32
  304. package/dist/_chunks-cjs/buildCommand.js.map +0 -1
  305. package/dist/cli.d.ts +0 -1
  306. package/dist/cli.js +0 -357
  307. package/dist/cli.js.map +0 -1
  308. package/dist/css.d.mts +0 -1471
  309. package/dist/css.d.ts +0 -1471
  310. package/dist/css.js +0 -4830
  311. package/dist/css.js.map +0 -1
  312. package/dist/css.mjs +0 -4831
  313. package/dist/css.mjs.map +0 -1
  314. package/dist/sanity-palette.css +0 -1
  315. package/dist/sanity-theme.css +0 -1
  316. package/dist/system.css +0 -23238
  317. package/exports/css.ts +0 -1
  318. package/src/cli/buildCommand.ts +0 -48
  319. package/src/cli/index.ts +0 -38
  320. package/src/css/_comp.test.ts +0 -7
  321. package/src/css/_comp.ts +0 -11
  322. package/src/css/_mergeStyles.ts +0 -31
  323. package/src/css/_resp.ts +0 -38
  324. package/src/css/_responsiveRule.ts +0 -38
  325. package/src/css/aspects/border/border.style.ts +0 -13
  326. package/src/css/aspects/border/border.ts +0 -14
  327. package/src/css/aspects/border/index.ts +0 -2
  328. package/src/css/aspects/border/types.ts +0 -10
  329. package/src/css/aspects/display/display.style.ts +0 -34
  330. package/src/css/aspects/display/display.ts +0 -7
  331. package/src/css/aspects/display/index.ts +0 -2
  332. package/src/css/aspects/display/types.ts +0 -17
  333. package/src/css/aspects/flex/flex.style.ts +0 -30
  334. package/src/css/aspects/flex/flex.ts +0 -13
  335. package/src/css/aspects/flex/flexAlign.style.ts +0 -12
  336. package/src/css/aspects/flex/flexDirection.style.ts +0 -11
  337. package/src/css/aspects/flex/flexJustify.style.ts +0 -13
  338. package/src/css/aspects/flex/flexWrap.style.ts +0 -10
  339. package/src/css/aspects/flex/index.ts +0 -2
  340. package/src/css/aspects/flex/types.ts +0 -35
  341. package/src/css/aspects/flexItem/flex.style.ts +0 -22
  342. package/src/css/aspects/flexItem/flexItem.ts +0 -8
  343. package/src/css/aspects/flexItem/index.ts +0 -2
  344. package/src/css/aspects/flexItem/types.ts +0 -27
  345. package/src/css/aspects/font/font.style.ts +0 -151
  346. package/src/css/aspects/font/font.ts +0 -12
  347. package/src/css/aspects/font/index.ts +0 -2
  348. package/src/css/aspects/font/types.ts +0 -12
  349. package/src/css/aspects/gap/gap.style.ts +0 -21
  350. package/src/css/aspects/gap/gap.ts +0 -8
  351. package/src/css/aspects/gap/index.ts +0 -2
  352. package/src/css/aspects/gap/types.ts +0 -10
  353. package/src/css/aspects/grid/grid.ts +0 -13
  354. package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
  355. package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
  356. package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
  357. package/src/css/aspects/grid/gridColumns.style.ts +0 -18
  358. package/src/css/aspects/grid/gridRows.style.ts +0 -18
  359. package/src/css/aspects/grid/index.ts +0 -2
  360. package/src/css/aspects/grid/types.ts +0 -29
  361. package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
  362. package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
  363. package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
  364. package/src/css/aspects/gridItem/gridItem.ts +0 -15
  365. package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
  366. package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
  367. package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
  368. package/src/css/aspects/gridItem/index.ts +0 -2
  369. package/src/css/aspects/gridItem/types.ts +0 -41
  370. package/src/css/aspects/height/height.style.ts +0 -9
  371. package/src/css/aspects/height/height.ts +0 -17
  372. package/src/css/aspects/height/index.ts +0 -1
  373. package/src/css/aspects/height/rules.ts +0 -7
  374. package/src/css/aspects/index.ts +0 -21
  375. package/src/css/aspects/inset/index.ts +0 -2
  376. package/src/css/aspects/inset/inset.style.ts +0 -12
  377. package/src/css/aspects/inset/inset.ts +0 -13
  378. package/src/css/aspects/inset/types.ts +0 -13
  379. package/src/css/aspects/margin/index.ts +0 -2
  380. package/src/css/aspects/margin/margin.style.ts +0 -46
  381. package/src/css/aspects/margin/margin.ts +0 -15
  382. package/src/css/aspects/margin/types.ts +0 -11
  383. package/src/css/aspects/maxWidth/index.ts +0 -2
  384. package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
  385. package/src/css/aspects/maxWidth/maxWidth.ts +0 -6
  386. package/src/css/aspects/maxWidth/types.ts +0 -7
  387. package/src/css/aspects/minWidth/index.ts +0 -2
  388. package/src/css/aspects/minWidth/minWidth.style.ts +0 -13
  389. package/src/css/aspects/minWidth/minWidth.ts +0 -6
  390. package/src/css/aspects/minWidth/types.ts +0 -7
  391. package/src/css/aspects/outline/outline.style.ts +0 -9
  392. package/src/css/aspects/overflow/index.ts +0 -2
  393. package/src/css/aspects/overflow/overflow.style.ts +0 -11
  394. package/src/css/aspects/overflow/overflow.ts +0 -11
  395. package/src/css/aspects/overflow/types.ts +0 -11
  396. package/src/css/aspects/padding/index.ts +0 -2
  397. package/src/css/aspects/padding/padding.style.ts +0 -46
  398. package/src/css/aspects/padding/padding.ts +0 -15
  399. package/src/css/aspects/padding/types.ts +0 -14
  400. package/src/css/aspects/pointerEvents/index.ts +0 -2
  401. package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
  402. package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -6
  403. package/src/css/aspects/pointerEvents/types.ts +0 -7
  404. package/src/css/aspects/position/index.ts +0 -2
  405. package/src/css/aspects/position/position.style.ts +0 -12
  406. package/src/css/aspects/position/position.ts +0 -7
  407. package/src/css/aspects/position/types.ts +0 -9
  408. package/src/css/aspects/radius/index.ts +0 -2
  409. package/src/css/aspects/radius/radius.style.ts +0 -16
  410. package/src/css/aspects/radius/radius.ts +0 -8
  411. package/src/css/aspects/radius/types.ts +0 -8
  412. package/src/css/aspects/shadow/index.ts +0 -2
  413. package/src/css/aspects/shadow/shadow.style.ts +0 -49
  414. package/src/css/aspects/shadow/shadow.ts +0 -7
  415. package/src/css/aspects/shadow/types.ts +0 -8
  416. package/src/css/aspects/textOverflow/index.ts +0 -2
  417. package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
  418. package/src/css/aspects/textOverflow/textOverflow.ts +0 -6
  419. package/src/css/aspects/textOverflow/types.ts +0 -8
  420. package/src/css/aspects/width/index.ts +0 -2
  421. package/src/css/aspects/width/rules.ts +0 -8
  422. package/src/css/aspects/width/types.ts +0 -9
  423. package/src/css/aspects/width/width.style.ts +0 -11
  424. package/src/css/aspects/width/width.ts +0 -6
  425. package/src/css/compile/compilePalette.ts +0 -27
  426. package/src/css/compile/compileRule.ts +0 -97
  427. package/src/css/compile/compileRules.test.ts +0 -36
  428. package/src/css/compile/compileRules.ts +0 -43
  429. package/src/css/compile/compileStyle.ts +0 -148
  430. package/src/css/compile/compileSystem.ts +0 -10
  431. package/src/css/compile/compileTheme.ts +0 -15
  432. package/src/css/compile/compileTheme_v3.ts +0 -401
  433. package/src/css/compile/types.ts +0 -6
  434. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
  435. package/src/css/components/breadcrumbs/breadcrumbs.ts +0 -5
  436. package/src/css/components/breadcrumbs/rules.ts +0 -25
  437. package/src/css/components/dialog/dialog.style.ts +0 -79
  438. package/src/css/components/dialog/dialog.ts +0 -30
  439. package/src/css/components/dialog/index.ts +0 -1
  440. package/src/css/components/dialog/rules.ts +0 -78
  441. package/src/css/components/menu/index.ts +0 -1
  442. package/src/css/components/menu/menu.style.ts +0 -17
  443. package/src/css/components/menu/menu.ts +0 -9
  444. package/src/css/components/menu/rules.ts +0 -15
  445. package/src/css/components/skeleton/index.ts +0 -2
  446. package/src/css/components/skeleton/rules.ts +0 -113
  447. package/src/css/components/skeleton/skeleton.style.ts +0 -96
  448. package/src/css/components/skeleton/skeleton.ts +0 -31
  449. package/src/css/components/skeleton/types.ts +0 -26
  450. package/src/css/components/toast/index.ts +0 -1
  451. package/src/css/components/toast/rules.ts +0 -18
  452. package/src/css/components/toast/toast.style.ts +0 -20
  453. package/src/css/components/toast/toast.ts +0 -21
  454. package/src/css/components/tree/index.ts +0 -1
  455. package/src/css/components/tree/rules.ts +0 -168
  456. package/src/css/components/tree/tree.style.ts +0 -55
  457. package/src/css/components/tree/tree.ts +0 -5
  458. package/src/css/composeClassNames.ts +0 -17
  459. package/src/css/constants.ts +0 -1
  460. package/src/css/index.ts +0 -41
  461. package/src/css/primitives/_arrow/_arrow.style.ts +0 -73
  462. package/src/css/primitives/_arrow/_arrow.ts +0 -14
  463. package/src/css/primitives/_arrow/index.ts +0 -1
  464. package/src/css/primitives/_input/__workshop__/customInput.tsx +0 -16
  465. package/src/css/primitives/_input/__workshop__/index.ts +0 -14
  466. package/src/css/primitives/_input/_input.style.ts +0 -162
  467. package/src/css/primitives/_input/index.ts +0 -2
  468. package/src/css/primitives/_input/input.ts +0 -25
  469. package/src/css/primitives/_input/types.ts +0 -12
  470. package/src/css/primitives/_selectable/__style.ts +0 -117
  471. package/src/css/primitives/_selectable/_contants.ts +0 -11
  472. package/src/css/primitives/_selectable/_selectable.style.ts +0 -132
  473. package/src/css/primitives/_selectable/index.ts +0 -2
  474. package/src/css/primitives/_selectable/selectable.ts +0 -9
  475. package/src/css/primitives/_selectable/types.ts +0 -8
  476. package/src/css/primitives/avatar/avatar.style.ts +0 -175
  477. package/src/css/primitives/avatar/avatar.ts +0 -27
  478. package/src/css/primitives/avatar/index.ts +0 -2
  479. package/src/css/primitives/avatar/rules.ts +0 -176
  480. package/src/css/primitives/avatar/types.ts +0 -8
  481. package/src/css/primitives/badge/badge.style.ts +0 -22
  482. package/src/css/primitives/badge/badge.ts +0 -8
  483. package/src/css/primitives/badge/index.ts +0 -2
  484. package/src/css/primitives/badge/types.ts +0 -8
  485. package/src/css/primitives/box/box.style.ts +0 -31
  486. package/src/css/primitives/box/box.ts +0 -52
  487. package/src/css/primitives/box/index.ts +0 -2
  488. package/src/css/primitives/box/types.ts +0 -51
  489. package/src/css/primitives/button/_constants.ts +0 -17
  490. package/src/css/primitives/button/button.style.ts +0 -201
  491. package/src/css/primitives/button/button.ts +0 -41
  492. package/src/css/primitives/button/rules.ts +0 -302
  493. package/src/css/primitives/card/_constants.ts +0 -13
  494. package/src/css/primitives/card/card.style.ts +0 -270
  495. package/src/css/primitives/card/card.ts +0 -14
  496. package/src/css/primitives/card/types.ts +0 -10
  497. package/src/css/primitives/checkbox/__styles.ts +0 -129
  498. package/src/css/primitives/checkbox/checkbox.style.ts +0 -154
  499. package/src/css/primitives/checkbox/checkbox.ts +0 -9
  500. package/src/css/primitives/checkbox/rules.ts +0 -152
  501. package/src/css/primitives/code/code.style.ts +0 -62
  502. package/src/css/primitives/code/code.ts +0 -9
  503. package/src/css/primitives/code/index.ts +0 -2
  504. package/src/css/primitives/code/rules.ts +0 -96
  505. package/src/css/primitives/code/types.ts +0 -10
  506. package/src/css/primitives/container/container.style.ts +0 -10
  507. package/src/css/primitives/container/container.ts +0 -7
  508. package/src/css/primitives/container/rules.ts +0 -8
  509. package/src/css/primitives/container/types.ts +0 -7
  510. package/src/css/primitives/heading/heading.style.ts +0 -47
  511. package/src/css/primitives/heading/heading.ts +0 -17
  512. package/src/css/primitives/heading/index.ts +0 -2
  513. package/src/css/primitives/heading/rules.ts +0 -155
  514. package/src/css/primitives/heading/types.ts +0 -12
  515. package/src/css/primitives/kbd/index.ts +0 -2
  516. package/src/css/primitives/kbd/kbd.style.ts +0 -22
  517. package/src/css/primitives/kbd/kbd.ts +0 -7
  518. package/src/css/primitives/kbd/rules.ts +0 -20
  519. package/src/css/primitives/kbd/types.ts +0 -7
  520. package/src/css/primitives/label/index.ts +0 -2
  521. package/src/css/primitives/label/label.style.ts +0 -48
  522. package/src/css/primitives/label/label.ts +0 -16
  523. package/src/css/primitives/label/rules.ts +0 -137
  524. package/src/css/primitives/label/types.ts +0 -12
  525. package/src/css/primitives/popover/index.ts +0 -1
  526. package/src/css/primitives/popover/popover.style.ts +0 -5
  527. package/src/css/primitives/popover/popover.ts +0 -9
  528. package/src/css/primitives/popover/rules.ts +0 -5
  529. package/src/css/primitives/radio/radio.style.ts +0 -123
  530. package/src/css/primitives/radio/radio.ts +0 -5
  531. package/src/css/primitives/radio/rules.ts +0 -121
  532. package/src/css/primitives/select/index.ts +0 -2
  533. package/src/css/primitives/select/rules.ts +0 -22
  534. package/src/css/primitives/select/select.style.ts +0 -24
  535. package/src/css/primitives/select/select.ts +0 -12
  536. package/src/css/primitives/select/types.ts +0 -5
  537. package/src/css/primitives/spinner/rules.ts +0 -21
  538. package/src/css/primitives/spinner/spinner.style.ts +0 -22
  539. package/src/css/primitives/spinner/spinner.ts +0 -9
  540. package/src/css/primitives/stack/stack.style.ts +0 -9
  541. package/src/css/primitives/stack/stack.ts +0 -6
  542. package/src/css/primitives/switch/rules.ts +0 -340
  543. package/src/css/primitives/switch/switch.style.ts +0 -94
  544. package/src/css/primitives/switch/switch.ts +0 -21
  545. package/src/css/primitives/text/index.ts +0 -2
  546. package/src/css/primitives/text/rules.ts +0 -164
  547. package/src/css/primitives/text/text.style.ts +0 -64
  548. package/src/css/primitives/text/text.ts +0 -17
  549. package/src/css/primitives/text/types.ts +0 -11
  550. package/src/css/primitives/textArea/index.ts +0 -2
  551. package/src/css/primitives/textArea/rules.ts +0 -7
  552. package/src/css/primitives/textArea/textArea.style.ts +0 -9
  553. package/src/css/primitives/textArea/textArea.ts +0 -8
  554. package/src/css/primitives/textArea/types.ts +0 -5
  555. package/src/css/primitives/textInput/index.ts +0 -2
  556. package/src/css/primitives/textInput/rules.ts +0 -224
  557. package/src/css/primitives/textInput/textInput.style.ts +0 -167
  558. package/src/css/primitives/textInput/textInput.ts +0 -8
  559. package/src/css/primitives/textInput/types.ts +0 -11
  560. package/src/css/primitives/token/rules.ts +0 -45
  561. package/src/css/primitives/token/token.style.ts +0 -49
  562. package/src/css/primitives/tooltip/index.ts +0 -1
  563. package/src/css/primitives/tooltip/rules.ts +0 -19
  564. package/src/css/primitives/tooltip/tooltip.style.ts +0 -21
  565. package/src/css/primitives/tooltip/tooltip.ts +0 -9
  566. package/src/css/responsiveRules.ts +0 -25
  567. package/src/css/scopeClassName.ts +0 -6
  568. package/src/css/system.style.ts +0 -158
  569. package/src/css/types.ts +0 -850
  570. package/src/css/util.ts +0 -27
  571. package/src/css/utils/srOnly/srOnly.style.ts +0 -14
  572. package/src/css/utils/srOnly/srOnly.ts +0 -5
  573. package/src/css/varNames.ts +0 -496
  574. package/src/css/vars.ts +0 -465
  575. package/src/theme/_constants.ts +0 -26
  576. package/src/theme/_types.ts +0 -41
  577. package/src/theme/palette/constants.ts +0 -13
  578. package/src/theme/palette/index.ts +0 -2
  579. package/src/theme/palette/types.ts +0 -4
  580. package/src/theme/types.ts +0 -32
  581. package/src/theme/v0/color/_generic.ts +0 -35
  582. package/src/theme/v0/color/color.ts +0 -40
  583. package/src/theme/v0/color/input.ts +0 -34
  584. package/src/theme/v0/color/spot.ts +0 -13
  585. package/src/theme/v0/font.ts +0 -53
  586. package/src/theme/v0/index.ts +0 -10
  587. package/src/theme/v0/theme.ts +0 -72
  588. package/src/theme/v2/avatar.ts +0 -14
  589. package/src/theme/v2/index.ts +0 -4
  590. package/src/theme/v2/input.ts +0 -33
  591. package/src/theme/v2/theme.ts +0 -49
  592. package/src/theme/v3/buildTheme_v3.test.ts +0 -40
  593. package/src/theme/v3/buildTheme_v3.ts +0 -29
  594. package/src/theme/v3/color/buildColor_v3.ts +0 -198
  595. package/src/theme/v3/color/card.ts +0 -121
  596. package/src/theme/v3/color/color.ts +0 -98
  597. package/src/theme/v3/color/element.ts +0 -19
  598. package/src/theme/v3/color/index.ts +0 -7
  599. package/src/theme/v3/color/parseColor.test.ts +0 -79
  600. package/src/theme/v3/color/parseColor.ts +0 -167
  601. package/src/theme/v3/color/renderColor.test.ts +0 -19
  602. package/src/theme/v3/color/renderColor.ts +0 -33
  603. package/src/theme/v3/color/token.ts +0 -17
  604. package/src/theme/v3/color/tokens.ts +0 -5
  605. package/src/theme/v3/defaults.ts +0 -202
  606. package/src/theme/v3/index.ts +0 -6
  607. package/src/theme/v3/merge.ts +0 -22
  608. package/src/theme/v3/resolveTokens.ts +0 -204
  609. package/src/theme/v3/tokens.ts +0 -16
  610. package/src/theme/v3/types.ts +0 -45
  611. package/src/theme/versioning/themeColor_v3_v2.ts +0 -206
  612. package/src/theme/versioning/v3_v2.ts +0 -108
  613. package/src/ui/StyleTags.tsx +0 -24
  614. package/src/ui/_compat/index.ts +0 -9
  615. package/src/ui/_compat/styles/_responsive.ts +0 -19
  616. package/src/ui/_compat/styles/index.ts +0 -1
  617. package/src/ui/_compat/theme/theme.test.tsx +0 -73
  618. package/src/ui/_compat/theme/themeColorProvider.tsx +0 -30
  619. package/src/ui/_compat/theme/themeContext.ts +0 -10
  620. package/src/ui/_compat/theme/themeProvider.tsx +0 -74
  621. package/src/ui/_compat/types.ts +0 -274
  622. package/src/ui/components/autocomplete/__workshop__/async.tsx +0 -156
  623. package/src/ui/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -131
  624. package/src/ui/components/autocomplete/__workshop__/custom.tsx +0 -90
  625. package/src/ui/components/autocomplete/__workshop__/example.tsx +0 -80
  626. package/src/ui/components/autocomplete/__workshop__/fullscreen.tsx +0 -293
  627. package/src/ui/components/autocomplete/autocomplete.tsx +0 -722
  628. package/src/ui/components/autocomplete/autocompleteOption.tsx +0 -45
  629. package/src/ui/components/autocomplete/types.ts +0 -108
  630. package/src/ui/components/breadcrumbs/breadcrumbs.tsx +0 -127
  631. package/src/ui/components/breadcrumbs/index.ts +0 -1
  632. package/src/ui/components/dialog/__workshop__/nested.tsx +0 -72
  633. package/src/ui/components/dialog/__workshop__/onScroll.tsx +0 -39
  634. package/src/ui/components/dialog/__workshop__/position.tsx +0 -30
  635. package/src/ui/components/dialog/__workshop__/props.tsx +0 -77
  636. package/src/ui/components/dialog/dialog.tsx +0 -432
  637. package/src/ui/components/dialog/dialogProvider.tsx +0 -35
  638. package/src/ui/components/hotkeys/hotkeys.tsx +0 -54
  639. package/src/ui/components/menu/__workshop__/menuButton.tsx +0 -80
  640. package/src/ui/components/menu/__workshop__/tones.tsx +0 -25
  641. package/src/ui/components/menu/menu.test.tsx +0 -128
  642. package/src/ui/components/menu/menu.tsx +0 -200
  643. package/src/ui/components/menu/menuButton.tsx +0 -275
  644. package/src/ui/components/menu/menuContext.ts +0 -31
  645. package/src/ui/components/menu/menuDivider.tsx +0 -22
  646. package/src/ui/components/menu/menuGroup.tsx +0 -228
  647. package/src/ui/components/menu/menuItem.tsx +0 -180
  648. package/src/ui/components/menu/useMenuController.ts +0 -241
  649. package/src/ui/components/skeleton/__workshop__/delay.tsx +0 -70
  650. package/src/ui/components/skeleton/__workshop__/skeleton.tsx +0 -64
  651. package/src/ui/components/skeleton/skeleton.tsx +0 -53
  652. package/src/ui/components/skeleton/textSkeleton.tsx +0 -132
  653. package/src/ui/components/tab/tab.tsx +0 -105
  654. package/src/ui/components/tab/tabList.tsx +0 -74
  655. package/src/ui/components/tab/tabPanel.tsx +0 -40
  656. package/src/ui/components/toast/__workshop__/toast.tsx +0 -26
  657. package/src/ui/components/toast/toast.tsx +0 -211
  658. package/src/ui/components/toast/toastLayer.tsx +0 -38
  659. package/src/ui/components/toast/types.ts +0 -28
  660. package/src/ui/components/tree/tree.tsx +0 -244
  661. package/src/ui/components/tree/treeGroup.tsx +0 -30
  662. package/src/ui/components/tree/treeItem.tsx +0 -220
  663. package/src/ui/components/tree/types.ts +0 -25
  664. package/src/ui/constants.ts +0 -85
  665. package/src/ui/helpers/index.ts +0 -5
  666. package/src/ui/helpers/props.ts +0 -10
  667. package/src/ui/hooks/useArrayProp.ts +0 -29
  668. package/src/ui/hooks/useClickOutside.test.tsx +0 -482
  669. package/src/ui/hooks/useForwardedRef.ts +0 -19
  670. package/src/ui/hooks/useMatchMedia.ts +0 -28
  671. package/src/ui/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
  672. package/src/ui/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  673. package/src/ui/hooks/usePrefersDark.ts +0 -16
  674. package/src/ui/hooks/usePrefersReducedMotion.ts +0 -16
  675. package/src/ui/index.ts +0 -9
  676. package/src/ui/primitives/_selectable/selectable.tsx +0 -31
  677. package/src/ui/primitives/avatar/__workshop__/asButton.tsx +0 -14
  678. package/src/ui/primitives/avatar/__workshop__/stack.tsx +0 -25
  679. package/src/ui/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  680. package/src/ui/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -72
  681. package/src/ui/primitives/avatar/avatar.tsx +0 -158
  682. package/src/ui/primitives/avatar/avatarCounter.tsx +0 -62
  683. package/src/ui/primitives/avatar/avatarStack.tsx +0 -82
  684. package/src/ui/primitives/badge/__workshop__/props.tsx +0 -30
  685. package/src/ui/primitives/badge/__workshop__/tones.tsx +0 -21
  686. package/src/ui/primitives/badge/badge.tsx +0 -64
  687. package/src/ui/primitives/box/__workshop__/props.tsx +0 -20
  688. package/src/ui/primitives/box/box.tsx +0 -162
  689. package/src/ui/primitives/button/__workshop__/custom.tsx +0 -50
  690. package/src/ui/primitives/button/__workshop__/props.tsx +0 -58
  691. package/src/ui/primitives/button/__workshop__/stacked.tsx +0 -59
  692. package/src/ui/primitives/button/button.tsx +0 -207
  693. package/src/ui/primitives/button/index.ts +0 -1
  694. package/src/ui/primitives/card/__workshop__/allTones.tsx +0 -27
  695. package/src/ui/primitives/card/__workshop__/asButton.tsx +0 -107
  696. package/src/ui/primitives/card/__workshop__/props.tsx +0 -55
  697. package/src/ui/primitives/card/__workshop__/selected.tsx +0 -93
  698. package/src/ui/primitives/card/card.tsx +0 -118
  699. package/src/ui/primitives/card/cardContext.ts +0 -10
  700. package/src/ui/primitives/card/cardProvider.tsx +0 -19
  701. package/src/ui/primitives/card/index.ts +0 -4
  702. package/src/ui/primitives/card/types.ts +0 -27
  703. package/src/ui/primitives/card/useCard.ts +0 -7
  704. package/src/ui/primitives/checkbox/checkbox.tsx +0 -74
  705. package/src/ui/primitives/checkbox/index.ts +0 -1
  706. package/src/ui/primitives/code/__workshop__/props.tsx +0 -21
  707. package/src/ui/primitives/code/code.tsx +0 -49
  708. package/src/ui/primitives/code/refractor.tsx +0 -20
  709. package/src/ui/primitives/container/__workshop__/example.tsx +0 -20
  710. package/src/ui/primitives/container/container.tsx +0 -35
  711. package/src/ui/primitives/container/index.ts +0 -2
  712. package/src/ui/primitives/flex/__workshop__/example.tsx +0 -34
  713. package/src/ui/primitives/flex/__workshop__/gap.tsx +0 -25
  714. package/src/ui/primitives/flex/flex.tsx +0 -29
  715. package/src/ui/primitives/grid/grid.tsx +0 -30
  716. package/src/ui/primitives/heading/__workshop__/plain.tsx +0 -32
  717. package/src/ui/primitives/heading/heading.tsx +0 -62
  718. package/src/ui/primitives/inline/__workshop__/plain.tsx +0 -27
  719. package/src/ui/primitives/inline/inline.tsx +0 -50
  720. package/src/ui/primitives/kbd/kbd.tsx +0 -55
  721. package/src/ui/primitives/label/__workshop__/opticalAlignment.tsx +0 -54
  722. package/src/ui/primitives/label/__workshop__/plain.tsx +0 -37
  723. package/src/ui/primitives/label/label.tsx +0 -67
  724. package/src/ui/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  725. package/src/ui/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  726. package/src/ui/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  727. package/src/ui/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  728. package/src/ui/primitives/popover/__workshop__/RecursiveStory.tsx +0 -70
  729. package/src/ui/primitives/popover/__workshop__/SidePanelStory.tsx +0 -93
  730. package/src/ui/primitives/popover/__workshop__/TestStory.tsx +0 -98
  731. package/src/ui/primitives/popover/helpers.ts +0 -32
  732. package/src/ui/primitives/popover/popover.tsx +0 -422
  733. package/src/ui/primitives/popover/popoverCard.tsx +0 -161
  734. package/src/ui/primitives/radio/index.ts +0 -1
  735. package/src/ui/primitives/radio/radio.tsx +0 -49
  736. package/src/ui/primitives/select/__workshop__/plain.tsx +0 -30
  737. package/src/ui/primitives/select/select.tsx +0 -85
  738. package/src/ui/primitives/spinner/__workshop__/Props.tsx +0 -16
  739. package/src/ui/primitives/spinner/animatedSpinnerIcon.tsx +0 -16
  740. package/src/ui/primitives/spinner/index.ts +0 -1
  741. package/src/ui/primitives/spinner/spinner.tsx +0 -33
  742. package/src/ui/primitives/stack/__workshop__/plain.tsx +0 -32
  743. package/src/ui/primitives/stack/index.ts +0 -1
  744. package/src/ui/primitives/stack/stack.tsx +0 -45
  745. package/src/ui/primitives/switch/index.ts +0 -1
  746. package/src/ui/primitives/switch/switch.tsx +0 -75
  747. package/src/ui/primitives/text/__workshop__/colored.tsx +0 -23
  748. package/src/ui/primitives/text/__workshop__/example.tsx +0 -39
  749. package/src/ui/primitives/text/text.tsx +0 -64
  750. package/src/ui/primitives/textArea/__workshop__/plain.tsx +0 -50
  751. package/src/ui/primitives/textArea/textArea.tsx +0 -71
  752. package/src/ui/primitives/textInput/__workshop__/plain.tsx +0 -104
  753. package/src/ui/primitives/textInput/__workshop__/typed.tsx +0 -23
  754. package/src/ui/primitives/textInput/textInput.tsx +0 -286
  755. package/src/ui/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  756. package/src/ui/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  757. package/src/ui/primitives/tooltip/__workshop__/props.tsx +0 -111
  758. package/src/ui/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  759. package/src/ui/primitives/tooltip/tooltip.test.tsx +0 -453
  760. package/src/ui/primitives/tooltip/tooltip.tsx +0 -466
  761. package/src/ui/primitives/tooltip/tooltipCard.tsx +0 -115
  762. package/src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -55
  763. package/src/ui/primitives/types.ts +0 -166
  764. package/src/ui/types/avatar.ts +0 -19
  765. package/src/ui/types/box.ts +0 -22
  766. package/src/ui/types/button.ts +0 -24
  767. package/src/ui/types/flex.ts +0 -27
  768. package/src/ui/types/grid.ts +0 -17
  769. package/src/ui/types/gridItem.ts +0 -32
  770. package/src/ui/types/index.ts +0 -15
  771. package/src/ui/types/props.ts +0 -18
  772. package/src/ui/types/radius.ts +0 -7
  773. package/src/ui/types/selectable.ts +0 -7
  774. package/src/ui/types/text.ts +0 -7
  775. package/src/ui/utils/arrow/arrow.tsx +0 -59
  776. package/src/ui/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  777. package/src/ui/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
  778. package/src/ui/utils/elementQuery/elementQuery.tsx +0 -53
  779. package/src/ui/utils/errorBoundary.tsx +0 -48
  780. package/src/ui/utils/layer/layer.tsx +0 -112
  781. package/src/ui/utils/layer/layerProvider.tsx +0 -110
  782. package/src/ui/utils/portal/portal.ts +0 -46
  783. package/src/ui/utils/portal/portalProvider.tsx +0 -79
  784. package/src/ui/utils/srOnly/index.ts +0 -1
  785. package/src/ui/utils/srOnly/srOnly.tsx +0 -35
  786. package/src/ui/utils/virtualList/virtualList.tsx +0 -189
  787. /package/src/{ui → core}/components/autocomplete/__mocks__/apiStore.ts +0 -0
  788. /package/src/{ui → core}/components/autocomplete/__mocks__/countries.ts +0 -0
  789. /package/src/{ui → core}/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -0
  790. /package/src/{ui → core}/components/autocomplete/__workshop__/index.ts +0 -0
  791. /package/src/{ui → core}/components/autocomplete/__workshop__/types.ts +0 -0
  792. /package/src/{ui → core}/components/autocomplete/autocompleteReducer.ts +0 -0
  793. /package/src/{ui → core}/components/autocomplete/constants.ts +0 -0
  794. /package/src/{ui → core}/components/autocomplete/index.ts +0 -0
  795. /package/src/{ui → core}/components/breadcrumbs/__workshop__/example.tsx +0 -0
  796. /package/src/{ui → core}/components/breadcrumbs/__workshop__/index.ts +0 -0
  797. /package/src/{css → core}/components/breadcrumbs/index.ts +0 -0
  798. /package/src/{ui → core}/components/dialog/__workshop__/activate.tsx +0 -0
  799. /package/src/{ui → core}/components/dialog/__workshop__/autoFocus.tsx +0 -0
  800. /package/src/{ui → core}/components/dialog/__workshop__/index.ts +0 -0
  801. /package/src/{ui → core}/components/dialog/__workshop__/layering.tsx +0 -0
  802. /package/src/{ui → core}/components/dialog/__workshop__/panes.tsx +0 -0
  803. /package/src/{ui → core}/components/dialog/__workshop__/provider.tsx +0 -0
  804. /package/src/{ui → core}/components/dialog/__workshop__/wrapped.tsx +0 -0
  805. /package/src/{ui → core}/components/dialog/dialogContext.ts +0 -0
  806. /package/src/{ui → core}/components/dialog/index.ts +0 -0
  807. /package/src/{ui → core}/components/dialog/useDialog.ts +0 -0
  808. /package/src/{ui → core}/components/hotkeys/__workshop__/index.ts +0 -0
  809. /package/src/{ui → core}/components/hotkeys/__workshop__/plain.tsx +0 -0
  810. /package/src/{ui → core}/components/hotkeys/index.ts +0 -0
  811. /package/src/{ui → core}/components/index.ts +0 -0
  812. /package/src/{ui → core}/components/menu/__workshop__/asComponent.tsx +0 -0
  813. /package/src/{ui → core}/components/menu/__workshop__/avatarMenu.tsx +0 -0
  814. /package/src/{ui → core}/components/menu/__workshop__/closableMenuButton.tsx +0 -0
  815. /package/src/{ui → core}/components/menu/__workshop__/constrainedInBoundary.tsx +0 -0
  816. /package/src/{ui → core}/components/menu/__workshop__/customMenuItem.tsx +0 -0
  817. /package/src/{ui → core}/components/menu/__workshop__/customSelectedState.tsx +0 -0
  818. /package/src/{ui → core}/components/menu/__workshop__/disableFocusOnClose.tsx +0 -0
  819. /package/src/{ui → core}/components/menu/__workshop__/groups.tsx +0 -0
  820. /package/src/{ui → core}/components/menu/__workshop__/index.ts +0 -0
  821. /package/src/{ui → core}/components/menu/__workshop__/menuGroupRight.tsx +0 -0
  822. /package/src/{ui → core}/components/menu/__workshop__/nestedMenu.tsx +0 -0
  823. /package/src/{ui → core}/components/menu/__workshop__/onCloseMenuButton.tsx +0 -0
  824. /package/src/{ui → core}/components/menu/__workshop__/selectedItem.tsx +0 -0
  825. /package/src/{ui → core}/components/menu/__workshop__/shouldFocus.tsx +0 -0
  826. /package/src/{ui → core}/components/menu/__workshop__/withoutArrow.tsx +0 -0
  827. /package/src/{ui → core}/components/menu/helpers.ts +0 -0
  828. /package/src/{ui → core}/components/menu/index.ts +0 -0
  829. /package/src/{ui → core}/components/menu/useMenu.ts +0 -0
  830. /package/src/{ui → core}/components/skeleton/__workshop__/index.ts +0 -0
  831. /package/src/{ui → core}/components/skeleton/index.ts +0 -0
  832. /package/src/{ui → core}/components/tab/__workshop__/example.tsx +0 -0
  833. /package/src/{ui → core}/components/tab/__workshop__/index.ts +0 -0
  834. /package/src/{ui → core}/components/tab/index.ts +0 -0
  835. /package/src/{ui → core}/components/toast/__workshop__/hook.tsx +0 -0
  836. /package/src/{ui → core}/components/toast/__workshop__/index.ts +0 -0
  837. /package/src/{ui → core}/components/toast/index.ts +0 -0
  838. /package/src/{ui → core}/components/toast/toast.test.tsx +0 -0
  839. /package/src/{ui → core}/components/toast/toastContext.ts +0 -0
  840. /package/src/{ui → core}/components/toast/toastProvider.tsx +0 -0
  841. /package/src/{ui → core}/components/toast/toastState.ts +0 -0
  842. /package/src/{ui → core}/components/toast/useToast.ts +0 -0
  843. /package/src/{ui → core}/components/tree/__workshop__/basic.perf.ts +0 -0
  844. /package/src/{ui → core}/components/tree/__workshop__/basic.tsx +0 -0
  845. /package/src/{ui → core}/components/tree/__workshop__/index.ts +0 -0
  846. /package/src/{ui → core}/components/tree/__workshop__/tabFromElement.tsx +0 -0
  847. /package/src/{ui → core}/components/tree/helpers.ts +0 -0
  848. /package/src/{ui → core}/components/tree/index.ts +0 -0
  849. /package/src/{ui → core}/components/tree/treeContext.ts +0 -0
  850. /package/src/{ui → core}/components/tree/useTree.ts +0 -0
  851. /package/src/{ui → core}/global.ts +0 -0
  852. /package/src/{ui → core}/helpers/animation.ts +0 -0
  853. /package/src/{ui → core}/helpers/element.ts +0 -0
  854. /package/src/{ui → core}/helpers/focus.ts +0 -0
  855. /package/src/{ui → core}/helpers/scroll.ts +0 -0
  856. /package/src/{ui → core}/hooks/index.ts +0 -0
  857. /package/src/{ui → core}/hooks/useClickOutside.ts +0 -0
  858. /package/src/{ui → core}/hooks/useClickOutsideEvent.test.tsx +0 -0
  859. /package/src/{ui → core}/hooks/useClickOutsideEvent.ts +0 -0
  860. /package/src/{ui → core}/hooks/useCustomValidity.ts +0 -0
  861. /package/src/{ui → core}/hooks/useDelayed.test.ts +0 -0
  862. /package/src/{ui → core}/hooks/useDelayedState.ts +0 -0
  863. /package/src/{ui → core}/hooks/useElementRect/__workshop__/example.tsx +0 -0
  864. /package/src/{ui → core}/hooks/useElementRect/__workshop__/index.ts +0 -0
  865. /package/src/{ui → core}/hooks/useElementRect/index.ts +0 -0
  866. /package/src/{ui → core}/hooks/useElementRect/useElementRect.ts +0 -0
  867. /package/src/{ui → core}/hooks/useElementSize.ts +0 -0
  868. /package/src/{ui → core}/hooks/useGlobalKeyDown.ts +0 -0
  869. /package/src/{ui → core}/hooks/useIsomorphicEffect.ts +0 -0
  870. /package/src/{ui → core}/hooks/useMediaIndex/__workshop__/index.ts +0 -0
  871. /package/src/{ui → core}/hooks/useMediaIndex/__workshop__/test.tsx +0 -0
  872. /package/src/{ui → core}/hooks/useMediaIndex/index.ts +0 -0
  873. /package/src/{ui → core}/hooks/useMounted.ts +0 -0
  874. /package/src/{ui → core}/hooks/usePrefersDark.hydration.test.tsx +0 -0
  875. /package/src/{ui → core}/hooks/usePrefersDark.test.tsx +0 -0
  876. /package/src/{ui → core}/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -0
  877. /package/src/{ui → core}/hooks/usePrefersReducedMotion.test.tsx +0 -0
  878. /package/src/{ui → core}/lib/createGlobalScopedContext.ts +0 -0
  879. /package/src/{ui → core}/lib/globalScope.ts +0 -0
  880. /package/src/{ui → core}/lib/isRecord.ts +0 -0
  881. /package/src/{ui → core}/middleware/origin.ts +0 -0
  882. /package/src/{ui → core}/observers/elementSizeObserver.ts +0 -0
  883. /package/src/{ui → core}/observers/index.ts +0 -0
  884. /package/src/{ui → core}/observers/resizeObserver.ts +0 -0
  885. /package/src/{ui → core}/primitives/_selectable/index.ts +0 -0
  886. /package/src/{ui → core}/primitives/avatar/__workshop__/index.ts +0 -0
  887. /package/src/{ui → core}/primitives/avatar/index.ts +0 -0
  888. /package/src/{ui → core}/primitives/avatar/types.ts +0 -0
  889. /package/src/{ui → core}/primitives/badge/__workshop__/index.ts +0 -0
  890. /package/src/{ui → core}/primitives/badge/badge.test.tsx +0 -0
  891. /package/src/{ui → core}/primitives/badge/index.ts +0 -0
  892. /package/src/{ui → core}/primitives/badge/types.ts +0 -0
  893. /package/src/{ui → core}/primitives/box/__workshop__/index.ts +0 -0
  894. /package/src/{ui → core}/primitives/box/__workshop__/responsive.tsx +0 -0
  895. /package/src/{ui → core}/primitives/box/index.ts +0 -0
  896. /package/src/{ui → core}/primitives/button/__workshop__/customIcons.tsx +0 -0
  897. /package/src/{ui → core}/primitives/button/__workshop__/disabled.tsx +0 -0
  898. /package/src/{ui → core}/primitives/button/__workshop__/index.ts +0 -0
  899. /package/src/{ui → core}/primitives/button/__workshop__/mixedChildren.tsx +0 -0
  900. /package/src/{ui → core}/primitives/button/__workshop__/sanityUploadButton.tsx +0 -0
  901. /package/src/{ui → core}/primitives/button/__workshop__/styled1.tsx +0 -0
  902. /package/src/{ui → core}/primitives/button/__workshop__/styled2.tsx +0 -0
  903. /package/src/{ui → core}/primitives/button/__workshop__/uploadButton.tsx +0 -0
  904. /package/src/{ui → core}/primitives/button/button.test.tsx +0 -0
  905. /package/src/{css → core}/primitives/button/index.ts +0 -0
  906. /package/src/{ui → core}/primitives/card/__workshop__/asComponent.tsx +0 -0
  907. /package/src/{ui → core}/primitives/card/__workshop__/checkered.tsx +0 -0
  908. /package/src/{ui → core}/primitives/card/__workshop__/index.ts +0 -0
  909. /package/src/{ui → core}/primitives/card/__workshop__/interactive.tsx +0 -0
  910. /package/src/{ui → core}/primitives/card/__workshop__/listNavigation.tsx +0 -0
  911. /package/src/{ui → core}/primitives/card/__workshop__/styled.tsx +0 -0
  912. /package/src/{css → core}/primitives/card/index.ts +0 -0
  913. /package/src/{ui → core}/primitives/checkbox/__workshop__/example.tsx +0 -0
  914. /package/src/{ui → core}/primitives/checkbox/__workshop__/index.ts +0 -0
  915. /package/src/{ui → core}/primitives/checkbox/__workshop__/props.tsx +0 -0
  916. /package/src/{ui → core}/primitives/checkbox/__workshop__/readOnly.tsx +0 -0
  917. /package/src/{ui → core}/primitives/checkbox/__workshop__/tones.tsx +0 -0
  918. /package/src/{css → core}/primitives/checkbox/index.ts +0 -0
  919. /package/src/{ui → core}/primitives/code/__workshop__/index.ts +0 -0
  920. /package/src/{ui → core}/primitives/code/__workshop__/opticalAlignment.tsx +0 -0
  921. /package/src/{ui → core}/primitives/code/index.ts +0 -0
  922. /package/src/{ui → core}/primitives/container/__workshop__/index.ts +0 -0
  923. /package/src/{css → core}/primitives/container/index.ts +0 -0
  924. /package/src/{ui → core}/primitives/container/types.ts +0 -0
  925. /package/src/{ui → core}/primitives/flex/__workshop__/index.ts +0 -0
  926. /package/src/{ui → core}/primitives/flex/index.ts +0 -0
  927. /package/src/{ui → core}/primitives/grid/__workshop__/index.ts +0 -0
  928. /package/src/{ui → core}/primitives/grid/__workshop__/responsive.tsx +0 -0
  929. /package/src/{ui → core}/primitives/grid/index.ts +0 -0
  930. /package/src/{ui → core}/primitives/heading/__workshop__/index.ts +0 -0
  931. /package/src/{ui → core}/primitives/heading/__workshop__/opticalAlignment.tsx +0 -0
  932. /package/src/{ui → core}/primitives/heading/index.ts +0 -0
  933. /package/src/{ui → core}/primitives/index.ts +0 -0
  934. /package/src/{ui → core}/primitives/inline/__workshop__/index.ts +0 -0
  935. /package/src/{ui → core}/primitives/inline/index.ts +0 -0
  936. /package/src/{ui → core}/primitives/inline/types.ts +0 -0
  937. /package/src/{ui → core}/primitives/kbd/__workshop__/index.ts +0 -0
  938. /package/src/{ui → core}/primitives/kbd/__workshop__/plain.tsx +0 -0
  939. /package/src/{ui → core}/primitives/kbd/index.ts +0 -0
  940. /package/src/{ui → core}/primitives/label/__workshop__/index.ts +0 -0
  941. /package/src/{ui → core}/primitives/label/index.ts +0 -0
  942. /package/src/{ui → core}/primitives/popover/__workshop__/MarginsStory.tsx +0 -0
  943. /package/src/{ui → core}/primitives/popover/__workshop__/index.ts +0 -0
  944. /package/src/{ui → core}/primitives/popover/constants.ts +0 -0
  945. /package/src/{ui → core}/primitives/popover/floating-ui/size.ts +0 -0
  946. /package/src/{ui → core}/primitives/popover/index.ts +0 -0
  947. /package/src/{ui → core}/primitives/popover/types.ts +0 -0
  948. /package/src/{ui → core}/primitives/radio/__workshop__/example.tsx +0 -0
  949. /package/src/{ui → core}/primitives/radio/__workshop__/index.ts +0 -0
  950. /package/src/{ui → core}/primitives/radio/__workshop__/plain.tsx +0 -0
  951. /package/src/{css → core}/primitives/radio/index.ts +0 -0
  952. /package/src/{ui → core}/primitives/select/__workshop__/index.ts +0 -0
  953. /package/src/{ui → core}/primitives/select/__workshop__/readOnly.tsx +0 -0
  954. /package/src/{ui → core}/primitives/select/index.ts +0 -0
  955. /package/src/{ui → core}/primitives/spinner/__workshop__/index.ts +0 -0
  956. /package/src/{css → core}/primitives/spinner/index.ts +0 -0
  957. /package/src/{ui → core}/primitives/stack/__workshop__/index.ts +0 -0
  958. /package/src/{css → core}/primitives/stack/index.ts +0 -0
  959. /package/src/{ui → core}/primitives/switch/__workshop__/example.tsx +0 -0
  960. /package/src/{ui → core}/primitives/switch/__workshop__/index.ts +0 -0
  961. /package/src/{ui → core}/primitives/switch/__workshop__/props.tsx +0 -0
  962. /package/src/{css → core}/primitives/switch/index.ts +0 -0
  963. /package/src/{ui → core}/primitives/text/__workshop__/index.ts +0 -0
  964. /package/src/{ui → core}/primitives/text/__workshop__/opticalAlignment.tsx +0 -0
  965. /package/src/{ui → core}/primitives/text/index.ts +0 -0
  966. /package/src/{ui → core}/primitives/textArea/__workshop__/index.ts +0 -0
  967. /package/src/{ui → core}/primitives/textArea/index.ts +0 -0
  968. /package/src/{ui → core}/primitives/textInput/__workshop__/clearButton.tsx +0 -0
  969. /package/src/{ui → core}/primitives/textInput/__workshop__/customValidity.tsx +0 -0
  970. /package/src/{ui → core}/primitives/textInput/__workshop__/index.ts +0 -0
  971. /package/src/{ui → core}/primitives/textInput/__workshop__/readOnly.tsx +0 -0
  972. /package/src/{ui → core}/primitives/textInput/__workshop__/states.tsx +0 -0
  973. /package/src/{ui → core}/primitives/textInput/__workshop__/tones.tsx +0 -0
  974. /package/src/{ui → core}/primitives/textInput/index.ts +0 -0
  975. /package/src/{ui → core}/primitives/tooltip/__workshop__/index.ts +0 -0
  976. /package/src/{ui → core}/primitives/tooltip/constants.ts +0 -0
  977. /package/src/{ui → core}/primitives/tooltip/index.ts +0 -0
  978. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/index.ts +0 -0
  979. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -0
  980. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/types.ts +0 -0
  981. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -0
  982. /package/src/{ui/_compat → core}/theme/index.ts +0 -0
  983. /package/src/{ui/_compat → core}/theme/types.ts +0 -0
  984. /package/src/{ui/_compat → core}/theme/useRootTheme.ts +0 -0
  985. /package/src/{ui/_compat → core}/theme/useTheme.ts +0 -0
  986. /package/src/{ui → core}/types/badge.ts +0 -0
  987. /package/src/{ui → core}/types/card.ts +0 -0
  988. /package/src/{ui → core}/types/dialog.ts +0 -0
  989. /package/src/{ui → core}/types/placement.ts +0 -0
  990. /package/src/{ui → core}/types/popover.ts +0 -0
  991. /package/src/{ui → core}/utils/arrow/cmds.ts +0 -0
  992. /package/src/{ui → core}/utils/arrow/index.ts +0 -0
  993. /package/src/{ui → core}/utils/boundaryElement/__workshop__/index.ts +0 -0
  994. /package/src/{ui → core}/utils/boundaryElement/__workshop__/plain.tsx +0 -0
  995. /package/src/{ui → core}/utils/boundaryElement/boundaryElement.test.tsx +0 -0
  996. /package/src/{ui → core}/utils/boundaryElement/boundaryElementContext.ts +0 -0
  997. /package/src/{ui → core}/utils/boundaryElement/index.ts +0 -0
  998. /package/src/{ui → core}/utils/boundaryElement/types.ts +0 -0
  999. /package/src/{ui → core}/utils/boundaryElement/useBoundaryElement.ts +0 -0
  1000. /package/src/{ui → core}/utils/conditionalWrapper/index.ts +0 -0
  1001. /package/src/{ui → core}/utils/elementQuery/__workshop__/customMedia.tsx +0 -0
  1002. /package/src/{ui → core}/utils/elementQuery/__workshop__/index.ts +0 -0
  1003. /package/src/{ui → core}/utils/elementQuery/helpers.ts +0 -0
  1004. /package/src/{ui → core}/utils/elementQuery/index.ts +0 -0
  1005. /package/src/{ui → core}/utils/getElementRef.ts +0 -0
  1006. /package/src/{ui → core}/utils/index.ts +0 -0
  1007. /package/src/{ui → core}/utils/layer/__workshop__/_debug.tsx +0 -0
  1008. /package/src/{ui → core}/utils/layer/__workshop__/index.ts +0 -0
  1009. /package/src/{ui → core}/utils/layer/__workshop__/multipleRoots.tsx +0 -0
  1010. /package/src/{ui → core}/utils/layer/__workshop__/nested.tsx +0 -0
  1011. /package/src/{ui → core}/utils/layer/__workshop__/responsiveZOffset.tsx +0 -0
  1012. /package/src/{ui → core}/utils/layer/getLayerContext.test.ts +0 -0
  1013. /package/src/{ui → core}/utils/layer/getLayerContext.ts +0 -0
  1014. /package/src/{ui → core}/utils/layer/index.ts +0 -0
  1015. /package/src/{ui → core}/utils/layer/layer.test.tsx +0 -0
  1016. /package/src/{ui → core}/utils/layer/layerContext.ts +0 -0
  1017. /package/src/{ui → core}/utils/layer/types.ts +0 -0
  1018. /package/src/{ui → core}/utils/layer/useLayer.ts +0 -0
  1019. /package/src/{ui → core}/utils/portal/__workshop__/index.ts +0 -0
  1020. /package/src/{ui → core}/utils/portal/__workshop__/named.tsx +0 -0
  1021. /package/src/{ui → core}/utils/portal/index.ts +0 -0
  1022. /package/src/{ui → core}/utils/portal/portal.test.tsx +0 -0
  1023. /package/src/{ui → core}/utils/portal/portalContext.ts +0 -0
  1024. /package/src/{ui → core}/utils/portal/types.ts +0 -0
  1025. /package/src/{ui → core}/utils/portal/usePortal.ts +0 -0
  1026. /package/src/{ui → core}/utils/spanWithTextOverflow.tsx +0 -0
  1027. /package/src/{css → core}/utils/srOnly/index.ts +0 -0
  1028. /package/src/{ui → core}/utils/virtualList/__workshop__/changingProps.tsx +0 -0
  1029. /package/src/{ui → core}/utils/virtualList/__workshop__/elementScroll.tsx +0 -0
  1030. /package/src/{ui → core}/utils/virtualList/__workshop__/index.ts +0 -0
  1031. /package/src/{ui → core}/utils/virtualList/__workshop__/infiniteList.tsx +0 -0
  1032. /package/src/{ui → core}/utils/virtualList/__workshop__/windowScrolll.tsx +0 -0
  1033. /package/src/{ui → core}/utils/virtualList/index.ts +0 -0
  1034. /package/src/theme/{v2 → system}/color/_constants.ts +0 -0
  1035. /package/src/theme/{v2 → system}/color/_helpers.ts +0 -0
  1036. /package/src/theme/{v2 → system}/color/_system.ts +0 -0
  1037. /package/src/theme/{v2 → system}/color/avatar.ts +0 -0
  1038. /package/src/theme/{v2 → system}/color/badge.ts +0 -0
  1039. /package/src/theme/{v2 → system}/color/button.ts +0 -0
  1040. /package/src/theme/{v2 → system}/color/color.ts +0 -0
  1041. /package/src/theme/{v2 → system}/color/index.ts +0 -0
  1042. /package/src/theme/{v2 → system}/color/input.ts +0 -0
  1043. /package/src/theme/{v2 → system}/color/kbd.ts +0 -0
  1044. /package/src/theme/{v2 → system}/color/selectable.ts +0 -0
  1045. /package/src/theme/{v2 → system}/color/shadow.ts +0 -0
  1046. /package/src/theme/{v2 → system}/color/state.ts +0 -0
  1047. /package/src/theme/{v2 → system}/color/syntax.ts +0 -0
  1048. /package/src/theme/{v0 → system}/css.ts +0 -0
  1049. /package/src/theme/{v0 → system}/focusRing.ts +0 -0
  1050. /package/src/theme/{v0 → system}/layer.ts +0 -0
  1051. /package/src/theme/{v0 → system}/shadow.ts +0 -0
  1052. /package/src/theme/{v0 → system}/styles.ts +0 -0
  1053. /package/src/theme/{v0 → system/v0}/avatar.ts +0 -0
  1054. /package/src/theme/{v0 → system/v0}/color/_system.ts +0 -0
  1055. /package/src/theme/{v0 → system/v0}/color/base.ts +0 -0
  1056. /package/src/theme/{v0 → system/v0}/color/button.ts +0 -0
  1057. /package/src/theme/{v0 → system/v0}/color/card.ts +0 -0
  1058. /package/src/theme/{v0 → system/v0}/color/index.ts +0 -0
  1059. /package/src/theme/{v0 → system/v0}/color/muted.ts +0 -0
  1060. /package/src/theme/{v0 → system/v0}/color/selectable.ts +0 -0
  1061. /package/src/theme/{v0 → system/v0}/color/solid.ts +0 -0
  1062. /package/src/theme/{v0 → system/v0}/input.ts +0 -0
package/dist/theme.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sources":["../src/theme/_constants.ts","../src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/build/_deprecated/color/button/createButtonTones.ts","../src/theme/build/_deprecated/color/button/createButtonModes.ts","../src/theme/build/_deprecated/color/card/createCardStates.ts","../src/theme/build/_deprecated/color/defaults.ts","../src/theme/build/_deprecated/color/input/createInputModes.ts","../src/theme/build/_deprecated/color/muted/createMuted.ts","../src/theme/build/_deprecated/color/spot/createSpot.ts","../src/theme/build/_deprecated/color/factory.ts","../src/theme/defaults/config.ts","../src/theme/defaults/fonts.ts","../src/theme/v2/color/_constants.ts","../src/theme/v2/color/_helpers.ts","../src/theme/palette/constants.ts","../src/theme/v3/color/parseColor.ts","../src/theme/v3/color/renderColor.ts","../src/theme/v3/color/buildColor_v3.ts","../src/theme/v3/defaults.ts","../src/theme/v3/merge.ts","../src/theme/v3/resolveTokens.ts","../src/theme/v3/buildTheme_v3.ts","../src/theme/versioning/v2_v0.ts","../src/theme/versioning/themeColor_v3_v2.ts","../src/theme/versioning/v3_v2.ts","../src/theme/build/buildTheme.ts","../src/theme/build/lib/color-fns/blend/mix.ts","../src/theme/build/lib/color-fns/blend/multiply.ts","../src/theme/build/lib/color-fns/blend/screen.ts","../src/theme/build/lib/utils.ts","../src/theme/build/lib/color-fns/convert.ts","../src/theme/build/lib/color-fns/parse.ts","../src/theme/build/lib/color-fns/contrastRatio.ts","../src/theme/build/lib/color-fns/rgba.ts","../src/theme/config/system.ts","../src/theme/config/tokens/parseTokenKey.ts","../src/theme/config/tokens/parseTokenValue.ts","../src/theme/config/helpers.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/getScopedTheme.ts","../src/theme/versioning/getTheme_v2.ts"],"sourcesContent":["/** @public */\nexport const AVATAR_SIZE = [0, 1, 2, 3] as const\n\n/** @public */\nexport const CONTAINER = [0, 1, 2, 3, 4, 5, 'auto'] as const\n\n/** @public */\nexport const RADIUS = [0, 1, 2, 3, 4, 5, 6, 'full'] as const\n\n/** @public */\nexport const SPACE = [0, 0.5, 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","import {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../v0'\nimport {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 {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../v0'\nimport {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 {\n ThemeColorBase,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../v0'\nimport {ThemeColorButtonModeKey} from '../../../../v2'\nimport {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 {ThemeColorBase, ThemeColorButton, ThemeColorMuted, ThemeColorSolid} from '../../../../v0'\nimport {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 {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorName,\n ThemeColorSolid,\n} from '../../../../v0'\nimport {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 {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 {ThemeColorBase, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from '../../../../v0'\nimport {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 {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../v0'\nimport {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 {ThemeColorBase, ThemeColorSpot} from '../../../../v0'\nimport {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 {\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 {ThemeColorButtonModeKey, ThemeColorSyntax} from '../../../v2'\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","import {RootTheme_v2} from '../v2'\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 {ThemeFonts} from '../v0'\n\nexport const defaultThemeFonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\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 },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\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 weights: {\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 },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: -0.25,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\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 },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\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 },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\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 weights: {\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 },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\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, ColorHueKey, ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport {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","export const HUES = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n\nexport const TINTS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const\n","import {Hue, HUES, Tint, TINTS} from '../../palette'\n\nconst RE_PERCENTAGE = /^([0-9]+)%/\nconst RE_OPACITY = /^(1|0\\.[0-9]+)?/\n\nexport interface TokenizeColorResult {\n color: {type: 'black' | 'white'} | {type: 'hue'; hue: Hue | undefined; tint: Tint | undefined}\n opacity: number | undefined\n mix: number | undefined\n}\n\nexport function parseColor(str: string): TokenizeColorResult {\n let cursor = 0\n\n const color = getColor()\n\n if (!color) {\n throw new Error(`Invalid color: ${str}`)\n }\n\n const opacity = getOpacity()\n const mix = getMixPercentage()\n\n return {\n color,\n mix,\n opacity,\n }\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 getColor(): TokenizeColorResult['color'] | undefined {\n ignoreWhitespace()\n\n let v = _consume('black') || _consume('white')\n\n if (v) {\n return {\n type: v as 'black' | 'white',\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 slash after hue`)\n }\n\n cursor += 1\n\n const tint = getTint()\n\n if (!tint) {\n throw new Error(`Expected tint after hue`)\n }\n\n return {\n type: 'hue',\n hue,\n tint,\n }\n }\n }\n\n const tint = getTint()\n\n if (tint) {\n return {\n type: 'hue',\n hue: undefined,\n tint,\n }\n }\n\n return undefined\n }\n\n function getTint() {\n ignoreWhitespace()\n\n // if (_peek() === '/') {\n // cursor += 1\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 // for (const tint of COLOR_TINTS) {\n // const v = _consume(String(tint))\n\n // if (v) {\n // return tint\n // }\n // }\n\n // cursor -= 1\n // }\n\n return undefined\n }\n\n function getMixPercentage() {\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])\n }\n\n return undefined\n }\n\n function getOpacity() {\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 {Hue} from '../../palette'\nimport {ThemeColorSchemeKey} from '../../v2'\nimport {parseColor} from './parseColor'\nimport {ColorToken} from './token'\n\ntype CSSVariableKey = `--${string}`\n\nexport interface RenderColorContext {\n bgVar: CSSVariableKey\n hue: Hue\n scheme: ThemeColorSchemeKey\n}\n\nexport function renderColor(token: [ColorToken, ColorToken], context: RenderColorContext): string {\n const {bgVar, hue, scheme} = context\n\n const result = parseColor(token[scheme === 'dark' ? 0 : 1])\n\n const colorVar =\n result.color.type === 'hue'\n ? `--${result.color.hue ?? hue}-${result.color.tint}`\n : `--${result.color.type}`\n\n if (result.mix !== undefined) {\n return `color-mix(in srgb, var(${bgVar}), var(${colorVar}) ${result.mix}%)`\n }\n\n if (result.opacity !== undefined) {\n return `color-mix(in srgb, transparent, var(${colorVar}) ${result.opacity * 100}%)`\n }\n\n return `var(${colorVar})`\n}\n","import {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatar_v2,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n ThemeColorStateToneKey,\n} from '../../v2'\nimport {CardColorTokens} from './card'\nimport {\n ThemeColor_v3,\n ThemeColorCard_v3,\n ThemeColorElement,\n ThemeColorScheme_v3,\n ThemeColorVariant,\n} from './color'\nimport {ElementColorTokens} from './element'\nimport {renderColor, RenderColorContext} from './renderColor'\nimport {ColorTokens} from './tokens'\n\nconst debug = false\n\nlet nodeLen = 0\n\n/** @internal */\nexport function buildColor_v3(tokens: ColorTokens): ThemeColor_v3 {\n return {\n dark: buildColorScheme_v3(tokens, {scheme: 'dark'}),\n light: buildColorScheme_v3(tokens, {scheme: 'light'}),\n }\n}\n\nfunction buildColorScheme_v3(\n tokens: ColorTokens,\n options: {scheme: ThemeColorSchemeKey},\n): ThemeColorScheme_v3 {\n const {scheme} = options\n\n return {\n card: THEME_COLOR_CARD_TONES.reduce(\n (acc, tone) => {\n acc[tone] = buildColorCard_v3(tokens[tone], {cardTone: tone, scheme})\n\n return acc\n },\n {} as Record<ThemeColorCardToneKey, ThemeColorCard_v3>,\n ),\n }\n}\n\nfunction buildColorCard_v3(\n tokens: CardColorTokens,\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n },\n): ThemeColorCard_v3 {\n const {cardTone, scheme} = options\n const context: RenderColorContext = {bgVar: `--color-bg-1`, hue: tokens._hue, scheme}\n\n return {\n _hue: tokens._hue ?? 'gray',\n avatar: THEME_COLOR_AVATAR_COLORS.reduce<ThemeColorAvatar_v2>((acc, hue) => {\n const avatarTokens = tokens.avatar[hue]\n\n acc[hue] = {\n bg: renderColor(avatarTokens.bg, {bgVar: `--color-bg-1`, hue: avatarTokens._hue, scheme}),\n fg: renderColor(avatarTokens.fg, {bgVar: `--color-bg-1`, hue: avatarTokens._hue, scheme}),\n }\n\n return acc\n }, {} as ThemeColorAvatar_v2),\n backdrop: renderColor(tokens.backdrop, context),\n code: {\n bg: renderColor(tokens.code.bg, context),\n fg: renderColor(tokens.code.fg, context),\n token: {\n atrule: renderColor(tokens.code.token.atrule, context),\n attrName: renderColor(tokens.code.token.attrName, context),\n attrValue: renderColor(tokens.code.token.attrValue, context),\n attribute: renderColor(tokens.code.token.attribute, context),\n boolean: renderColor(tokens.code.token.boolean, context),\n builtin: renderColor(tokens.code.token.builtin, context),\n cdata: renderColor(tokens.code.token.cdata, context),\n char: renderColor(tokens.code.token.char, context),\n class: renderColor(tokens.code.token.class, context),\n className: renderColor(tokens.code.token.className, context),\n comment: renderColor(tokens.code.token.comment, context),\n constant: renderColor(tokens.code.token.constant, context),\n deleted: renderColor(tokens.code.token.deleted, context),\n doctype: renderColor(tokens.code.token.doctype, context),\n entity: renderColor(tokens.code.token.entity, context),\n function: renderColor(tokens.code.token.function, context),\n hexcode: renderColor(tokens.code.token.hexcode, context),\n id: renderColor(tokens.code.token.id, context),\n important: renderColor(tokens.code.token.important, context),\n inserted: renderColor(tokens.code.token.inserted, context),\n keyword: renderColor(tokens.code.token.keyword, context),\n number: renderColor(tokens.code.token.number, context),\n operator: renderColor(tokens.code.token.operator, context),\n prolog: renderColor(tokens.code.token.prolog, context),\n property: renderColor(tokens.code.token.property, context),\n pseudoClass: renderColor(tokens.code.token.pseudoClass, context),\n pseudoElement: renderColor(tokens.code.token.pseudoElement, context),\n punctuation: renderColor(tokens.code.token.punctuation, context),\n regex: renderColor(tokens.code.token.regex, context),\n selector: renderColor(tokens.code.token.selector, context),\n string: renderColor(tokens.code.token.string, context),\n symbol: renderColor(tokens.code.token.symbol, context),\n tag: renderColor(tokens.code.token.tag, context),\n unit: renderColor(tokens.code.token.unit, context),\n url: renderColor(tokens.code.token.url, context),\n variable: renderColor(tokens.code.token.variable, context),\n },\n },\n focusRing: renderColor(tokens.focusRing, context),\n shadow: {\n outline: renderColor(tokens.shadow.outline, context),\n umbra: renderColor(tokens.shadow.umbra, context),\n penumbra: renderColor(tokens.shadow.penumbra, context),\n ambient: renderColor(tokens.shadow.ambient, context),\n },\n skeleton: {\n from: renderColor(tokens.skeleton.from, context),\n to: renderColor(tokens.skeleton.to, context),\n },\n\n variant: {\n solid: {\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => ({\n ...acc,\n [tone]: buildColorElement_v3(tokens.variant.solid[tone], {\n cardTone,\n debugId: `solid`,\n scheme,\n tone,\n }),\n }),\n {} as ThemeColorVariant,\n ),\n },\n tinted: {\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => ({\n ...acc,\n [tone]: buildColorElement_v3(tokens.variant.tinted[tone], {\n cardTone,\n debugId: `tinted`,\n scheme,\n tone,\n }),\n }),\n {} as ThemeColorVariant,\n ),\n },\n },\n }\n}\n\nfunction buildColorElement_v3(\n tokens: ElementColorTokens,\n options: {\n cardTone: ThemeColorCardToneKey\n debugId?: string\n scheme: ThemeColorSchemeKey\n tone?: ThemeColorStateToneKey\n },\n): ThemeColorElement {\n const {cardTone, debugId, scheme, tone} = options\n\n const path = [scheme, cardTone, debugId, tone].filter(Boolean).join('/')\n\n if (debug) {\n // eslint-disable-next-line no-console\n console.log(nodeLen, path)\n nodeLen += 1\n }\n\n const context: RenderColorContext = {bgVar: `--bg`, hue: tokens._hue, scheme}\n\n return {\n _hue: tokens._hue ?? 'gray',\n bg: {\n 0: renderColor(tokens.bg[0], context),\n 4: renderColor(tokens.bg[4], context),\n },\n border: {\n 0: renderColor(tokens.border[0], context),\n 4: renderColor(tokens.border[4], context),\n },\n fg: {\n 0: renderColor(tokens.fg[0], context),\n 4: renderColor(tokens.fg[4], context),\n },\n }\n}\n","import {PartialTokens, Tokens} from './tokens'\n\nexport const defaultTokens: PartialTokens<Tokens> = {\n color: {\n '*': {\n // backdrop: ['black/0.2', '200/0.2'],\n backdrop: ['black/0.5', 'gray/100/0.5'],\n code: {\n bg: ['950', '50'],\n fg: ['300', '700'],\n token: {\n atrule: ['purple/300', 'purple/600'],\n attrName: ['green/300', 'green/600'],\n attrValue: ['yellow/300', 'yellow/600'],\n attribute: ['yellow/300', 'yellow/600'],\n boolean: ['purple/300', 'purple/600'],\n builtin: ['purple/300', 'purple/600'],\n cdata: ['yellow/300', 'yellow/600'],\n char: ['yellow/300', 'yellow/600'],\n class: ['orange/300', 'orange/600'],\n className: ['cyan/300', 'cyan/600'],\n comment: ['gray/600', 'gray/300'],\n constant: ['purple/300', 'purple/600'],\n deleted: ['red/300', 'red/600'],\n entity: ['red/300', 'red/600'],\n function: ['green/300', 'green/600'],\n hexcode: ['blue/300', 'blue/600'],\n id: ['purple/300', 'purple/600'],\n important: ['purple/300', 'purple/600'],\n inserted: ['green/300', 'green/600'],\n keyword: ['magenta/300', 'magenta/600'],\n number: ['purple/300', 'purple/600'],\n operator: ['magenta/300', 'magenta/600'],\n prolog: ['gray/300', 'gray/600'],\n property: ['blue/300', 'blue/600'],\n pseudoClass: ['yellow/300', 'yellow/600'],\n pseudoElement: ['yellow/300', 'yellow/600'],\n punctuation: ['gray/300', 'gray/600'],\n regex: ['blue/300', 'blue/600'],\n selector: ['red/300', 'red/600'],\n string: ['yellow/300', 'yellow/600'],\n symbol: ['purple/300', 'purple/600'],\n tag: ['red/300', 'red/600'],\n unit: ['orange/300', 'orange/600'],\n url: ['red/300', 'red/600'],\n variable: ['red/300', 'red/600'],\n },\n },\n focusRing: ['blue/500', 'blue/500'],\n link: {\n fg: ['blue/400', 'blue/600'],\n },\n shadow: {\n outline: ['500/0.4', '500/0.3'],\n umbra: ['black/0.2', '500/0.1'],\n penumbra: ['black/0.14', '500/0.07'],\n ambient: ['black/0.12', '500/0.06'],\n },\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['950', '50'],\n 4: ['800', '200'],\n },\n border: {\n 0: ['700', '100'],\n 4: ['500', '300'],\n },\n fg: {\n 0: ['100', '900'],\n 4: ['300', '700'],\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 solid: {\n '*': {\n bg: {\n 0: ['400', '500'],\n 4: ['300', '600'],\n },\n border: {\n 0: ['200', '400'],\n 4: ['100', '500'],\n },\n fg: {\n 0: ['black', 'white'],\n 4: ['600', '400'],\n },\n },\n 'default': {\n bg: {\n 0: ['200', '800'],\n 4: ['white', 'black'],\n },\n border: {\n 0: ['300', '700'],\n 4: ['200', '800'],\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: ['black', 'gray/50'],\n 4: ['800', '300 50%'],\n },\n border: {\n 0: ['800', '300 40%'],\n 4: ['600', '300'],\n },\n fg: {\n 0: ['100', 'black'],\n 4: ['400', '700'],\n },\n },\n },\n },\n },\n 'default': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['950', 'white'],\n 4: ['800', '200'],\n },\n border: {\n 0: ['800', '100'],\n 4: ['600', '300'],\n },\n fg: {\n 0: ['white', 'black'],\n 4: ['400', '600'],\n },\n },\n },\n },\n },\n 'neutral': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['900', '50'],\n 4: ['700', '200'],\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 ThemeColorCardToneKey,\n ThemeColorStateToneKey,\n} from '../v2'\nimport {CardColorTokens} from './color/card'\nimport {ElementColorTokens} from './color/element'\nimport {merge} from './merge'\nimport {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 ?? ['400', '400'],\n fg: tokens?.avatar?.gray?.fg ?? ['900', '900'],\n },\n blue: {\n _hue: tokens?.avatar?.blue?._hue ?? 'blue',\n bg: tokens?.avatar?.blue?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.blue?.fg ?? ['900', '900'],\n },\n purple: {\n _hue: tokens?.avatar?.purple?._hue ?? 'purple',\n bg: tokens?.avatar?.purple?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.purple?.fg ?? ['900', '900'],\n },\n magenta: {\n _hue: tokens?.avatar?.magenta?._hue ?? 'magenta',\n bg: tokens?.avatar?.magenta?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.magenta?.fg ?? ['900', '900'],\n },\n red: {\n _hue: tokens?.avatar?.red?._hue ?? 'red',\n bg: tokens?.avatar?.red?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.red?.fg ?? ['900', '900'],\n },\n orange: {\n _hue: tokens?.avatar?.orange?._hue ?? 'orange',\n bg: tokens?.avatar?.orange?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.orange?.fg ?? ['900', '900'],\n },\n yellow: {\n _hue: tokens?.avatar?.yellow?._hue ?? 'yellow',\n bg: tokens?.avatar?.yellow?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.yellow?.fg ?? ['900', '900'],\n },\n green: {\n _hue: tokens?.avatar?.green?._hue ?? 'green',\n bg: tokens?.avatar?.green?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.green?.fg ?? ['900', '900'],\n },\n cyan: {\n _hue: tokens?.avatar?.cyan?._hue ?? 'cyan',\n bg: tokens?.avatar?.cyan?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.cyan?.fg ?? ['900', '900'],\n },\n },\n backdrop: tokens?.backdrop ?? ['900', '100'],\n code: {\n bg: tokens?.code?.bg ?? ['950', '50'],\n fg: tokens?.code?.fg ?? ['400', '600'],\n token: {\n atrule: tokens?.code?.token?.atrule ?? ['400', '600'],\n attribute: tokens?.code?.token?.attribute ?? ['400', '600'],\n attrName: tokens?.code?.token?.attrName ?? ['400', '600'],\n attrValue: tokens?.code?.token?.attrValue ?? ['400', '600'],\n boolean: tokens?.code?.token?.boolean ?? ['400', '600'],\n builtin: tokens?.code?.token?.builtin ?? ['400', '600'],\n cdata: tokens?.code?.token?.cdata ?? ['400', '600'],\n char: tokens?.code?.token?.char ?? ['400', '600'],\n class: tokens?.code?.token?.class ?? ['400', '600'],\n className: tokens?.code?.token?.className ?? ['400', '600'],\n comment: tokens?.code?.token?.comment ?? ['600', '400'],\n constant: tokens?.code?.token?.constant ?? ['400', '600'],\n deleted: tokens?.code?.token?.deleted ?? ['400', '600'],\n doctype: tokens?.code?.token?.doctype ?? ['400', '600'],\n entity: tokens?.code?.token?.entity ?? ['400', '600'],\n function: tokens?.code?.token?.function ?? ['400', '600'],\n hexcode: tokens?.code?.token?.hexcode ?? ['400', '600'],\n id: tokens?.code?.token?.id ?? ['400', '600'],\n important: tokens?.code?.token?.important ?? ['400', '600'],\n inserted: tokens?.code?.token?.inserted ?? ['400', '600'],\n keyword: tokens?.code?.token?.keyword ?? ['400', '600'],\n number: tokens?.code?.token?.number ?? ['400', '600'],\n operator: tokens?.code?.token?.operator ?? ['400', '600'],\n prolog: tokens?.code?.token?.prolog ?? ['400', '600'],\n property: tokens?.code?.token?.property ?? ['400', '600'],\n pseudoClass: tokens?.code?.token?.pseudoClass ?? ['400', '600'],\n pseudoElement: tokens?.code?.token?.pseudoElement ?? ['400', '600'],\n punctuation: tokens?.code?.token?.punctuation ?? ['400', '600'],\n regex: tokens?.code?.token?.regex ?? ['400', '600'],\n selector: tokens?.code?.token?.selector ?? ['400', '600'],\n string: tokens?.code?.token?.string ?? ['400', '600'],\n symbol: tokens?.code?.token?.symbol ?? ['400', '600'],\n tag: tokens?.code?.token?.tag ?? ['400', '600'],\n unit: tokens?.code?.token?.unit ?? ['400', '600'],\n url: tokens?.code?.token?.url ?? ['400', '600'],\n variable: tokens?.code?.token?.variable ?? ['400', '600'],\n },\n },\n focusRing: tokens?.focusRing ?? ['500', '500'],\n link: {\n fg: tokens?.link?.fg ?? ['400', '600'],\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 ?? ['900', '100'],\n to: tokens?.skeleton?.to ?? ['950', '50'],\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 {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport {buildColor_v3} from './color/buildColor_v3'\nimport {defaultTokens} from './defaults'\nimport {resolveTokens} from './resolveTokens'\nimport {Theme_v3, ThemeOptions} from './types'\n\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: buildColor_v3(tokens.color),\n container: v2?.container ?? defaultThemeConfig.container,\n font: v2?.font ?? defaultThemeFonts,\n input: v2?.input ?? defaultThemeConfig.input,\n layer: v2?.layer ?? defaultThemeConfig.layer,\n media: v2?.media ?? defaultThemeConfig.media,\n radius: v2?.radius ?? defaultThemeConfig.radius,\n shadow: v2?.shadow ?? defaultThemeConfig.shadow,\n space: v2?.space ?? defaultThemeConfig.space,\n }\n}\n","import {RootTheme} from '../types'\nimport {ThemeColor, ThemeColorInputState, ThemeColorInputStates} from '../v0'\nimport {\n RootTheme_v2,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../v2'\nimport {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 {\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 ThemeColorBadge_v2,\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorCard_v2,\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorSelectable_v2,\n ThemeColorSelectableTone_v2,\n ThemeColorState_v2,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../v2'\nimport {ThemeColorCard_v3, ThemeColorElement, ThemeColorVariantKey} from '../v3'\n\nexport function themeColor_v3_v2(options: {\n color: ThemeColorCard_v3\n dark: boolean\n}): ThemeColorCard_v2 {\n const {color, dark} = options\n\n return {\n _blend: 'screen',\n _dark: dark,\n ...buildColorState({\n cardColor: color,\n state: 'enabled',\n tone: 'default',\n variant: 'tinted',\n }),\n backdrop: color.backdrop,\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 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 focusRing: color.focusRing,\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\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 // cardVars: vars,\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 shadow: color.shadow,\n syntax: color.code.token,\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: string\n 4: string\n },\n index: ElementTokenIndex,\n) {\n if (index === 0) {\n return tokens[0]\n }\n\n if (index === 4) {\n return tokens[4]\n }\n\n return `color-mix(in oklch, ${tokens[0]}, ${tokens[4]} ${index * 25}%)`\n}\n\nfunction buildColorState(options: {\n cardColor: ThemeColorCard_v3\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n variant: ThemeColorVariantKey\n}): ThemeColorState_v2 {\n const {cardColor, state, tone, variant} = options\n const color = cardColor.variant[variant][tone]\n\n const shades = stateShades[state]\n\n return {\n accent: {\n fg: color.fg[4],\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),\n fg: mix(color.fg, 1),\n dot: mix(color.fg, 3),\n icon: mix(color.fg, 3),\n }\n\n return tones\n }, {} as ThemeColorBadge_v2),\n bg: mix(color.bg, shades.bg[0]),\n border: mix(color.border, shades.border[0]),\n fg: mix(color.fg, shades.fg[0]),\n code: {\n bg: mix(color.bg, shades.bg[1]),\n fg: mix(color.fg, shades.fg[2]),\n },\n icon: mix(color.fg, shades.fg[2]),\n kbd: {\n bg: mix(color.bg, 0),\n fg: mix(color.fg, 0),\n border: mix(color.bg, 0),\n },\n link: {\n fg: mix(color.fg, shades.fg[2]),\n },\n muted: {\n bg: mix(color.bg, shades.bg[1]),\n fg: mix(color.fg, shades.fg[2]),\n },\n skeleton: cardColor.skeleton,\n }\n}\n\nfunction buildInputState(colorElement: ThemeColorElement): ThemeColorInputState_v2 {\n return {\n bg: colorElement.bg[0],\n border: colorElement.bg[0],\n fg: colorElement.fg[0],\n muted: {\n bg: colorElement.bg[0],\n },\n placeholder: colorElement.fg[0],\n }\n}\n","// import {vars} from '@sanity/ui/css'\n\nimport {RootTheme_v2} from '../v2'\nimport {Theme_v3} from '../v3'\nimport {themeColor_v3_v2} from './themeColor_v3_v2'\n\nexport function v3_v2(theme_v3: Theme_v3): RootTheme_v2 {\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.dark.card.transparent,\n dark: true,\n // vars: vars.color.dark.transparent,\n }),\n default: themeColor_v3_v2({\n color: theme_v3.color.dark.card.default,\n dark: true,\n // vars: vars.color.dark.default,\n }),\n neutral: themeColor_v3_v2({\n color: theme_v3.color.dark.card.neutral,\n dark: true,\n // vars: vars.color.dark.neutral,\n }),\n primary: themeColor_v3_v2({\n color: theme_v3.color.dark.card.primary,\n dark: true,\n // vars: vars.color.dark.primary,\n }),\n suggest: themeColor_v3_v2({\n color: theme_v3.color.dark.card.suggest,\n dark: true,\n // vars: vars.color.dark.suggest,\n }),\n positive: themeColor_v3_v2({\n color: theme_v3.color.dark.card.positive,\n dark: true,\n // vars: vars.color.dark.positive,\n }),\n caution: themeColor_v3_v2({\n color: theme_v3.color.dark.card.caution,\n dark: true,\n // vars: vars.color.dark.caution,\n }),\n critical: themeColor_v3_v2({\n color: theme_v3.color.dark.card.critical,\n dark: true,\n // vars: vars.color.dark.critical,\n }),\n },\n light: {\n transparent: themeColor_v3_v2({\n color: theme_v3.color.light.card.transparent,\n dark: false,\n // vars: vars.color.light.transparent,\n }),\n default: themeColor_v3_v2({\n color: theme_v3.color.light.card.default,\n dark: false,\n // vars: vars.color.light.default,\n }),\n neutral: themeColor_v3_v2({\n color: theme_v3.color.light.card.neutral,\n dark: false,\n // vars: vars.color.light.neutral,\n }),\n primary: themeColor_v3_v2({\n color: theme_v3.color.light.card.primary,\n dark: false,\n // vars: vars.color.light.primary,\n }),\n suggest: themeColor_v3_v2({\n color: theme_v3.color.light.card.suggest,\n dark: false,\n // vars: vars.color.light.suggest,\n }),\n positive: themeColor_v3_v2({\n color: theme_v3.color.light.card.positive,\n dark: false,\n // vars: vars.color.light.positive,\n }),\n caution: themeColor_v3_v2({\n color: theme_v3.color.light.card.caution,\n dark: false,\n // vars: vars.color.light.caution,\n }),\n critical: themeColor_v3_v2({\n color: theme_v3.color.light.card.critical,\n dark: false,\n // vars: vars.color.light.critical,\n }),\n },\n },\n container: theme_v3.container,\n font: theme_v3.font,\n input: theme_v3.input,\n layer: theme_v3.layer,\n media: theme_v3.media,\n radius: theme_v3.radius,\n shadow: theme_v3.shadow,\n space: theme_v3.space,\n }\n}\n","import {type ThemeConfig} from '../config'\nimport {type RootTheme} from '../types'\nimport {buildTheme_v3} from '../v3'\nimport {v2_v0} from '../versioning/v2_v0'\nimport {v3_v2} from '../versioning/v3_v2'\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 {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 {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 {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 {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 {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 {RGB, RGBA} from './types'\n\n/** @internal */\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 {ColorHueKey, ColorTintKey} from '@sanity/color'\n\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 ThemeColorBlendModeKey,\n} from '../v2'\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 | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\n | `${ColorTintKey}`\n | `${ColorTintKey} ${number}%`\n | `${ColorTintKey}/${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 {isColorButtonMode} from '../../v2'\nimport {\n isColorConfigBaseKey,\n isColorConfigBaseTone,\n isColorConfigBlendKey,\n isColorConfigStateKey,\n isColorConfigStateTone,\n} from '../helpers'\nimport {TokenKeyNode} from './types'\n\n/** @internal */\nexport function parseTokenKey(str: string): TokenKeyNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorConfigBaseTone(segment0)) {\n const key = segments.join('/')\n\n if (isColorConfigBaseKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n }\n\n if (segment0 === 'button') {\n const segment1 = segments.shift() || ''\n\n if (isColorConfigStateTone(segment1)) {\n const segment2 = segments.shift() || ''\n\n if (isColorButtonMode(segment2)) {\n const key = segments.join('/')\n\n if (isColorConfigStateKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n }\n }\n }\n\n return undefined\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../v2'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport {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 {\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 ColorConfigBlendKey,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens'\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 isColorTokenValue(str: string): str is ColorConfigValue {\n return parseTokenValue(str)?.type === 'color' || parseTokenValue(str)?.type === 'hue'\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 {RootTheme} from '../types'\nimport {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 {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 {\n ThemeColor,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorInputStates,\n ThemeColorMuted,\n} from '../v0'\nimport {\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 {defaultThemeConfig} from '../defaults/config'\nimport {RootTheme} from '../types'\nimport {RootTheme_v2} from '../v2'\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 {defaultThemeConfig} from './defaults/config'\nimport {RootTheme, Theme} from './types'\nimport {ThemeColor} from './v0'\nimport {RootTheme_v2, ThemeColorCardToneKey, ThemeColorSchemeKey} from './v2'\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 {defaultThemeConfig} from '../defaults/config'\nimport {Theme} from '../types'\nimport {Theme_v2} from '../v2'\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":["AVATAR_SIZE","CONTAINER","RADIUS","SPACE","FONT_CODE_SIZE","FONT_HEADING_SIZE","FONT_LABEL_SIZE","FONT_TEXT_SIZE","SHADOW","createSelectableTones","opts","base","dark","solid","muted","default","_createSelectableStates","primary","positive","caution","critical","tone","enabled","selectable","state","hovered","pressed","selected","disabled","createSolidTones","name","transparent","createButtonTones","mode","button","createButtonModes","ghost","bleed","createCardStates","card","black","white","colors","lightest","lighter","light","darker","darkest","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","border","focusRing","defaultOpts","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","color","bg2","icon","accent","link","code","input","placeholder","spot","key","syntax","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","readOnly","invalid","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","defaultThemeConfig","avatar","sizes","distance","size","offset","width","textWeight","BORDER_WIDTH","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","space","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","defaultThemeFonts","family","weights","regular","medium","semibold","bold","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","featureSettings","label","THEME_COLOR_SCHEMES","THEME_COLOR_BLEND_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","THEME_COLOR_BUTTON_MODES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_AVATAR_COLORS","COLOR_HUES","isColorBlendModeValue","str","includes","isColorHueKey","isColorTintKey","COLOR_TINTS","isColorButtonMode","HUES","TINTS","RE_PERCENTAGE","RE_OPACITY","parseColor","cursor","getColor","Error","opacity","getOpacity","mix","getMixPercentage","_consume","s","startsWith","length","_peek","v","type","hue","String","tint","getTint","undefined","Number","slice","match","exec","parseFloat","ignoreWhitespace","renderColor","token","context","bgVar","scheme","result","colorVar","buildColor_v3","tokens","buildColorScheme_v3","options","reduce","acc","buildColorCard_v3","_hue","avatarTokens","backdrop","variant","buildColorElement_v3","tinted","defaultTokens","merge","records","filter","Boolean","_merge","source","Object","keys","prevValue","nextValue","isRecord","value","Array","isArray","defaultElementTokens","resolveTokens","resolveCardColorTokens","resolveElementTokens","buildTheme_v3","v2","_version","_tokens","font","cache","WeakMap","v2_v0","v3","cachedTheme","get","fonts","shadows","style","styles","themeColor_v2_v0","color_v2","_dark","inputStatesThemeColor_v2_v0","t","inputStateThemeColor_v2_v0","themeColor_v3_v2","_blend","buildColorState","cardColor","modes","states","buildInputState","stateShades","index","shades","badge","dot","kbd","colorElement","v3_v2","theme_v3","neutral","suggest","buildTheme","_config","mixChannel","b","weight","delta","r","g","multiplyChannel","multiply","screenChannel","screen","clamp","a","min","max","Math","round","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","values","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","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","rgb","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","parseTokenKey","segments","segment0","shift","isColorConfigBaseTone","join","isColorConfigBaseKey","isColorConfigBlendKey","segment1","isColorConfigStateTone","segment2","isColorConfigStateKey","isColorMixPercentValue","test","parseTokenValue","nextSegment","segment0mix","isColorOpacityValue","isColorValue","segment1mix","isColorTokenValue","is_v2","themeProp","themeColor_v0_v2_9","themeColor_v0_v2","color_v0","cached_v2","stateThemeColor_v0_v2","stateTonesThemeColor_v0_v2","inputStatesThemeColor_v0_v2","set","v0","inputStateThemeColor_v0_v2","v0_v2","Map","getScopedTheme","_getCachedTheme","colorScheme_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","theme","sanity","_resolved","_setCachedTheme","rootTheme","schemeCache","toneCache","has","getTheme_v2"],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sources":["../src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/build/_deprecated/color/button/createButtonTones.ts","../src/theme/build/_deprecated/color/button/createButtonModes.ts","../src/theme/build/_deprecated/color/card/createCardStates.ts","../src/theme/build/_deprecated/color/defaults.ts","../src/theme/build/_deprecated/color/input/createInputModes.ts","../src/theme/build/_deprecated/color/muted/createMuted.ts","../src/theme/build/_deprecated/color/spot/createSpot.ts","../src/theme/build/_deprecated/color/factory.ts","../src/theme/defaults/config.ts","../src/theme/defaults/fonts.ts","../src/theme/versioning/themeColor_v0_v2.ts","../src/theme/versioning/getTheme_v2.ts","../src/theme/versioning/is_v0.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/v0_v2.ts","../src/theme/versioning/v2_v0.ts","../src/theme/system/color/_constants.ts","../src/theme/system/color/_helpers.ts","../src/theme/config/system.ts","../src/theme/config/tokens/parseTokenKey.ts","../src/theme/config/tokens/parseTokenValue.ts","../src/theme/config/helpers.ts","../src/theme/build/colorToken/compileColorToken.ts","../src/theme/build/colorToken/colorToken.ts","../src/theme/defaults/colorTokens.ts","../src/theme/build/lib/isRecord.ts","../src/theme/build/merge.ts","../src/theme/build/resolveColorTokens.ts","../src/theme/build/buildColorTheme.ts","../src/theme/defaults/colorPalette.ts","../src/theme/build/lib/color-fns/blend/mix.ts","../src/theme/build/lib/color-fns/blend/multiply.ts","../src/theme/build/lib/color-fns/blend/screen.ts","../src/theme/build/lib/utils.ts","../src/theme/build/lib/color-fns/convert.ts","../src/theme/build/lib/color-fns/parse.ts","../src/theme/build/lib/color-fns/contrastRatio.ts","../src/theme/build/lib/color-fns/rgba.ts","../src/theme/build/mixThemeColor.ts","../src/theme/build/renderColorValue.ts","../src/theme/build/renderColorTheme.ts","../src/theme/build/buildTheme.ts","../src/theme/versioning/themeColor_v2_v2_9.ts","../src/theme/getScopedTheme.ts"],"sourcesContent":["import {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../system'\nimport {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 {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../system'\nimport {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 {\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {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 {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {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 {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorName,\n ThemeColorSolid,\n} from '../../../../system'\nimport {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 {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 {ThemeColorBase, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from '../../../../system'\nimport {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 {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../system'\nimport {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 {ThemeColorBase, ThemeColorSpot} from '../../../../system'\nimport {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 {\n ThemeColor,\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonStates,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSpotKey,\n ThemeColorSyntax,\n ThemeColorToneKey,\n} from '../../../system'\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","import {RootTheme_v2} from '../system'\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, 6, 9, 12, 21],\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 {ThemeFonts} from '../system'\n\nexport const defaultThemeFonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\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 },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\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 weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\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 },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\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 },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\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 weights: {\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 },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {\n ThemeColor,\n ThemeColorCard_v2,\n ThemeColorGenericState,\n ThemeColorInputMode_v2,\n ThemeColorInputState,\n ThemeColorInputState_v2,\n ThemeColorInputStates,\n ThemeColorMuted,\n ThemeColorSelectable_v2,\n ThemeColorState_v2,\n} from '../system'\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 {defaultThemeConfig} from '../defaults/config'\nimport {Theme, Theme_v2} from '../system'\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","import {RootTheme, RootTheme_v2} from '../system'\n\n/** @internal */\nexport function is_v0(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme {\n return themeProp._version === 0\n}\n","import {RootTheme, RootTheme_v2} from '../system'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {RootTheme, RootTheme_v2} from '../system'\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 {\n RootTheme,\n RootTheme_v2,\n ThemeColor,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState,\n ThemeColorInputState_v2,\n ThemeColorInputStates,\n} from '../system'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2): 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 }\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 {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, ColorHueKey, ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport {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 {ColorHueKey, ColorTintKey} from '@sanity/color'\n\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 ThemeColorBlendModeKey,\n} from '../system'\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 | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\n | `${ColorTintKey}`\n | `${ColorTintKey} ${number}%`\n | `${ColorTintKey}/${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 {isColorButtonMode} from '../../system'\nimport {\n isColorConfigBaseKey,\n isColorConfigBaseTone,\n isColorConfigBlendKey,\n isColorConfigStateKey,\n isColorConfigStateTone,\n} from '../helpers'\nimport {TokenKeyNode} from './types'\n\n/** @internal */\nexport function parseTokenKey(str: string): TokenKeyNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorConfigBaseTone(segment0)) {\n const key = segments.join('/')\n\n if (isColorConfigBaseKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n }\n\n if (segment0 === 'button') {\n const segment1 = segments.shift() || ''\n\n if (isColorConfigStateTone(segment1)) {\n const segment2 = segments.shift() || ''\n\n if (isColorButtonMode(segment2)) {\n const key = segments.join('/')\n\n if (isColorConfigStateKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n }\n }\n }\n\n return undefined\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../system'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport {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 {\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 ColorConfigBlendKey,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens'\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 isColorTokenValue(str: string): str is ColorConfigValue {\n return parseTokenValue(str)?.type === 'color' || parseTokenValue(str)?.type === 'hue'\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 {TokenColorValueNode} from '../../config'\n\nexport function compileColorTokenValue(node: TokenColorValueNode): string {\n let key = ''\n\n if (node.key === 'black' || node.key === 'white') {\n key = node.key\n } else {\n key = `${node.hue}/${node.tint}`\n }\n\n if (node.mix !== undefined) {\n return `${key} ${node.mix * 100}%`\n }\n\n if (node.opacity !== undefined) {\n key += `/${node.opacity}`\n }\n\n return key\n}\n","import {parseTokenValue, ThemeColorTokenValue} from '../../config'\nimport {compileColorTokenValue} from './compileColorToken'\nimport {ColorTokenContext} from './types'\n\nconst DEFAULT_COLOR_TOKEN_VALUE: ThemeColorTokenValue = ['500', '500']\n\nexport function resolveColorTokenValue(\n context: ColorTokenContext,\n value: ThemeColorTokenValue = DEFAULT_COLOR_TOKEN_VALUE,\n): string {\n const {hue, scheme} = context\n const node = parseTokenValue(value[scheme === 'light' ? 0 : 1])\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token: ${value[0]}`)\n }\n\n return compileColorTokenValue({...node, hue: node.hue || hue})\n}\n","import {ThemeColorTokens} from '../config'\n\nexport const defaultColorTokens: ThemeColorTokens = {\n base: {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/600', 'purple/400'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n backdrop: ['gray/200/0.5', 'black/0.5'],\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n icon: ['500', '500'],\n dot: ['500', '500'],\n },\n 'positive': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n 'caution': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['800', '200'],\n focusRing: ['blue/500', 'blue/500'],\n icon: ['600', '400'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/600', 'blue/300'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n shadow: {\n outline: ['500/0.3', '500/0.4'],\n umbra: ['gray/500/0.1', 'black/0.2'],\n penumbra: ['gray/500/0.07', 'black/0.14'],\n ambient: ['gray/500/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'transparent': {\n bg: ['50', 'black'],\n },\n 'default': {\n bg: ['white', '950'],\n fg: ['800', '200'],\n muted: {\n fg: ['600', '400'],\n },\n },\n 'primary': {_hue: 'blue'},\n 'suggest': {_hue: 'purple'},\n 'positive': {\n _hue: 'green',\n shadow: {outline: ['500/0.4', '500/0.4']},\n },\n 'caution': {\n _hue: 'yellow',\n shadow: {outline: ['600/0.3', '500/0.4']},\n },\n 'critical': {_hue: 'red'},\n },\n button: {\n default: {\n '*': {\n '*': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500/0', '400/0'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['950', '50'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'hovered': {\n bg: ['600', '300'],\n border: ['700/0', '300/0'],\n },\n 'pressed': {\n bg: ['700', '300'],\n },\n 'selected': {\n bg: ['700', '300'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['100 70%', '900 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/500', 'gray/400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['gray/700', 'gray/300'],\n fg: ['white', 'black'],\n dot: ['white', 'black'],\n icon: ['white', 'black'],\n },\n },\n bg: ['300', '600'],\n code: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n fg: ['300', '600'],\n muted: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n kbd: {\n bg: ['black', 'white'],\n fg: ['white', 'black'],\n border: ['700', '300'],\n },\n link: {\n fg: ['100 70%', '900 70%'],\n },\n },\n },\n 'default': {\n '*': {\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n bg: ['800', '200'],\n muted: {\n bg: ['950', '50'],\n fg: ['400', '600'],\n },\n },\n 'hovered': {\n bg: ['900', '100'],\n },\n 'pressed': {\n bg: ['black', 'white'],\n },\n 'selected': {\n bg: ['black', 'white'],\n },\n },\n },\n ghost: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 60%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['100', '900'],\n code: {\n bg: ['500 10%', '400 10%'],\n fg: ['700 60%', '400 60%'],\n },\n fg: ['600', '400'],\n icon: ['700 60%', '300 60%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 60%', 'blue/300 60%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 60%', '300 60%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['100', '900'],\n fg: ['700', '300'],\n },\n 'pressed': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'selected': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['300', '700'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n 'positive': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n 'caution': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n },\n bleed: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['white/0', 'black/0'],\n code: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['700', '300'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '900'],\n fg: ['800', '200'],\n icon: ['800 70%', '300 70%'],\n },\n 'pressed': {\n bg: ['100', '800'],\n fg: ['800', '200'],\n icon: ['800 70%', '200 70%'],\n },\n 'selected': {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 60%', '200 60%'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['400', '600'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n },\n },\n input: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n border: ['200', '700'],\n fg: ['black', '200'],\n muted: {\n bg: ['50', '950'],\n },\n placeholder: ['400', '600'],\n },\n 'hovered': {\n border: ['300', '700'],\n },\n 'readOnly': {\n bg: ['50', '950'],\n border: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n bg: ['50', '950'],\n fg: ['400', '600'],\n border: ['100', '900'],\n placeholder: ['200', '800 50%'],\n },\n },\n 'invalid': {\n '*': {\n _hue: 'red',\n bg: ['100', '950'],\n },\n },\n },\n selectable: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '950'],\n },\n 'pressed': {\n bg: ['100', '900'],\n },\n 'selected': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n fg: ['black', 'white'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500 20%', '400 20%'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['500 10%', '400 10%'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['200', '800'],\n icon: ['200', '800'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n muted: {\n bg: ['50 50%', '950 50%'],\n fg: ['200', '800'],\n },\n },\n },\n 'default': {\n selected: {\n _hue: 'blue',\n },\n },\n 'critical': {\n disabled: {\n bg: ['50 50%', '950 50%'],\n },\n },\n },\n syntax: {\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: ['yellow/600', 'yellow/400'],\n keyword: ['magenta/600', 'magenta/400'],\n number: ['purple/600', 'purple/400'],\n operator: ['magenta/600', 'magenta/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","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {isRecord} from './lib/isRecord'\n\nexport function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n const _records = records.filter(Boolean) as T[]\n\n if (_records.length === 0) {\n return {} as T\n }\n\n return _records.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","import {COLOR_HUES, ColorHueKey} from '@sanity/color'\n\nimport {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n ThemeColorAvatarTokens,\n ThemeColorBadgeTokens,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStatesTokens,\n ThemeColorStateTokens,\n ThemeColorTokens,\n} from '../config'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {\n THEME_COLOR_BUTTON_MODES,\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 ThemeColorButtonModeKey,\n ThemeColorCardToneKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../system'\nimport {merge} from './merge'\n\n/**\n * Convert a tree of color tokens from a sparse format to a dense format.\n */\nexport function resolveColorTokens(inputTokens?: ThemeColorTokens): ThemeColorTokens {\n const tokens = merge(defaultColorTokens, inputTokens)\n\n return {\n base: resolveBaseColorTokens(tokens),\n button: resolveButtonColorTokens(tokens),\n input: resolveInputColorTokens(tokens),\n selectable: resolveSelectableColorTokens(tokens),\n syntax: tokens.syntax,\n }\n}\n\nfunction resolveBaseColorTokens(sparseTokens: ThemeColorTokens) {\n const tokens: Partial<Record<ColorConfigCardTone, ThemeColorBaseTokens>> = {}\n\n // base tones\n for (const tone of THEME_COLOR_CARD_TONES) {\n tokens[tone] = resolveBaseColorTones(sparseTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveBaseColorTones(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorCardToneKey,\n): ThemeColorBaseTokens {\n const spec = merge(inputTokens?.base?.['*'], inputTokens?.base?.[tone])\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue || 'gray'\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveButtonColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> {\n const tokens: Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n tokens[mode] = resolveButtonToneColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveButtonToneColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTokens {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveButtonModeColorTokens(inputTokens, mode, tone)\n }\n\n return tokens\n}\n\nfunction resolveButtonModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n tone: ThemeColorStateToneKey,\n): ThemeColorStatesTokens {\n const tokens: ThemeColorStatesTokens = {}\n\n for (const state of THEME_COLOR_STATES) {\n tokens[state] = resolveButtonStateColorTokens(inputTokens, tone, mode, state)\n }\n\n return tokens\n}\n\nfunction resolveButtonStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n mode: ThemeColorButtonModeKey,\n state: ThemeColorStateKey,\n): ThemeColorStateTokens {\n const spec = merge(\n inputTokens?.button?.[mode]?.['*']?.['*'],\n inputTokens?.button?.[mode]?.[tone]?.['*'],\n inputTokens?.button?.[mode]?.['*']?.[state],\n inputTokens?.button?.[mode]?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveInputColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> {\n const tokens: Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> = {}\n\n for (const mode of THEME_COLOR_INPUT_MODES) {\n tokens[mode] = resolveInputModeColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveInputModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n): ThemeColorInputTokens {\n const states: ThemeColorInputTokens = {}\n\n for (const state of THEME_COLOR_INPUT_STATES) {\n states[state] = resolveInputStateColorTokens(inputTokens, mode, state)\n }\n\n return states\n}\n\nfunction resolveInputStateColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n state: ColorConfigInputState,\n): ThemeColorInputStateTokens {\n const spec = merge(\n inputTokens?.input?.['*']?.['*'],\n inputTokens?.input?.[mode]?.['*'],\n inputTokens?.input?.['*']?.[state],\n inputTokens?.input?.[mode]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.input?.[mode]?._hue\n\n return {...spec, _hue: hue}\n}\n\nfunction resolveSelectableColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigStateTone, {_hue?: ColorHueKey} & ThemeColorStatesTokens>> {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveSelectableToneColorTokens(inputTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveSelectableToneColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n): {_hue?: ColorHueKey} & ThemeColorStatesTokens {\n const states: {_hue?: ColorHueKey} & ThemeColorStatesTokens = {\n _hue: inputTokens?.selectable?.[tone]?._hue || inputTokens?.base?.[tone]?._hue,\n }\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = resolveSelectableStateColorTokens(inputTokens, tone, state)\n }\n\n return states\n}\n\nfunction resolveSelectableStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n state: ThemeColorStateKey,\n) {\n const spec = merge(\n inputTokens?.selectable?.['*']?.['*'],\n inputTokens?.selectable?.[tone]?.['*'],\n inputTokens?.selectable?.['*']?.[state],\n inputTokens?.selectable?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n","import {ThemeColorBadgeTokens, ThemeColorStateTokens, ThemeConfig} from '../config'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n ThemeColorAvatar_v2,\n ThemeColorAvatarColorKey,\n ThemeColorAvatarHue_v2,\n ThemeColorBadge_v2,\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonModeKey,\n ThemeColorButtonTone_v2,\n ThemeColorCard_v2,\n ThemeColorCardToneKey,\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorScheme_v2,\n ThemeColorSchemeKey,\n ThemeColorSchemes_v2,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n ThemeColorSyntax,\n} from '../system'\nimport {ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes_v2 {\n const resolvedConfig: ThemeConfig = {\n ...config,\n color: resolveColorTokens(config?.color),\n }\n\n return {\n light: buildColorScheme({scheme: 'light'}, resolvedConfig),\n dark: buildColorScheme({scheme: 'dark'}, resolvedConfig),\n }\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n const colorScheme = {} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n colorScheme[tone] = buildCardColorTheme({scheme, tone}, config)\n }\n\n return colorScheme\n}\n\nfunction buildCardColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorCard_v2 {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n const blendMode = tokens?._blend || ['multiply', 'screen']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n _dark: scheme === 'dark',\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n backdrop: _color(context, tokens?.backdrop),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n button: buildButtonColorTheme({scheme, tone}, config),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n focusRing: _color(context, tokens?.focusRing),\n icon: _color(context, tokens?.icon),\n input: buildInputColorTheme({scheme, tone}, config),\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n selectable: buildSelectableColorTheme({scheme, tone}, config),\n shadow: buildShadowColorTheme({scheme, tone}, config),\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n syntax: buildSyntaxColorTheme({scheme}, config),\n }\n}\n\nfunction buildShadowColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorShadow {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n outline: _color(context, tokens?.shadow?.outline),\n umbra: _color(context, tokens?.shadow?.umbra),\n penumbra: _color(context, tokens?.shadow?.penumbra),\n ambient: _color(context, tokens?.shadow?.ambient),\n }\n}\n\nfunction buildAvatarColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatar_v2 {\n const {scheme} = options\n\n return {\n gray: _buildAvatarColorTheme({color: 'gray', scheme}, stateTokens),\n blue: _buildAvatarColorTheme({color: 'blue', scheme}, stateTokens),\n purple: _buildAvatarColorTheme({color: 'purple', scheme}, stateTokens),\n magenta: _buildAvatarColorTheme({color: 'magenta', scheme}, stateTokens),\n red: _buildAvatarColorTheme({color: 'red', scheme}, stateTokens),\n orange: _buildAvatarColorTheme({color: 'orange', scheme}, stateTokens),\n yellow: _buildAvatarColorTheme({color: 'yellow', scheme}, stateTokens),\n green: _buildAvatarColorTheme({color: 'green', scheme}, stateTokens),\n cyan: _buildAvatarColorTheme({color: 'cyan', scheme}, stateTokens),\n }\n}\n\nfunction _buildAvatarColorTheme(\n options: {color: ThemeColorAvatarColorKey; scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatarHue_v2 {\n const {color, scheme} = options\n const tokens = stateTokens?.avatar?.[color]\n const context: ColorTokenContext = {hue: tokens?._hue || 'gray', scheme}\n const blendMode = tokens?._blend || ['screen', 'multiply']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n }\n}\n\nfunction buildBadgeColorTheme(\n tokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2 {\n const {scheme} = options\n\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = _buildBadgeColorTheme(tokens, {scheme, tone}, config)\n }\n\n return colorBadge\n}\n\nfunction _buildBadgeColorTheme(\n parentTokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorStateToneKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2['default'] {\n const {scheme, tone} = options\n const tokens = parentTokens?.[tone]\n const hue = tokens?._hue || config?.color?.base?.[tone]?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n dot: _color(context, tokens?.dot),\n icon: _color(context, tokens?.icon),\n }\n}\n\nfunction buildButtonColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorButton_v2 {\n const {scheme, tone: cardTone} = options\n\n const modes: Partial<ThemeColorButton_v2> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n modes[mode] = buildButtonTonesColorTheme({cardTone, scheme, mode}, config)\n }\n\n return modes as ThemeColorButton_v2\n}\n\nfunction buildButtonTonesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n mode: ThemeColorButtonModeKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {cardTone, mode, scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildButtonStatesColorTheme({cardTone, mode, scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildButtonStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, mode, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildButtonStateColorTheme({cardTone, mode, tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildButtonStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n tone: ThemeColorStateToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, mode, tone, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.button?.[mode]?.[tone]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildInputColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorInput_v2 {\n const {scheme, tone} = options\n\n return {\n default: buildInputStatesColorTheme({mode: 'default', scheme, tone}, config),\n invalid: buildInputStatesColorTheme({mode: 'invalid', scheme, tone}, config),\n }\n}\n\nfunction buildInputStatesColorTheme(\n options: {\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorInputMode_v2 {\n const {mode, scheme, tone} = options\n\n return {\n enabled: buildInputStateColorTheme({mode, scheme, state: 'enabled', cardTone: tone}, config),\n hovered: buildInputStateColorTheme({mode, scheme, state: 'hovered', cardTone: tone}, config),\n readOnly: buildInputStateColorTheme({mode, scheme, state: 'readOnly', cardTone: tone}, config),\n disabled: buildInputStateColorTheme({mode, scheme, state: 'disabled', cardTone: tone}, config),\n }\n}\n\nfunction buildInputStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n state: 'enabled' | 'hovered' | 'readOnly' | 'disabled'\n },\n config?: ThemeConfig,\n): ThemeColorInputState_v2 {\n const {cardTone, mode, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.input?.[mode]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n fg: _color(context, tokens?.fg),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n },\n placeholder: _color(context, tokens?.placeholder),\n }\n}\n\nfunction buildSelectableColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {scheme, tone: cardTone} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildSelectableStatesColorTheme({cardTone, scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildSelectableStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildSelectableStateColorTheme({cardTone, tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildSelectableStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, scheme, state, tone} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.selectable?.[tone]?.[state]\n\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildSyntaxColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorSyntax {\n const {scheme} = options\n const tokens = config?.color?.syntax\n const context: ColorTokenContext = {hue: 'gray', scheme}\n\n return {\n atrule: _color(context, tokens?.atrule),\n attrName: _color(context, tokens?.attrName),\n attrValue: _color(context, tokens?.attrValue),\n attribute: _color(context, tokens?.attribute),\n boolean: _color(context, tokens?.boolean),\n builtin: _color(context, tokens?.builtin),\n cdata: _color(context, tokens?.cdata),\n char: _color(context, tokens?.char),\n class: _color(context, tokens?.class),\n className: _color(context, tokens?.className),\n comment: _color(context, tokens?.comment),\n constant: _color(context, tokens?.constant),\n deleted: _color(context, tokens?.deleted),\n doctype: _color(context, tokens?.doctype),\n entity: _color(context, tokens?.entity),\n function: _color(context, tokens?.function),\n hexcode: _color(context, tokens?.hexcode),\n id: _color(context, tokens?.id),\n important: _color(context, tokens?.important),\n inserted: _color(context, tokens?.inserted),\n keyword: _color(context, tokens?.keyword),\n number: _color(context, tokens?.number),\n operator: _color(context, tokens?.operator),\n prolog: _color(context, tokens?.prolog),\n property: _color(context, tokens?.property),\n pseudoClass: _color(context, tokens?.pseudoClass),\n pseudoElement: _color(context, tokens?.pseudoElement),\n punctuation: _color(context, tokens?.punctuation),\n regex: _color(context, tokens?.regex),\n selector: _color(context, tokens?.selector),\n string: _color(context, tokens?.string),\n symbol: _color(context, tokens?.symbol),\n tag: _color(context, tokens?.tag),\n unit: _color(context, tokens?.unit),\n url: _color(context, tokens?.url),\n variable: _color(context, tokens?.variable),\n }\n}\n","import {color} from '@sanity/color'\n\nimport {ThemeColorPalette} from '../config'\n\nexport const defaultColorPalette: ThemeColorPalette = color\n","import {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 {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 {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 {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 {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 {RGB, RGBA} from './types'\n\n/** @internal */\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 const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {multiply, parseColor, RGB, rgbToHex, screen} from './lib/color-fns'\nimport {clamp, range} from './lib/utils'\n\nconst RGB_RANGE: [number, number] = [0, 255]\n\nexport function mixThemeColor(\n value: string,\n options: {\n bg?: string\n blendMode: 'multiply' | 'screen'\n black: string\n white: string\n },\n): string {\n const {blendMode} = options\n\n const color = parseColor(value)\n const black = parseColor(options.black)\n const white = parseColor(options.white)\n\n const bg = options.bg ? parseColor(options.bg) : blendMode === 'multiply' ? white : black\n\n const paletteRange: {r: [number, number]; g: [number, number]; b: [number, number]} = {\n r: [black.r, white.r],\n g: [black.g, white.g],\n b: [black.b, white.b],\n }\n\n const convertedBgColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, bg.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, bg.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, bg.b), ...RGB_RANGE),\n }\n\n const convertedColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, color.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, color.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, color.b), ...RGB_RANGE),\n }\n\n const resultColor =\n blendMode === 'multiply'\n ? multiply(convertedBgColor, convertedColor)\n : screen(convertedBgColor, convertedColor)\n\n const v: RGB = {\n r: clamp(range(...RGB_RANGE, ...paletteRange.r, resultColor.r), ...paletteRange.r),\n g: clamp(range(...RGB_RANGE, ...paletteRange.g, resultColor.g), ...paletteRange.g),\n b: clamp(range(...RGB_RANGE, ...paletteRange.b, resultColor.b), ...paletteRange.b),\n }\n\n return rgbToHex(v)\n}\n","import {ColorTint as ColorPaletteValue} from '@sanity/color'\n\nimport {parseTokenValue, ThemeColorPalette} from '../config'\nimport {ThemeColorBlendModeKey} from '../system'\nimport {hexToRgb, mix, rgba, rgbToHex} from './lib/color-fns'\nimport {mixThemeColor} from './mixThemeColor'\n\nexport interface RenderColorValueOptions {\n bg?: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n}\n\nexport function renderColorValue(str: string, options: RenderColorValueOptions): string {\n const {bg, blendMode, colorPalette} = options\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n const node = parseTokenValue(str)\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n let hex = ''\n\n if (node.key === 'black') {\n hex = renderColorHex(colorPalette.black)\n }\n\n if (node.key === 'white') {\n hex = renderColorHex(colorPalette.white)\n }\n\n if (node.hue && node.tint) {\n hex = renderColorHex(colorPalette[node.hue][node.tint])\n }\n\n if (!hex) {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n const hexBeforeMix = hex\n\n const mixOptions = {\n blendMode,\n bg,\n black: renderColorHex(colorPalette.black),\n // opacity: node.opacity,\n white: renderColorHex(colorPalette.white),\n }\n\n try {\n hex = mixThemeColor(hex, mixOptions)\n\n if (bg && node.mix !== undefined) {\n const from = hexToRgb(bg)\n const to = hexToRgb(hex)\n\n hex = rgbToHex(mix(from, to, node.mix))\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n // eslint-disable-next-line no-console\n console.warn(`invalid color token value: ${str}`)\n hex = hexBeforeMix\n }\n\n if (node.opacity !== undefined) {\n hex = rgba(hex, node.opacity)\n }\n\n return hex\n}\n\nfunction renderColorHex(color: string | ColorPaletteValue) {\n return typeof color === 'string' ? color : color.hex\n}\n","import {COLOR_HUES} from '@sanity/color'\n\nimport {ThemeColorPalette, ThemeConfig} from '../config'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatar_v2,\n ThemeColorBadge_v2,\n ThemeColorBadgeTone_v2,\n ThemeColorBlendModeKey,\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorCard_v2,\n ThemeColorCardToneKey,\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorKBD,\n ThemeColorScheme_v2,\n ThemeColorSchemes_v2,\n ThemeColorSelectable_v2,\n ThemeColorSelectableTone_v2,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorSyntax,\n} from '../system'\nimport {renderColorValue, RenderColorValueOptions} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n return {\n light: renderThemeColorScheme(colorPalette, value.light),\n dark: renderThemeColorScheme(colorPalette, value.dark),\n }\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n const toneEntries = Object.entries(value) as [ThemeColorCardToneKey, ThemeColorCard_v2][]\n\n const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!\n const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!\n\n // The `transparent` and `default` tones are special cases, so we render them first\n // (rendered without a `bg` option).\n // But the rest of the tones are rendered on top of the `default` tone's `bg`.\n const renderedTransparentTone = renderThemeColor(transparentTone, {colorPalette})\n const renderedDefaultTone = renderThemeColor(defaultTone, {colorPalette})\n\n // Get the `default` tone's `bg` property\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n return Object.fromEntries([\n ['transparent', renderedTransparentTone],\n ['default', renderedDefaultTone],\n ...toneEntries\n .filter(([k]) => k !== 'default' && k !== 'transparent')\n .map(([k, v]) => [k, renderThemeColor(v, {bg, colorPalette})]),\n ]) as ThemeColorScheme_v2\n}\n\nfunction renderThemeColor(\n value: ThemeColorCard_v2,\n options: {\n bg?: string\n colorPalette: ThemeColorPalette\n },\n): ThemeColorCard_v2 {\n const {colorPalette, bg} = options\n const blendMode = value._blend || 'multiply'\n const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n const button = renderThemeColorButton(value.button, {\n baseBg,\n blendMode,\n colorPalette,\n })\n\n const selectable = renderThemeColorSelectable(value.selectable, {\n colorPalette,\n baseBg,\n blendMode,\n })\n\n const shadow: ThemeColorShadow = {\n outline: renderColorValue(value.shadow.outline, colorOptions),\n umbra: renderColorValue(value.shadow.umbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n penumbra: renderColorValue(value.shadow.penumbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n ambient: renderColorValue(value.shadow.ambient, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n }\n\n return {\n _blend: blendMode,\n _dark: value._dark,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),\n backdrop: renderColorValue(value.backdrop, colorOptions),\n badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),\n bg: baseBg,\n border: renderColorValue(value.border, colorOptions),\n button,\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n focusRing: renderColorValue(value.focusRing, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),\n kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n shadow,\n skeleton: {\n from: renderColorValue(value.skeleton.from, colorOptions),\n to: renderColorValue(value.skeleton.to, colorOptions),\n },\n syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),\n selectable,\n }\n}\n\nfunction renderThemeColorKBD(\n value: ThemeColorKBD,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorKBD {\n const {baseBg, blendMode, colorPalette} = options\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n border: renderColorValue(value.border, colorOptions),\n }\n}\n\nfunction renderThemeColorAvatar(\n value: ThemeColorAvatar_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2 {\n const colorAvatar = {} as ThemeColorAvatar_v2\n\n for (const hue of COLOR_HUES) {\n colorAvatar[hue] = renderThemeColorAvatarColor(value[hue], options)\n }\n\n return colorAvatar\n}\n\nfunction renderThemeColorAvatarColor(\n value: ThemeColorAvatar_v2['gray'],\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2['gray'] {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n }\n}\n\nfunction renderThemeColorBadge(\n value: ThemeColorBadge_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadge_v2 {\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = renderThemeColorBadgeColor(value[tone], options)\n }\n\n return colorBadge\n}\n\nfunction renderThemeColorBadgeColor(\n value: ThemeColorBadgeTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadgeTone_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n\n const blendMode = rootBlendMode\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n dot: renderColorValue(value.dot, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n }\n}\n\nfunction renderThemeColorButton(\n value: ThemeColorButton_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButton_v2 {\n return {\n default: renderThemeColorButtonTones(value.default, options),\n ghost: renderThemeColorButtonTones(value.ghost, options),\n bleed: renderThemeColorButtonTones(value.bleed, options),\n }\n}\n\nfunction renderThemeColorButtonTones(\n value: ThemeColorButtonMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonMode_v2 {\n const colorButtonMode = {} as ThemeColorButtonMode_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorButtonMode[tone] = renderThemeColorButtonStates(value[tone], options)\n }\n\n return colorButtonMode\n}\n\nfunction renderThemeColorButtonStates(\n value: ThemeColorButtonTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderThemeColorState(\n value: ThemeColorState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg: bg, colorPalette, blendMode}),\n badge: renderThemeColorBadge(value.badge, {baseBg: bg, colorPalette, blendMode}),\n bg,\n border: renderColorValue(value.border, colorOptions),\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n kbd: {\n bg: renderColorValue(value.kbd.bg, colorOptions),\n fg: renderColorValue(value.kbd.fg, colorOptions),\n border: renderColorValue(value.kbd.border, colorOptions),\n },\n skeleton: {\n from: renderColorValue(value.skeleton?.from, colorOptions),\n to: renderColorValue(value.skeleton?.to, colorOptions),\n },\n }\n}\n\nfunction renderThemeColorInput(\n value: ThemeColorInput_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInput_v2 {\n return {\n default: renderInputStatesColorTheme(value.default, options),\n invalid: renderInputStatesColorTheme(value.invalid, options),\n }\n}\n\nfunction renderInputStatesColorTheme(\n value: ThemeColorInputMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputMode_v2 {\n return {\n enabled: renderInputStateColorTheme(value.enabled, options),\n hovered: renderInputStateColorTheme(value.hovered, options),\n readOnly: renderInputStateColorTheme(value.readOnly, options),\n disabled: renderInputStateColorTheme(value.disabled, options),\n }\n}\n\nfunction renderInputStateColorTheme(\n value: ThemeColorInputState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n const rootOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode: rootBlendMode}\n const bg = renderColorValue(value.bg, rootOptions)\n const colorOptions: RenderColorValueOptions = {colorPalette, bg, blendMode}\n\n return {\n _blend: blendMode,\n bg,\n border: renderColorValue(value.border, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n },\n placeholder: renderColorValue(value.placeholder, colorOptions),\n }\n}\n\nfunction renderThemeColorSelectable(\n value: ThemeColorSelectable_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectable_v2 {\n const colorSelectable = {} as ThemeColorSelectable_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorSelectable[tone] = renderThemeColorSelectableStates(value[tone], options)\n }\n\n return colorSelectable\n}\n\nfunction renderThemeColorSelectableStates(\n value: ThemeColorSelectableTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectableTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderSyntaxColorTheme(\n value: ThemeColorSyntax,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSyntax {\n const {colorPalette, baseBg, blendMode} = options\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n return {\n atrule: renderColorValue(value.atrule, colorOptions),\n attrName: renderColorValue(value.attrName, colorOptions),\n attrValue: renderColorValue(value.attrValue, colorOptions),\n attribute: renderColorValue(value.attribute, colorOptions),\n boolean: renderColorValue(value.boolean, colorOptions),\n builtin: renderColorValue(value.builtin, colorOptions),\n cdata: renderColorValue(value.cdata, colorOptions),\n char: renderColorValue(value.char, colorOptions),\n class: renderColorValue(value.class, colorOptions),\n className: renderColorValue(value.className, colorOptions),\n comment: renderColorValue(value.comment, colorOptions),\n constant: renderColorValue(value.constant, colorOptions),\n deleted: renderColorValue(value.deleted, colorOptions),\n doctype: renderColorValue(value.doctype, colorOptions),\n entity: renderColorValue(value.entity, colorOptions),\n function: renderColorValue(value.function, colorOptions),\n hexcode: renderColorValue(value.hexcode, colorOptions),\n id: renderColorValue(value.id, colorOptions),\n important: renderColorValue(value.important, colorOptions),\n inserted: renderColorValue(value.inserted, colorOptions),\n keyword: renderColorValue(value.keyword, colorOptions),\n number: renderColorValue(value.number, colorOptions),\n operator: renderColorValue(value.operator, colorOptions),\n prolog: renderColorValue(value.prolog, colorOptions),\n property: renderColorValue(value.property, colorOptions),\n pseudoClass: renderColorValue(value.pseudoClass, colorOptions),\n pseudoElement: renderColorValue(value.pseudoElement, colorOptions),\n punctuation: renderColorValue(value.punctuation, colorOptions),\n regex: renderColorValue(value.regex, colorOptions),\n selector: renderColorValue(value.selector, colorOptions),\n string: renderColorValue(value.string, colorOptions),\n symbol: renderColorValue(value.symbol, colorOptions),\n tag: renderColorValue(value.tag, colorOptions),\n unit: renderColorValue(value.unit, colorOptions),\n url: renderColorValue(value.url, colorOptions),\n variable: renderColorValue(value.variable, colorOptions),\n }\n}\n","import {ThemeConfig} from '../config'\nimport {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport {RootTheme, RootTheme_v2} from '../system'\nimport {v2_v0} from '../versioning'\nimport {buildColorTheme} from './buildColorTheme'\nimport {renderThemeColorSchemes} from './renderColorTheme'\n\n/** @internal */\nexport function buildTheme(config?: ThemeConfig): RootTheme {\n const colorTheme = buildColorTheme(config)\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: config?.avatar ?? defaultThemeConfig.avatar,\n button: config?.button ?? defaultThemeConfig.button,\n card: config?.card ?? defaultThemeConfig.card,\n // How colors are generated:\n // 1. Merge custom tokens with default tokens\n // 2. Generate tree of color keys (gray/500, black, white, etc.)\n // 3. Apply mixing and render to hex values\n // render(build(mergeWithDefaults()))\n color: renderThemeColorSchemes(colorTheme, config),\n container: config?.container ?? defaultThemeConfig.container,\n font: config?.font ?? defaultThemeFonts,\n input: config?.input ?? defaultThemeConfig.input,\n layer: config?.layer ?? defaultThemeConfig.layer,\n media: config?.media ?? defaultThemeConfig.media,\n radius: config?.radius ?? defaultThemeConfig.radius,\n shadow: config?.shadow ?? defaultThemeConfig.shadow,\n space: config?.space ?? defaultThemeConfig.space,\n style: config?.style ?? defaultThemeConfig.style,\n }\n\n return v2_v0(v2)\n}\n","import type {ThemeColorCard_v2} from '../system'\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 {defaultThemeConfig} from './defaults/config'\nimport {\n RootTheme,\n RootTheme_v2,\n Theme,\n ThemeColor,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n} from './system'\nimport {is_v2, v0_v2, v2_v0} from './versioning'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\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"],"names":["createSelectableTones","opts","base","dark","solid","muted","default","_createSelectableStates","primary","positive","caution","critical","tone","enabled","selectable","state","hovered","pressed","selected","disabled","createSolidTones","name","transparent","createButtonTones","mode","button","createButtonModes","ghost","bleed","createCardStates","card","black","white","colors","lightest","lighter","light","darker","darkest","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","border","focusRing","defaultOpts","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","color","bg2","icon","accent","link","code","input","placeholder","spot","key","syntax","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","readOnly","invalid","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","defaultThemeConfig","avatar","sizes","distance","size","offset","width","textWeight","BORDER_WIDTH","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","space","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","style","root","transition","defaultThemeFonts","family","weights","regular","medium","semibold","bold","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","label","cache","WeakMap","themeColor_v0_v2","color_v0","cached_v2","get","stateThemeColor_v0_v2","color_v2","_blend","_dark","backdrop","badge","stateTonesThemeColor_v0_v2","inputStatesThemeColor_v0_v2","kbd","set","v0","t","neutral","suggest","dot","states","inputStateThemeColor_v0_v2","getTheme_v2","theme","sanity","v2","_resolved","_version","font","fonts","shadows","styles","is_v0","themeProp","is_v2","v0_v2","v2_v0","cachedTheme","themeColor_v2_v0","inputStatesThemeColor_v2_v0","inputStateThemeColor_v2_v0","THEME_COLOR_SCHEMES","THEME_COLOR_BLEND_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","THEME_COLOR_BUTTON_MODES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_AVATAR_COLORS","COLOR_HUES","isColorBlendModeValue","str","includes","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","parseTokenKey","segments","split","segment0","shift","isColorConfigBaseTone","join","isColorConfigBaseKey","type","isColorConfigBlendKey","segment1","isColorConfigStateTone","segment2","isColorConfigStateKey","isColorMixPercentValue","test","parseTokenValue","nextSegment","segment0mix","tint","mix","Number","slice","isColorOpacityValue","opacity","isColorValue","hue","segment1mix","value","isColorTokenValue","compileColorTokenValue","node","undefined","DEFAULT_COLOR_TOKEN_VALUE","resolveColorTokenValue","context","scheme","Error","defaultColorTokens","_hue","isRecord","Boolean","Array","isArray","merge","records","_records","filter","length","reduce","_merge","acc","source","Object","keys","prevValue","nextValue","resolveColorTokens","inputTokens","tokens","resolveBaseColorTokens","resolveButtonColorTokens","resolveInputColorTokens","resolveSelectableColorTokens","sparseTokens","resolveBaseColorTones","spec","resolveButtonToneColorTokens","resolveButtonModeColorTokens","resolveButtonStateColorTokens","resolveInputModeColorTokens","resolveInputStateColorTokens","resolveSelectableToneColorTokens","resolveSelectableStateColorTokens","buildColorTheme","config","resolvedConfig","buildColorScheme","options","colorScheme","buildCardColorTheme","_color","buildAvatarColorTheme","buildBadgeColorTheme","buildButtonColorTheme","buildInputColorTheme","buildSelectableColorTheme","buildShadowColorTheme","buildSyntaxColorTheme","stateTokens","_buildAvatarColorTheme","colorBadge","_buildBadgeColorTheme","parentTokens","cardTone","modes","buildButtonTonesColorTheme","buildButtonStatesColorTheme","buildButtonStateColorTheme","cardTokens","blendMode","buildInputStatesColorTheme","buildInputStateColorTheme","buildSelectableStatesColorTheme","buildSelectableStateColorTheme","defaultColorPalette","mixChannel","b","s","weight","delta","r","g","multiplyChannel","multiply","screenChannel","screen","lerp","x","y","a","invlerp","clamp","min","max","Math","range","x1","y1","x2","y2","round","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","values","replace","parseFloat","rgbToHex","toString","rgbToHsl","cmin","cmax","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","indexOf","isHex","parseHsl","res","exec","parseColor","startsWith","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","v","rgb","RGB_RANGE","mixThemeColor","paletteRange","convertedBgColor","convertedColor","resultColor","renderColorValue","colorPalette","renderColorHex","hexBeforeMix","mixOptions","err","console","warn","renderThemeColorSchemes","palette","renderThemeColorScheme","toneEntries","entries","transparentTone","find","k","defaultTone","renderedTransparentTone","renderThemeColor","renderedDefaultTone","fromEntries","map","baseBg","colorOptions","renderThemeColorButton","renderThemeColorSelectable","renderThemeColorAvatar","renderThemeColorBadge","renderThemeColorInput","renderThemeColorKBD","renderSyntaxColorTheme","rootOptions","colorAvatar","renderThemeColorAvatarColor","rootBlendMode","renderThemeColorBadgeColor","renderThemeColorButtonTones","colorButtonMode","renderThemeColorButtonStates","renderThemeColorState","renderInputStatesColorTheme","renderInputStateColorTheme","colorSelectable","renderThemeColorSelectableStates","buildTheme","colorTheme","themeColor_v0_v2_9","Map","getScopedTheme","_getCachedTheme","colorScheme_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","_setCachedTheme","rootTheme","schemeCache","toneCache","has"],"mappings":";;;AASO,SAASA,sBACdC,MACAC,MACAC,MACAC,OACAC,OACsB;AACtB,SAAO;AAAA,IACLC,SAASC,wBAAwBN,MAAMC,MAAMC,MAAMC,OAAOC,OAAO,SAAS;AAAA,IAC1EG,SAASD,wBAAwBN,MAAMC,MAAMC,MAAMC,OAAOC,OAAO,SAAS;AAAA,IAC1EI,UAAUF,wBAAwBN,MAAMC,MAAMC,MAAMC,OAAOC,OAAO,UAAU;AAAA,IAC5EK,SAASH,wBAAwBN,MAAMC,MAAMC,MAAMC,OAAOC,OAAO,SAAS;AAAA,IAC1EM,UAAUJ,wBAAwBN,MAAMC,MAAMC,MAAMC,OAAOC,OAAO,UAAU;AAAA,EAAA;AAEhF;AAEA,SAASE,wBACPN,MACAC,MACAC,MACAC,OACAC,OACAO,MAC4B;AAC5B,SAAO;AAAA,IACLC,SAASZ,KAAKa,WAAW;AAAA,MACvBZ;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAU,OAAO;AAAA,MACPH;AAAAA,IAAAA,CACD;AAAA,IACDI,SAASf,KAAKa,WAAW;AAAA,MACvBZ;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAU,OAAO;AAAA,MACPH;AAAAA,IAAAA,CACD;AAAA,IACDK,SAAShB,KAAKa,WAAW;AAAA,MACvBZ;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAU,OAAO;AAAA,MACPH;AAAAA,IAAAA,CACD;AAAA,IACDM,UAAUjB,KAAKa,WAAW;AAAA,MACxBZ;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAU,OAAO;AAAA,MACPH;AAAAA,IAAAA,CACD;AAAA,IACDO,UAAUlB,KAAKa,WAAW;AAAA,MACxBZ;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAU,OAAO;AAAA,MACPH;AAAAA,IAAAA,CACD;AAAA,EAAA;AAEL;ACxEO,SAASQ,iBACdnB,MACAC,MACAC,MACAkB,MACiB;AACjB,SAAO;AAAA,IACLf,SAAS;AAAA,MACPO,SAASZ,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEI,UAAUlB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC3EC,SAASf,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEE,SAAShB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEG,UAAUjB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAE7EO,aAAa;AAAA,MACXT,SAASZ,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC7EI,UAAUlB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC/EC,SAASf,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC7EE,SAAShB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC7EG,UAAUjB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAEjFP,SAAS;AAAA,MACPK,SAASZ,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEI,UAAUlB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC3EC,SAASf,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEE,SAAShB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEG,UAAUjB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAE7EN,UAAU;AAAA,MACRI,SAASZ,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EI,UAAUlB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC5EC,SAASf,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EE,SAAShB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EG,UAAUjB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAE9EL,SAAS;AAAA,MACPG,SAASZ,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEI,UAAUlB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC3EC,SAASf,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEE,SAAShB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEG,UAAUjB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAE7EJ,UAAU;AAAA,MACRE,SAASZ,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EI,UAAUlB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC5EC,SAASf,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EE,SAAShB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EG,UAAUjB,KAAKG,MAAM;AAAA,QAACF;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,EAC9E;AAEJ;AC5CO,SAASQ,kBACdtB,MACAC,MACAC,MACAC,OACAC,OACAmB,MACuB;AACvB,SAAO;AAAA,IACLlB,SAASL,KAAKwB,OAAO;AAAA,MACnBvB;AAAAA,MACAC;AAAAA,MACAC,OAAOA,MAAME;AAAAA,MACbD,OAAOA,MAAMC;AAAAA,MACbkB;AAAAA,IAAAA,CACD;AAAA,IACDhB,SAASP,KAAKwB,OAAO;AAAA,MACnBvB;AAAAA,MACAC;AAAAA,MACAC,OAAOA,MAAMI;AAAAA,MACbH,OAAOA,MAAMG;AAAAA,MACbgB;AAAAA,IAAAA,CACD;AAAA,IACDf,UAAUR,KAAKwB,OAAO;AAAA,MACpBvB;AAAAA,MACAC;AAAAA,MACAC,OAAOA,MAAMK;AAAAA,MACbJ,OAAOA,MAAMI;AAAAA,MACbe;AAAAA,IAAAA,CACD;AAAA,IACDd,SAAST,KAAKwB,OAAO;AAAA,MACnBvB;AAAAA,MACAC;AAAAA,MACAC,OAAOA,MAAMM;AAAAA,MACbL,OAAOA,MAAMK;AAAAA,MACbc;AAAAA,IAAAA,CACD;AAAA,IACDb,UAAUV,KAAKwB,OAAO;AAAA,MACpBvB;AAAAA,MACAC;AAAAA,MACAC,OAAOA,MAAMO;AAAAA,MACbN,OAAOA,MAAMM;AAAAA,MACba;AAAAA,IAAAA,CACD;AAAA,EAAA;AAEL;AC7CO,SAASE,kBACdzB,MACAC,MACAC,MACAC,OACAC,OACkB;AAClB,SAAO;AAAA,IACLC,SAASiB,kBAAkBtB,MAAMC,MAAMC,MAAMC,OAAOC,OAAO,SAAS;AAAA,IACpEsB,OAAOJ,kBAAkBtB,MAAMC,MAAMC,MAAMC,OAAOC,OAAO,OAAO;AAAA,IAChEuB,OAAOL,kBAAkBtB,MAAMC,MAAMC,MAAMC,OAAOC,OAAO,OAAO;AAAA,EAAA;AAEpE;ACZO,SAASwB,iBACd5B,MACAC,MACAC,MACAkB,MACAjB,OACAC,OACgB;AAChB,SAAO;AAAA,IACLQ,SAASZ,KAAK6B,KAAK;AAAA,MACjB5B;AAAAA,MACAC;AAAAA,MACAkB;AAAAA,MACAN,OAAO;AAAA,MACPX;AAAAA,MACAC;AAAAA,IAAAA,CACD;AAAA,IACDc,UAAUlB,KAAK6B,KAAK;AAAA,MAClB5B;AAAAA,MACAC;AAAAA,MACAkB;AAAAA,MACAN,OAAO;AAAA,MACPX;AAAAA,MACAC;AAAAA,IAAAA,CACD;AAAA,IACDW,SAASf,KAAK6B,KAAK;AAAA,MACjB5B;AAAAA,MACAC;AAAAA,MACAkB;AAAAA,MACAN,OAAO;AAAA,MACPX;AAAAA,MACAC;AAAAA,IAAAA,CACD;AAAA,IACDY,SAAShB,KAAK6B,KAAK;AAAA,MACjB5B;AAAAA,MACAC;AAAAA,MACAkB;AAAAA,MACAN,OAAO;AAAA,MACPX;AAAAA,MACAC;AAAAA,IAAAA,CACD;AAAA,IACDa,UAAUjB,KAAK6B,KAAK;AAAA,MAClB5B;AAAAA,MACAC;AAAAA,MACAkB;AAAAA,MACAN,OAAO;AAAA,MACPX;AAAAA,MACAC;AAAAA,IAAAA,CACD;AAAA,EAAA;AAEL;ACzDA,MAAM0B,QAAQ,kBACRC,QAAQ,oBAERC,SAAS;AAAA,EACb3B,SAAS;AAAA,IACP4B,UAAU;AAAA,IACVC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPlC,MAAM;AAAA,IACNC,MAAM;AAAA,IACNkC,QAAQ;AAAA,IACRC,SAAS;AAAA,EAAA;AAAA,EAEXhB,aAAa;AAAA,IACXY,UAAU;AAAA,IACVC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPlC,MAAM;AAAA,IACNC,MAAM;AAAA,IACNkC,QAAQ;AAAA,IACRC,SAAS;AAAA,EAAA;AAAA,EAEX9B,SAAS;AAAA,IACP0B,UAAU;AAAA,IACVC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPlC,MAAM;AAAA,IACNC,MAAM;AAAA,IACNkC,QAAQ;AAAA,IACRC,SAAS;AAAA,EAAA;AAAA,EAEX7B,UAAU;AAAA,IACRyB,UAAU;AAAA,IACVC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPlC,MAAM;AAAA,IACNC,MAAM;AAAA,IACNkC,QAAQ;AAAA,IACRC,SAAS;AAAA,EAAA;AAAA,EAEX5B,SAAS;AAAA,IACPwB,UAAU;AAAA,IACVC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPlC,MAAM;AAAA,IACNC,MAAM;AAAA,IACNkC,QAAQ;AAAA,IACRC,SAAS;AAAA,EAAA;AAAA,EAEX3B,UAAU;AAAA,IACRuB,UAAU;AAAA,IACVC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPlC,MAAM;AAAA,IACNC,MAAM;AAAA,IACNkC,QAAQ;AAAA,IACRC,SAAS;AAAA,EAAA;AAEb,GAEMC,QAAQ;AAAA,EACZC,MAAM;AAAA,EACNC,KAAK;AAAA,EACLC,QAAQ;AAAA,EACRC,QAAQ;AAAA,EACRC,OAAO;AAAA,EACPC,MAAM;AAAA,EACNC,MAAM;AAAA,EACNC,QAAQ;AAAA,EACRC,SAAS;AACX,GAEMC,QAAQ;AAAA,EACZ3B,aAAa;AAAA,IACX4B,IAAI,CAACjB,OAAOX,YAAYgB,SAASL,OAAOX,YAAYY,QAAQ;AAAA,IAC5DiB,IAAI,CAAClB,OAAOX,YAAYY,UAAUD,OAAOX,YAAYgB,OAAO;AAAA,IAC5Dc,QAAQ,CAACnB,OAAOX,YAAYe,QAAQJ,OAAOX,YAAYa,OAAO;AAAA,IAC9DkB,WAAW,CAACpB,OAAOX,YAAYpB,MAAM+B,OAAOX,YAAYpB,IAAI;AAAA,EAAA;AAAA,EAE9DM,SAAS;AAAA,IACP0C,IAAI,CAACjB,OAAOzB,QAAQ8B,SAASL,OAAOzB,QAAQ0B,QAAQ;AAAA,IACpDiB,IAAI,CAAClB,OAAOzB,QAAQ0B,UAAUD,OAAOzB,QAAQ8B,OAAO;AAAA,IACpDc,QAAQ,CAACnB,OAAOzB,QAAQ6B,QAAQJ,OAAOzB,QAAQ2B,OAAO;AAAA,IACtDkB,WAAW,CAACpB,OAAOzB,QAAQN,MAAM+B,OAAOzB,QAAQN,IAAI;AAAA,EAAA;AAAA,EAEtDO,UAAU;AAAA,IACRyC,IAAI,CAACjB,OAAOxB,SAAS6B,SAASL,OAAOxB,SAASyB,QAAQ;AAAA,IACtDiB,IAAI,CAAClB,OAAOxB,SAASyB,UAAUD,OAAOxB,SAAS6B,OAAO;AAAA,IACtDc,QAAQ,CAACnB,OAAOxB,SAAS4B,QAAQJ,OAAOxB,SAAS0B,OAAO;AAAA,IACxDkB,WAAW,CAACpB,OAAOxB,SAASP,MAAM+B,OAAOxB,SAASP,IAAI;AAAA,EAAA;AAAA,EAExDQ,SAAS;AAAA,IACPwC,IAAI,CAACjB,OAAOvB,QAAQ4B,SAASL,OAAOvB,QAAQwB,QAAQ;AAAA,IACpDiB,IAAI,CAAClB,OAAOvB,QAAQwB,UAAUD,OAAOvB,QAAQ4B,OAAO;AAAA,IACpDc,QAAQ,CAACnB,OAAOvB,QAAQ2B,QAAQJ,OAAOvB,QAAQyB,OAAO;AAAA,IACtDkB,WAAW,CAACpB,OAAOvB,QAAQR,MAAM+B,OAAOvB,QAAQR,IAAI;AAAA,EAAA;AAAA,EAEtDS,UAAU;AAAA,IACRuC,IAAI,CAACjB,OAAOtB,SAAS2B,SAASL,OAAOtB,SAASuB,QAAQ;AAAA,IACtDiB,IAAI,CAAClB,OAAOtB,SAASuB,UAAUD,OAAOtB,SAAS2B,OAAO;AAAA,IACtDc,QAAQ,CAACnB,OAAOtB,SAAS0B,QAAQJ,OAAOtB,SAASwB,OAAO;AAAA,IACxDkB,WAAW,CAACpB,OAAOtB,SAAST,MAAM+B,OAAOtB,SAAST,IAAI;AAAA,EAAA;AAE1D,GAEaoD,cAAqC;AAAA,EAChDpD,MAAMA,CAAC;AAAA,IAACC;AAAAA,IAAMkB;AAAAA,EAAAA,MACRA,SAAS,YACJ;AAAA,IACL6B,IAAI/C,OAAO4B,QAAQC;AAAAA,IACnBmB,IAAIhD,OAAO6B,QAAQD;AAAAA,IACnBqB,QAAQjD,OAAO8B,OAAO3B,QAAQgC,UAAUL,OAAO3B,QAAQ4B;AAAAA,IACvDmB,WAAWpB,OAAOzB,QAAQN;AAAAA,IAC1BqD,QAAQ;AAAA,MACNC,SAASzB;AAAAA,MACT0B,OAAO1B;AAAAA,MACP2B,UAAU3B;AAAAA,MACV4B,SAAS5B;AAAAA,IAAAA;AAAAA,IAEX6B,UAAU;AAAA,MACRC,MAAM1D,OAAO6B,QAAQD;AAAAA,MACrB+B,IAAI3D,OAAO6B,QAAQD;AAAAA,IAAAA;AAAAA,EACrB,IASG;AAAA,IACLmB,IAAID,MAAM5B,IAAI,EAAE6B,GAAG/C,OAAO,IAAI,CAAC;AAAA,IAC/BgD,IAAIF,MAAM5B,IAAI,EAAE8B,GAAGhD,OAAO,IAAI,CAAC;AAAA,IAC/BiD,QAAQH,MAAM5B,IAAI,EAAE+B,OAAOjD,OAAO,IAAI,CAAC;AAAA,IACvCkD,WAAWJ,MAAM5B,IAAI,EAAEgC,UAAUlD,OAAO,IAAI,CAAC;AAAA,IAC7CoD,QAAQ;AAAA,MACNC,SAASzB;AAAAA,MACT0B,OAAO1B;AAAAA,MACP2B,UAAU3B;AAAAA,MACV4B,SAAS5B;AAAAA,IAAAA;AAAAA,IAEX6B,UAAU;AAAA,MACRC,MAAM1D,OAAO6B,QAAQD;AAAAA,MACrB+B,IAAI3D,OAAO6B,QAAQD;AAAAA,IAAAA;AAAAA,EACrB;AAAA,EAIJ3B,OAAOA,CAAC;AAAA,IAACF;AAAAA,IAAMC;AAAAA,IAAMY;AAAAA,IAAOH;AAAAA,EAAAA,MAAU;AACpC,UAAMmD,SAAQ9B,OAAOrB,IAAI;AAEzB,WAAIG,UAAU,YACL;AAAA,MACLmC,IAAI/C,OAAO4D,OAAM3B,QAAQ2B,OAAM5D;AAAAA,MAC/B6D,KAAK7D,OAAO4D,OAAM3B,QAAQ2B,OAAM5D;AAAAA,MAChCiD,QAAQjD,OAAO4D,OAAM5B,UAAU4B,OAAM1B;AAAAA,MACrCc,IAAIhD,OAAO4D,OAAMzB,UAAUyB,OAAM7B;AAAAA,MACjC+B,MAAM9D,OAAO4D,OAAMzB,UAAUyB,OAAM7B;AAAAA,MACnC7B,OAAO;AAAA,QACL8C,IAAIpB;AAAAA,MAAAA;AAAAA,MAENmC,QAAQ;AAAA,QACNf,IAAIpB;AAAAA,MAAAA;AAAAA,MAENoC,MAAM;AAAA,QACJhB,IAAIpB;AAAAA,MAAAA;AAAAA,MAENqC,MAAM;AAAA,QACJlB,IAAInB;AAAAA,QACJoB,IAAIpB;AAAAA,MAAAA;AAAAA,MAEN6B,UAAU1D,KAAK0D;AAAAA,IAAAA,IAIZ;AAAA,MACLV,IAAIa,OAAM7D;AAAAA,MACV8D,KAAKD,OAAM7D;AAAAA,MACXkD,QAAQjD,OAAO4D,OAAM3B,QAAQ2B,OAAM5D;AAAAA,MACnCgD,IAAIhD,OAAO4D,OAAMzB,UAAUyB,OAAM7B;AAAAA,MACjC+B,MAAM9D,OAAO4D,OAAMzB,UAAUyB,OAAM7B;AAAAA,MACnC7B,OAAO;AAAA,QACL8C,IAAIpB;AAAAA,MAAAA;AAAAA,MAENmC,QAAQ;AAAA,QACNf,IAAIpB;AAAAA,MAAAA;AAAAA,MAENoC,MAAM;AAAA,QACJhB,IAAIpB;AAAAA,MAAAA;AAAAA,MAENqC,MAAM;AAAA,QACJlB,IAAInB;AAAAA,QACJoB,IAAIpB;AAAAA,MAAAA;AAAAA,MAEN6B,UAAU1D,KAAK0D;AAAAA,IAAAA;AAAAA,EAEnB;AAAA,EAEAvD,OAAOA,CAAC;AAAA,IAACH;AAAAA,IAAMC;AAAAA,IAAMY;AAAAA,IAAOH;AAAAA,EAAAA,MAAU;AACpC,UAAMmD,SAAQ9B,OAAOrB,IAAI;AAEzB,WAAIG,UAAU,YACL;AAAA,MACLmC,IAAI/C,OAAO4D,OAAM1B,SAAS0B,OAAM5B;AAAAA,MAChC6B,KAAK7D,OAAO4D,OAAM1B,SAAS0B,OAAM5B;AAAAA,MACjCiB,QAAQjD,OAAO4D,OAAM5B,UAAU4B,OAAM1B;AAAAA,MACrCc,IAAIhD,OAAO4D,OAAM7B,WAAW6B,OAAMzB;AAAAA,MAClC2B,MAAM9D,OAAO4D,OAAM7B,WAAW6B,OAAMzB;AAAAA,MACpCjC,OAAO;AAAA,QACL8C,IAAIpB;AAAAA,MAAAA;AAAAA,MAENmC,QAAQ;AAAA,QACNf,IAAIpB;AAAAA,MAAAA;AAAAA,MAENoC,MAAM;AAAA,QACJhB,IAAIpB;AAAAA,MAAAA;AAAAA,MAENqC,MAAM;AAAA,QACJlB,IAAInB;AAAAA,QACJoB,IAAIpB;AAAAA,MAAAA;AAAAA,MAEN6B,UAAU1D,KAAK0D;AAAAA,IAAAA,IAIZ;AAAA,MACLV,IAAI/C,OAAO4D,OAAMzB,UAAUyB,OAAM7B;AAAAA,MACjC8B,KAAK7D,OAAO4D,OAAMzB,UAAUyB,OAAM7B;AAAAA,MAClCkB,QAAQjD,OAAO4D,OAAM1B,SAAS0B,OAAM5B;AAAAA,MACpCgB,IAAIhD,OAAO4D,OAAM5B,UAAU4B,OAAM1B;AAAAA,MACjC4B,MAAM9D,OAAO4D,OAAM5B,UAAU4B,OAAM1B;AAAAA,MACnChC,OAAO;AAAA,QACL8C,IAAIpB;AAAAA,MAAAA;AAAAA,MAENmC,QAAQ;AAAA,QACNf,IAAIpB;AAAAA,MAAAA;AAAAA,MAENoC,MAAM;AAAA,QACJhB,IAAIpB;AAAAA,MAAAA;AAAAA,MAENqC,MAAM;AAAA,QACJlB,IAAInB;AAAAA,QACJoB,IAAIpB;AAAAA,MAAAA;AAAAA,MAEN6B,UAAU1D,KAAK0D;AAAAA,IAAAA;AAAAA,EAEnB;AAAA,EAEAnC,QAAQA,CAAC;AAAA,IAACvB;AAAAA,IAAMsB;AAAAA,IAAMnB;AAAAA,IAAOD;AAAAA,EAAAA,MACvBoB,SAAS,UACJ;AAAA,IACL,GAAGnB;AAAAA,IACHQ,SAAS;AAAA,MACPqC,IAAI;AAAA,MACJc,KAAK;AAAA,MACLb,IAAI9C,MAAMQ,QAAQsC;AAAAA,MAClBc,MAAM5D,MAAMQ,QAAQsC;AAAAA,MACpBC,QAAQ;AAAA,MACR/C,OAAO;AAAA,QACL8C,IAAIpB;AAAAA,MAAAA;AAAAA,MAENmC,QAAQ;AAAA,QACNf,IAAIpB;AAAAA,MAAAA;AAAAA,MAENoC,MAAM;AAAA,QACJhB,IAAIpB;AAAAA,MAAAA;AAAAA,MAENqC,MAAM;AAAA,QACJlB,IAAInB;AAAAA,QACJoB,IAAIpB;AAAAA,MAAAA;AAAAA,MAEN6B,UAAU1D,KAAK0D;AAAAA,IAAAA;AAAAA,IAEjB5C,SAAS;AAAA,MACPkC,IAAI7C,MAAMQ,QAAQqC;AAAAA,MAClBc,KAAK3D,MAAMQ,QAAQqC;AAAAA,MACnBC,IAAI9C,MAAMW,QAAQmC;AAAAA,MAClBc,MAAM5D,MAAMW,QAAQmC;AAAAA,MACpBC,QAAQ;AAAA,MACR/C,OAAO;AAAA,QACL8C,IAAIpB;AAAAA,MAAAA;AAAAA,MAENmC,QAAQ;AAAA,QACNf,IAAIpB;AAAAA,MAAAA;AAAAA,MAENoC,MAAM;AAAA,QACJhB,IAAIpB;AAAAA,MAAAA;AAAAA,MAENqC,MAAM;AAAA,QACJlB,IAAInB;AAAAA,QACJoB,IAAIpB;AAAAA,MAAAA;AAAAA,MAEN6B,UAAU1D,KAAK0D;AAAAA,IAAAA;AAAAA,EACjB,IAIApC,SAAS,UACJ;AAAA,IACL,GAAGpB;AAAAA,IACHS,SAASR,MAAMQ;AAAAA,EAAAA,IAGZT;AAAAA,EAGT0B,MAAMA,CAAC;AAAA,IAAC5B;AAAAA,EAAAA,OACC;AAAA,IACLgD,IAAInB;AAAAA,IACJiC,KAAKjC;AAAAA,IACLoB,IAAIpB;AAAAA,IACJkC,MAAMlC;AAAAA,IACNqB,QAAQrB;AAAAA,IACR1B,OAAO;AAAA,MACL8C,IAAIpB;AAAAA,IAAAA;AAAAA,IAENmC,QAAQ;AAAA,MACNf,IAAIpB;AAAAA,IAAAA;AAAAA,IAENoC,MAAM;AAAA,MACJhB,IAAIpB;AAAAA,IAAAA;AAAAA,IAENqC,MAAM;AAAA,MACJlB,IAAInB;AAAAA,MACJoB,IAAIpB;AAAAA,IAAAA;AAAAA,IAEN6B,UAAU1D,KAAK0D;AAAAA,EAAAA;AAAAA,EAInBS,OAAOA,OACE;AAAA,IACLnB,IAAInB;AAAAA,IACJiC,KAAKjC;AAAAA,IACLoB,IAAIpB;AAAAA,IACJqB,QAAQrB;AAAAA,IACRuC,aAAavC;AAAAA,EAAAA;AAAAA,EAIjBjB,YAAYA,CAAC;AAAA,IAACT;AAAAA,IAAOU;AAAAA,IAAOH;AAAAA,EAAAA,MACnBP,MAAMO,IAAI,EAAEG,KAAK;AAAA,EAG1BwD,MAAMA,CAAC;AAAA,IAACC;AAAAA,EAAAA,MACCjC,MAAMiC,GAAG;AAAA,EAGlBC,QAAQA,OAAO;AAAA,IACbC,QAAQ3C;AAAAA,IACR4C,UAAU5C;AAAAA,IACV6C,WAAW7C;AAAAA,IACX8C,WAAW9C;AAAAA,IACX+C,SAAS/C;AAAAA,IACTgD,SAAShD;AAAAA,IACTiD,OAAOjD;AAAAA,IACPkD,MAAMlD;AAAAA,IACNmD,OAAOnD;AAAAA,IACPoD,WAAWpD;AAAAA,IACXqD,SAASrD;AAAAA,IACTsD,UAAUtD;AAAAA,IACVuD,SAASvD;AAAAA,IACTwD,SAASxD;AAAAA,IACTyD,QAAQzD;AAAAA,IACR0D,UAAU1D;AAAAA,IACV2D,SAAS3D;AAAAA,IACT4D,IAAI5D;AAAAA,IACJ6D,WAAW7D;AAAAA,IACX8D,UAAU9D;AAAAA,IACV+D,SAAS/D;AAAAA,IACTgE,QAAQhE;AAAAA,IACRiE,UAAUjE;AAAAA,IACVkE,QAAQlE;AAAAA,IACRmE,UAAUnE;AAAAA,IACVoE,aAAapE;AAAAA,IACbqE,eAAerE;AAAAA,IACfsE,aAAatE;AAAAA,IACbuE,OAAOvE;AAAAA,IACPwE,UAAUxE;AAAAA,IACVyE,QAAQzE;AAAAA,IACR0E,QAAQ1E;AAAAA,IACR2E,KAAK3E;AAAAA,IACL4E,MAAM5E;AAAAA,IACN6E,KAAK7E;AAAAA,IACL8E,UAAU9E;AAAAA,EAAAA;AAEd;AClYO,SAAS+E,iBACd7G,MACAC,MACAC,MACAC,OACAC,OACiB;AACjB,SAAO;AAAA,IACLC,SAAS;AAAA,MACPO,SAASZ,KAAKoE,MAAM;AAAA,QAClBnE;AAAAA,QACAC;AAAAA,QACAqB,MAAM;AAAA,QACNT,OAAO;AAAA,QACPX,OAAOA,MAAME;AAAAA,QACbD,OAAOA,MAAMC;AAAAA,MAAAA,CACd;AAAA,MACDa,UAAUlB,KAAKoE,MAAM;AAAA,QACnBnE;AAAAA,QACAC;AAAAA,QACAqB,MAAM;AAAA,QACNT,OAAO;AAAA,QACPX,OAAOA,MAAME;AAAAA,QACbD,OAAOA,MAAMC;AAAAA,MAAAA,CACd;AAAA,MACDU,SAASf,KAAKoE,MAAM;AAAA,QAClBnE;AAAAA,QACAC;AAAAA,QACAqB,MAAM;AAAA,QACNT,OAAO;AAAA,QACPX,OAAOA,MAAME;AAAAA,QACbD,OAAOA,MAAMC;AAAAA,MAAAA,CACd;AAAA,MACDyG,UAAU9G,KAAKoE,MAAM;AAAA,QACnBnE;AAAAA,QACAC;AAAAA,QACAqB,MAAM;AAAA,QACNT,OAAO;AAAA,QACPX,OAAOA,MAAME;AAAAA,QACbD,OAAOA,MAAMC;AAAAA,MAAAA,CACd;AAAA,IAAA;AAAA,IAEH0G,SAAS;AAAA,MACPnG,SAASZ,KAAKoE,MAAM;AAAA,QAClBnE;AAAAA,QACAC;AAAAA,QACAqB,MAAM;AAAA,QACNT,OAAO;AAAA,QACPX,OAAOA,MAAME;AAAAA,QACbD,OAAOA,MAAMC;AAAAA,MAAAA,CACd;AAAA,MACDa,UAAUlB,KAAKoE,MAAM;AAAA,QACnBnE;AAAAA,QACAC;AAAAA,QACAqB,MAAM;AAAA,QACNT,OAAO;AAAA,QACPX,OAAOA,MAAME;AAAAA,QACbD,OAAOA,MAAMC;AAAAA,MAAAA,CACd;AAAA,MACDU,SAASf,KAAKoE,MAAM;AAAA,QAClBnE;AAAAA,QACAC;AAAAA,QACAqB,MAAM;AAAA,QACNT,OAAO;AAAA,QACPX,OAAOA,MAAME;AAAAA,QACbD,OAAOA,MAAMC;AAAAA,MAAAA,CACd;AAAA,MACDyG,UAAU9G,KAAKoE,MAAM;AAAA,QACnBnE;AAAAA,QACAC;AAAAA,QACAqB,MAAM;AAAA,QACNT,OAAO;AAAA,QACPX,OAAOA,MAAME;AAAAA,QACbD,OAAOA,MAAMC;AAAAA,MAAAA,CACd;AAAA,IAAA;AAAA,EACH;AAEJ;AC7EO,SAAS2G,iBACdhH,MACAC,MACAC,MACAkB,MACiB;AACjB,SAAO;AAAA,IACLf,SAAS;AAAA,MACPO,SAASZ,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEI,UAAUlB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC3EC,SAASf,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEE,SAAShB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEG,UAAUjB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAE7EO,aAAa;AAAA,MACXT,SAASZ,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC7EI,UAAUlB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC/EC,SAASf,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC7EE,SAAShB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC7EG,UAAUjB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAeS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAEjFP,SAAS;AAAA,MACPK,SAASZ,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEI,UAAUlB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC3EC,SAASf,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEE,SAAShB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEG,UAAUjB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAE7EN,UAAU;AAAA,MACRI,SAASZ,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EI,UAAUlB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC5EC,SAASf,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EE,SAAShB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EG,UAAUjB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAE9EL,SAAS;AAAA,MACPG,SAASZ,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEI,UAAUlB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC3EC,SAASf,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEE,SAAShB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MACzEG,UAAUjB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAWS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,IAE7EJ,UAAU;AAAA,MACRE,SAASZ,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EI,UAAUlB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,MAC5EC,SAASf,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EE,SAAShB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAU;AAAA,MAC1EG,UAAUjB,KAAKI,MAAM;AAAA,QAACH;AAAAA,QAAMC;AAAAA,QAAMS,MAAM;AAAA,QAAYS;AAAAA,QAAMN,OAAO;AAAA,MAAA,CAAW;AAAA,IAAA;AAAA,EAC9E;AAEJ;AClDO,SAASmG,WACdjH,MACAC,MACAC,MACgB;AAChB,SAAO;AAAA,IACLqC,MAAMvC,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAO;AAAA,IACzC1B,MAAM7C,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAO;AAAA,IACzCzB,QAAQ9C,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAS;AAAA,IAC7CxB,SAAS/C,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAU;AAAA,IAC/C/B,KAAKxC,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAM;AAAA,IACvC9B,QAAQzC,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAS;AAAA,IAC7C7B,QAAQ1C,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAS;AAAA,IAC7C5B,OAAO3C,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAQ;AAAA,IAC3C3B,MAAM5C,KAAKsE,KAAK;AAAA,MAACrE;AAAAA,MAAMC;AAAAA,MAAMqE,KAAK;AAAA,IAAA,CAAO;AAAA,EAAA;AAE7C;ACyEO,SAAS2C,iBACdC,cAA4C,IACzB;AACnB,QAAMC,WAAkC;AAAA,IAAC,GAAG/D;AAAAA,IAAa,GAAG8D;AAAAA,EAAAA;AAE5D,SAAO;AAAA,IACLhF,OAAOkF,mBAAmBD,UAAU,EAAK;AAAA,IACzClH,MAAMmH,mBAAmBD,UAAU,EAAI;AAAA,EAAA;AAE3C;AAKA,SAASC,mBAAmBrH,MAA6BE,MAAiC;AACxF,SAAO;AAAA,IACLG,SAASiH,aAAatH,MAAME,MAAM,SAAS;AAAA,IAC3CmB,aAAaiG,aAAatH,MAAME,MAAM,aAAa;AAAA,IACnDK,SAAS+G,aAAatH,MAAME,MAAM,SAAS;AAAA,IAC3CM,UAAU8G,aAAatH,MAAME,MAAM,UAAU;AAAA,IAC7CO,SAAS6G,aAAatH,MAAME,MAAM,SAAS;AAAA,IAC3CQ,UAAU4G,aAAatH,MAAME,MAAM,UAAU;AAAA,EAAA;AAEjD;AAKA,SAASoH,aACPtH,MACAE,MACAkB,MACY;AACZ,QAAMnB,OAAOD,KAAKC,KAAK;AAAA,IAACC;AAAAA,IAAMkB;AAAAA,EAAAA,CAAK,GAC7BjB,QAAQgB,iBAAiBnB,MAAMC,MAAMC,MAAMkB,IAAI,GAC/ChB,QAAQ4G,iBAAiBhH,MAAMC,MAAMC,MAAMkB,IAAI;AAErD,SAAO;AAAA,IACLnB;AAAAA,IACAuB,QAAQC,kBAAkBzB,MAAMC,MAAMC,MAAMC,OAAOC,KAAK;AAAA,IACxDyB,MAAMD,iBAAiB5B,MAAMC,MAAMC,MAAMkB,MAAMjB,OAAOC,KAAK;AAAA,IAC3DF;AAAAA,IACAkE,OAAOyC,iBAAiB7G,MAAMC,MAAMC,MAAMC,OAAOC,KAAK;AAAA,IACtDS,YAAYd,sBAAsBC,MAAMC,MAAMC,MAAMC,OAAOC,KAAK;AAAA,IAChEkE,MAAM2C,WAAWjH,MAAMC,MAAMC,IAAI;AAAA,IACjCsE,QAAQxE,KAAKwE,OAAO;AAAA,MAACvE;AAAAA,MAAMC;AAAAA,IAAAA,CAAK;AAAA,IAChCC;AAAAA,IACAC;AAAAA,EAAAA;AAEJ;ACxIO,MAAMmH,qBAA2D;AAAA,EAEtEC,QAAQ;AAAA,IACNC,OAAO,CACL;AAAA,MAACC,UAAU;AAAA,MAAIC,MAAM;AAAA,IAAA,GACrB;AAAA,MAACD,UAAU;AAAA,MAAIC,MAAM;AAAA,IAAA,GACrB;AAAA,MAACD,UAAU;AAAA,MAAIC,MAAM;AAAA,IAAA,GACrB;AAAA,MAACD,UAAU;AAAA,MAAKC,MAAM;AAAA,IAAA,CAAG;AAAA,IAE3BvE,WAAW;AAAA,MAACwE,QAAQ;AAAA,MAAGC,OAAO;AAAA,IAAA;AAAA,EAAC;AAAA,EAEjCrG,QAAQ;AAAA,IACNsG,YAAY;AAAA,IACZ3E,QAAQ;AAAA,MAAC0E,OAAOE;AAAAA,IAAAA;AAAAA,IAChB3E,WAAW;AAAA,MAACwE,QAAQ;AAAA,MAAIC,OAAO;AAAA,IAAA;AAAA,EAAC;AAAA,EAElChG,MAAM;AAAA,IACJsB,QAAQ;AAAA,MAAC0E,OAAOE;AAAAA,IAAAA;AAAAA,IAChB3E,WAAW;AAAA,MAACwE,QAAQ;AAAA,MAAIC,OAAO;AAAA,IAAA;AAAA,IAC/BvE,QAAQ;AAAA,MAACC,SAASyE;AAAAA,IAAAA;AAAAA,EAAa;AAAA,EAEjCC,WAAW,CAAC,KAAK,KAAK,KAAK,MAAM,MAAM,IAAI;AAAA,EAC3CC,OAAO,CAAC,KAAK,KAAK,KAAK,MAAM,MAAM,IAAI;AAAA,EACvCC,OAAO;AAAA,IACLC,QAAQ;AAAA,MAACC,SAAS;AAAA,IAAA;AAAA,IAClBC,SAAS;AAAA,MAACD,SAAS;AAAA,IAAA;AAAA,IACnBE,SAAS;AAAA,MAACF,SAAS;AAAA,IAAA;AAAA,EAAG;AAAA,EAExBG,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE;AAAA,EAC9BlF,QAAQ,CACN,MACA;AAAA,IAACE,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,IAAGC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,IAAGC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,EAAA,GAClE;AAAA,IAACF,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE;AAAA,IAAGC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC;AAAA,IAAGC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC;AAAA,EAAA,GACrE;AAAA,IAACF,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE;AAAA,IAAGC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC;AAAA,IAAGC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC;AAAA,EAAA,GACtE;AAAA,IAACF,OAAO,CAAC,GAAG,GAAG,IAAI,EAAE;AAAA,IAAGC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC;AAAA,IAAGC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC;AAAA,EAAA,GACvE;AAAA,IAACF,OAAO,CAAC,GAAG,IAAI,IAAI,EAAE;AAAA,IAAGC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC;AAAA,IAAGC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC;AAAA,EAAA,CAAE;AAAA,EAE5E+E,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG;AAAA,EAC7CrE,OAAO;AAAA,IACLjB,QAAQ;AAAA,MACN0E,OAAOE;AAAAA,IAAAA;AAAAA,IAETW,UAAU;AAAA,MACRf,MAAM;AAAA,MACNvE,WAAW;AAAA,QAACwE,QAAQ;AAAA,QAAIC,OAAO;AAAA,MAAA;AAAA,IAAC;AAAA,IAElCc,OAAO;AAAA,MACLhB,MAAM;AAAA,MACNiB,UAAU;AAAA,MACVxF,WAAW;AAAA,QAACwE,QAAQ;AAAA,QAAIC,OAAO;AAAA,MAAA;AAAA,IAAC;AAAA,IAElCgB,QAAQ;AAAA,MACNhB,OAAO;AAAA,MACPiB,QAAQ;AAAA,MACRC,SAAS;AAAA,MACTC,sBAAsB;AAAA,MACtBC,0BAA0B;AAAA,MAC1B7F,WAAW;AAAA,QAACwE,QAAQ;AAAA,QAAGC,OAAO;AAAA,MAAA;AAAA,IAAC;AAAA,IAEjCqB,QAAQ;AAAA,MACN9F,WAAW;AAAA,QAACwE,QAAQ;AAAA,QAAIC,OAAO;AAAA,MAAA;AAAA,IAAC;AAAA,IAElCsB,MAAM;AAAA,MACJ/F,WAAW;AAAA,QAACwE,QAAQ;AAAA,QAAIC,OAAO;AAAA,MAAA;AAAA,IAAC;AAAA,EAClC;AAAA,EAEFuB,OAAO;AAAA,IACL5H,QAAQ;AAAA,MACN6H,MAAM;AAAA,QACJC,YAAY;AAAA,MAAA;AAAA,IACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACF;AAOJ,GCjFaC,oBAAgC;AAAA,EAC3CpF,MAAM;AAAA,IACJqF,QAAQ;AAAA,IACRC,SAAS;AAAA,MACPC,SAAS;AAAA,MACTC,QAAQ;AAAA,MACRC,UAAU;AAAA,MACVC,MAAM;AAAA,IAAA;AAAA,IAERpC,OAAO,CACL;AAAA,MACEqC,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,CAChB;AAAA,EAAA;AAAA,EAGLC,SAAS;AAAA,IACPZ,QACE;AAAA,IACFC,SAAS;AAAA,MACPC,SAAS;AAAA,MACTC,QAAQ;AAAA,MACRC,UAAU;AAAA,MACVC,MAAM;AAAA,IAAA;AAAA,IAERpC,OAAO,CACL;AAAA,MACEqC,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,CAChB;AAAA,EAAA;AAAA,EAGLE,OAAO;AAAA,IACLb,QACE;AAAA,IACFC,SAAS;AAAA,MACPC,SAAS;AAAA,MACTC,QAAQ;AAAA,MACRC,UAAU;AAAA,MACVC,MAAM;AAAA,IAAA;AAAA,IAERpC,OAAO,CACL;AAAA,MACEqC,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,CAChB;AAAA,EAAA;AAAA,EAGLhB,MAAM;AAAA,IACJK,QACE;AAAA,IACFC,SAAS;AAAA,MACPC,SAAS;AAAA,MACTC,QAAQ;AAAA,MACRC,UAAU;AAAA,MACVC,MAAM;AAAA,IAAA;AAAA,IAERpC,OAAO,CACL;AAAA,MACEqC,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,GAEjB;AAAA,MACEL,gBAAgB;AAAA,MAChBC,iBAAiB;AAAA,MACjBC,UAAU;AAAA,MACVC,UAAU;AAAA,MACVC,YAAY;AAAA,MACZC,eAAe;AAAA,IAAA,CAChB;AAAA,EAAA;AAGP,GCrNMG,8BAAYC,QAAAA;AAGX,SAASC,iBAAiBC,UAAyC;AACxE,QAAMC,YAAYJ,QAAMK,IAAIF,QAAQ;AAEpC,MAAIC,UAAW,QAAOA;AAEtB,QAAMzK,OAAO2K,sBAAsBH,UAAUA,SAAS5I,KAAKjB,OAAO,GAE5DiK,WAA8B;AAAA,IAClCC,QAAQL,SAASK,WAAWL,SAASvK,OAAO,WAAW;AAAA,IACvD6K,OAAON,SAASvK;AAAAA,IAChB+D,QAAQhE,KAAKgE;AAAAA,IACbuD,QAAQvH,KAAKuH;AAAAA,IACbwD,UAAUP,SAASxK,KAAKqD,OAAOI;AAAAA,IAC/BuH,OAAOhL,KAAKgL;AAAAA,IACZhI,IAAIwH,SAASxK,KAAKgD;AAAAA,IAClBE,QAAQsH,SAASxK,KAAKkD;AAAAA,IACtB3B,QAAQ;AAAA,MACNnB,SAAS6K,2BAA2BT,UAAUA,SAASjJ,OAAOnB,OAAO;AAAA,MACrEqB,OAAOwJ,2BAA2BT,UAAUA,SAASjJ,OAAOE,KAAK;AAAA,MACjEC,OAAOuJ,2BAA2BT,UAAUA,SAASjJ,OAAOG,KAAK;AAAA,IAAA;AAAA,IAEnEwC,MAAMlE,KAAKkE;AAAAA,IACXjB,IAAIuH,SAASxK,KAAKiD;AAAAA,IAClBE,WAAWqH,SAASxK,KAAKmD;AAAAA,IACzBY,MAAM/D,KAAKG,MAAM8C;AAAAA,IACjBkB,OAAO;AAAA,MACL/D,SAAS8K,4BAA4BV,SAASrG,MAAM/D,OAAO;AAAA,MAC3D0G,SAASoE,4BAA4BV,SAASrG,MAAM2C,OAAO;AAAA,IAAA;AAAA,IAE7DqE,KAAKnL,KAAKmL;AAAAA,IACVlH,MAAMjE,KAAKiE;AAAAA,IACX9D,OAAO;AAAA,MACL,GAAGH,KAAKG;AAAAA,MACR6C,IAAIwH,SAAS5J,YAAYR,QAAQO,QAAQmD,OAAO0G,SAASxK,KAAKgD;AAAAA,IAAAA;AAAAA,IAEhEpC,YAAYqK,2BAA2BT,UAAUA,SAAS5J,cAAc4J,SAASrK,KAAK;AAAA,IACtFkD,QAAQmH,SAASxK,KAAKqD;AAAAA,IACtBK,UAAU;AAAA,MACRC,MAAM6G,SAAS9G,UAAUC,QAAQ6G,SAASxK,KAAKkD;AAAAA,MAC/CU,IAAI4G,SAAS9G,UAAUE,MAAM4G,SAASxK,KAAKkD;AAAAA,IAAAA;AAAAA,IAE7CqB,QAAQiG,SAASjG;AAAAA,EAAAA;AAGnB8F,SAAAA,QAAMe,IAAIZ,UAAUI,QAAQ,GAErBA;AACT;AAEA,SAASK,2BACPI,IACAC,GACyB;AACzB,SAAO;AAAA,IACLlL,SAAS;AAAA,MACPO,SAASgK,sBAAsBU,IAAIC,EAAElL,QAAQO,OAAO;AAAA,MACpDG,SAAS6J,sBAAsBU,IAAIC,EAAElL,QAAQU,OAAO;AAAA,MACpDC,SAAS4J,sBAAsBU,IAAIC,EAAElL,QAAQW,OAAO;AAAA,MACpDC,UAAU2J,sBAAsBU,IAAIC,EAAElL,QAAQY,QAAQ;AAAA,MACtDC,UAAU0J,sBAAsBU,IAAIC,EAAElL,QAAQa,QAAQ;AAAA,IAAA;AAAA,IAExDsK,SAAS;AAAA,MACP5K,SAASgK,sBAAsBU,IAAIC,EAAElL,QAAQO,OAAO;AAAA,MACpDG,SAAS6J,sBAAsBU,IAAIC,EAAElL,QAAQU,OAAO;AAAA,MACpDC,SAAS4J,sBAAsBU,IAAIC,EAAElL,QAAQW,OAAO;AAAA,MACpDC,UAAU2J,sBAAsBU,IAAIC,EAAElL,QAAQY,QAAQ;AAAA,MACtDC,UAAU0J,sBAAsBU,IAAIC,EAAElL,QAAQa,QAAQ;AAAA,IAAA;AAAA,IAExDX,SAAS;AAAA,MACPK,SAASgK,sBAAsBU,IAAIC,EAAEhL,QAAQK,OAAO;AAAA,MACpDG,SAAS6J,sBAAsBU,IAAIC,EAAEhL,QAAQQ,OAAO;AAAA,MACpDC,SAAS4J,sBAAsBU,IAAIC,EAAEhL,QAAQS,OAAO;AAAA,MACpDC,UAAU2J,sBAAsBU,IAAIC,EAAEhL,QAAQU,QAAQ;AAAA,MACtDC,UAAU0J,sBAAsBU,IAAIC,EAAEhL,QAAQW,QAAQ;AAAA,IAAA;AAAA,IAExDuK,SAAS;AAAA,MACP7K,SAASgK,sBAAsBU,IAAIC,EAAEhL,QAAQK,OAAO;AAAA,MACpDG,SAAS6J,sBAAsBU,IAAIC,EAAEhL,QAAQQ,OAAO;AAAA,MACpDC,SAAS4J,sBAAsBU,IAAIC,EAAEhL,QAAQS,OAAO;AAAA,MACpDC,UAAU2J,sBAAsBU,IAAIC,EAAEhL,QAAQU,QAAQ;AAAA,MACtDC,UAAU0J,sBAAsBU,IAAIC,EAAEhL,QAAQW,QAAQ;AAAA,IAAA;AAAA,IAExDV,UAAU;AAAA,MACRI,SAASgK,sBAAsBU,IAAIC,EAAE/K,SAASI,OAAO;AAAA,MACrDG,SAAS6J,sBAAsBU,IAAIC,EAAE/K,SAASO,OAAO;AAAA,MACrDC,SAAS4J,sBAAsBU,IAAIC,EAAE/K,SAASQ,OAAO;AAAA,MACrDC,UAAU2J,sBAAsBU,IAAIC,EAAE/K,SAASS,QAAQ;AAAA,MACvDC,UAAU0J,sBAAsBU,IAAIC,EAAE/K,SAASU,QAAQ;AAAA,IAAA;AAAA,IAEzDT,SAAS;AAAA,MACPG,SAASgK,sBAAsBU,IAAIC,EAAE9K,QAAQG,OAAO;AAAA,MACpDG,SAAS6J,sBAAsBU,IAAIC,EAAE9K,QAAQM,OAAO;AAAA,MACpDC,SAAS4J,sBAAsBU,IAAIC,EAAE9K,QAAQO,OAAO;AAAA,MACpDC,UAAU2J,sBAAsBU,IAAIC,EAAE9K,QAAQQ,QAAQ;AAAA,MACtDC,UAAU0J,sBAAsBU,IAAIC,EAAE9K,QAAQS,QAAQ;AAAA,IAAA;AAAA,IAExDR,UAAU;AAAA,MACRE,SAASgK,sBAAsBU,IAAIC,EAAE7K,SAASE,OAAO;AAAA,MACrDG,SAAS6J,sBAAsBU,IAAIC,EAAE7K,SAASK,OAAO;AAAA,MACrDC,SAAS4J,sBAAsBU,IAAIC,EAAE7K,SAASM,OAAO;AAAA,MACrDC,UAAU2J,sBAAsBU,IAAIC,EAAE7K,SAASO,QAAQ;AAAA,MACvDC,UAAU0J,sBAAsBU,IAAIC,EAAE7K,SAASQ,QAAQ;AAAA,IAAA;AAAA,EACzD;AAEJ;AAEA,SAAS0J,sBAAsBU,IAAgBxK,OAAmD;AAChG,SAAO;AAAA,IACL,GAAGA;AAAAA,IACH0G,QAAQ;AAAA,MACNjF,MAAM;AAAA,QACJU,IAAIqI,GAAGhH,KAAK/B;AAAAA,QACZW,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,MAEdJ,MAAM;AAAA,QACJI,IAAIqI,GAAGhH,KAAKzB;AAAAA,QACZK,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,MAEdH,QAAQ;AAAA,QACNG,IAAIqI,GAAGhH,KAAKxB;AAAAA,QACZI,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,MAEdF,SAAS;AAAA,QACPE,IAAIqI,GAAGhH,KAAKvB;AAAAA,QACZG,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,MAEdT,KAAK;AAAA,QACHS,IAAIqI,GAAGhH,KAAK9B;AAAAA,QACZU,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,MAEdR,QAAQ;AAAA,QACNQ,IAAIqI,GAAGhH,KAAK7B;AAAAA,QACZS,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,MAEdP,QAAQ;AAAA,QACNO,IAAIqI,GAAGhH,KAAK5B;AAAAA,QACZQ,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,MAEdN,OAAO;AAAA,QACLM,IAAIqI,GAAGhH,KAAK3B;AAAAA,QACZO,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,MAEdL,MAAM;AAAA,QACJK,IAAIqI,GAAGhH,KAAK1B;AAAAA,QACZM,IAAIoI,GAAGrL,KAAKgD;AAAAA,MAAAA;AAAAA,IACd;AAAA,IAEFgI,OAAO;AAAA,MACL5K,SAAS;AAAA,QACP4C,IAAIqI,GAAGlL,MAAMC,QAAQO,QAAQqC;AAAAA,QAC7BC,IAAIoI,GAAGlL,MAAMC,QAAQO,QAAQsC;AAAAA,QAC7BwI,KAAKJ,GAAGlL,MAAMC,QAAQO,QAAQR,MAAM8C;AAAAA,QACpCc,MAAMsH,GAAGlL,MAAMC,QAAQO,QAAQR,MAAM8C;AAAAA,MAAAA;AAAAA,MAEvCsI,SAAS;AAAA,QACPvI,IAAIqI,GAAGlL,MAAMiB,YAAYT,QAAQqC;AAAAA,QACjCC,IAAIoI,GAAGlL,MAAMiB,YAAYT,QAAQsC;AAAAA,QACjCwI,KAAKJ,GAAGlL,MAAMiB,YAAYT,QAAQR,MAAM8C;AAAAA,QACxCc,MAAMsH,GAAGlL,MAAMiB,YAAYT,QAAQR,MAAM8C;AAAAA,MAAAA;AAAAA,MAE3C3C,SAAS;AAAA,QACP0C,IAAIqI,GAAGlL,MAAMG,QAAQK,QAAQqC;AAAAA,QAC7BC,IAAIoI,GAAGlL,MAAMG,QAAQK,QAAQsC;AAAAA,QAC7BwI,KAAKJ,GAAGlL,MAAMG,QAAQK,QAAQR,MAAM8C;AAAAA,QACpCc,MAAMsH,GAAGlL,MAAMG,QAAQK,QAAQR,MAAM8C;AAAAA,MAAAA;AAAAA,MAEvCuI,SAAS;AAAA,QACPxI,IAAIqI,GAAGlL,MAAMG,QAAQK,QAAQqC;AAAAA,QAC7BC,IAAIoI,GAAGlL,MAAMG,QAAQK,QAAQsC;AAAAA,QAC7BwI,KAAKJ,GAAGlL,MAAMG,QAAQK,QAAQR,MAAM8C;AAAAA,QACpCc,MAAMsH,GAAGlL,MAAMG,QAAQK,QAAQR,MAAM8C;AAAAA,MAAAA;AAAAA,MAEvC1C,UAAU;AAAA,QACRyC,IAAIqI,GAAGlL,MAAMI,SAASI,QAAQqC;AAAAA,QAC9BC,IAAIoI,GAAGlL,MAAMI,SAASI,QAAQsC;AAAAA,QAC9BwI,KAAKJ,GAAGlL,MAAMI,SAASI,QAAQR,MAAM8C;AAAAA,QACrCc,MAAMsH,GAAGlL,MAAMI,SAASI,QAAQR,MAAM8C;AAAAA,MAAAA;AAAAA,MAExCzC,SAAS;AAAA,QACPwC,IAAIqI,GAAGlL,MAAMK,QAAQG,QAAQqC;AAAAA,QAC7BC,IAAIoI,GAAGlL,MAAMK,QAAQG,QAAQsC;AAAAA,QAC7BwI,KAAKJ,GAAGlL,MAAMK,QAAQG,QAAQR,MAAM8C;AAAAA,QACpCc,MAAMsH,GAAGlL,MAAMK,QAAQG,QAAQR,MAAM8C;AAAAA,MAAAA;AAAAA,MAEvCxC,UAAU;AAAA,QACRuC,IAAIqI,GAAGlL,MAAMM,SAASE,QAAQqC;AAAAA,QAC9BC,IAAIoI,GAAGlL,MAAMM,SAASE,QAAQsC;AAAAA,QAC9BwI,KAAKJ,GAAGlL,MAAMM,SAASE,QAAQR,MAAM8C;AAAAA,QACrCc,MAAMsH,GAAGlL,MAAMM,SAASE,QAAQR,MAAM8C;AAAAA,MAAAA;AAAAA,IACxC;AAAA,IAEFkI,KAAK;AAAA,MACHnI,IAAIqI,GAAGlL,MAAMC,QAAQO,QAAQqC;AAAAA,MAC7BC,IAAIoI,GAAGlL,MAAMC,QAAQO,QAAQsC;AAAAA,MAC7BC,QAAQmI,GAAGlL,MAAMC,QAAQO,QAAQuC;AAAAA,IAAAA;AAAAA,IAEnC/C,OAAO;AAAA,MACL,GAAGkL,GAAGlL,MAAMC,QAAQO,QAAQR;AAAAA,MAC5B6C,IAAInC,MAAMiD,OAAOjD,MAAMmC;AAAAA,IAAAA;AAAAA,IAEzBU,UAAU;AAAA,MACRC,MAAM9C,MAAM6C,UAAUC,QAAQ9C,MAAMqC;AAAAA,MACpCU,IAAI/C,MAAM6C,UAAUE,MAAM/C,MAAMqC;AAAAA,IAAAA;AAAAA,EAClC;AAEJ;AAEA,SAASgI,4BAA4BQ,QAAuD;AAC1F,SAAO;AAAA,IACL/K,SAASgL,2BAA2BD,OAAO/K,OAAO;AAAA,IAClDM,UAAU0K,2BAA2BD,OAAOzK,QAAQ;AAAA,IACpD4F,UAAU8E,2BAA2BD,OAAO7E,QAAQ;AAAA,IACpD/F,SAAS6K,2BAA2BD,OAAO5K,OAAO;AAAA,EAAA;AAEtD;AAEA,SAAS6K,2BAA2B9K,OAAsD;AACxF,SAAO;AAAA,IACLmC,IAAInC,MAAMmC;AAAAA,IACVE,QAAQrC,MAAMqC;AAAAA,IACdD,IAAIpC,MAAMoC;AAAAA,IACV9C,OAAO;AAAA,MACL6C,IAAInC,MAAMiD;AAAAA,IAAAA;AAAAA,IAEZM,aAAavD,MAAMuD;AAAAA,EAAAA;AAEvB;AC9OA,MAAMiG,8BAAYC,QAAAA;AAGX,SAASsB,YAAYC,OAAwB;AAClD,MAAIA,MAAMC,OAAOC,IAAIC,UAAW,QAAOH,MAAMC,OAAOC;AAEpD,QAAMtB,YAAYJ,QAAMK,IAAImB,KAAK;AAEjC,MAAIpB,UAAW,QAAOA;AAEtB,QAAMsB,KAAe;AAAA,IACnBE,UAAU;AAAA,IACVD,WAAW;AAAA,IACXzE,QAAQ;AAAA,MACN,GAAGD,mBAAmBC;AAAAA,MACtB,GAAGsE,MAAMC,OAAOvE;AAAAA,IAAAA;AAAAA,IAElBhG,QAAQ;AAAA,MACN,GAAG+F,mBAAmB/F;AAAAA,MACtB,GAAGsK,MAAMC,OAAOvK;AAAAA,IAAAA;AAAAA,IAElBK,MAAM0F,mBAAmB1F;AAAAA,IACzBiC,OAAO0G,iBAAiBsB,MAAMC,OAAOjI,KAAK;AAAA,IAC1CmE,WAAW6D,MAAMC,OAAO9D;AAAAA,IACxBkE,MAAML,MAAMC,OAAOK;AAAAA,IACnBhI,OAAO;AAAA,MACL,GAAGmD,mBAAmBnD;AAAAA,MACtB,GAAG0H,MAAMC,OAAO3H;AAAAA,MAChBsE,UAAU;AAAA,QACR,GAAGnB,mBAAmBnD,MAAMsE;AAAAA,QAC5B,GAAGoD,MAAMC,OAAO3H,MAAMsE;AAAAA,MAAAA;AAAAA,MAExBC,OAAO;AAAA,QACL,GAAGpB,mBAAmBnD,MAAMuE;AAAAA,QAC5B,GAAGmD,MAAMC,OAAO3H,MAAMuE;AAAAA,MAAAA;AAAAA,MAExBE,QAAQ;AAAA,QACN,GAAGtB,mBAAmBnD,MAAMyE;AAAAA,QAC5B,GAAGiD,MAAMC,OAAO3H,MAAMyE;AAAAA,MAAAA;AAAAA,IACxB;AAAA,IAEFV,OAAO2D,MAAMC,OAAO5D,SAASZ,mBAAmBY;AAAAA,IAChDD,OAAO4D,MAAMC,OAAO7D;AAAAA,IACpBM,QAAQsD,MAAMC,OAAOvD;AAAAA,IACrBlF,QAAQwI,MAAMC,OAAOM;AAAAA,IACrB5D,OAAOqD,MAAMC,OAAOtD;AAAAA,IACpBW,OAAO0C,MAAMC,OAAOO;AAAAA,EAAAA;AAGtBhC,SAAAA,QAAMe,IAAIS,OAAOE,EAAE,GAEZA;AACT;ACrDO,SAASO,MAAMC,WAA6D;AACjF,SAAOA,UAAUN,aAAa;AAChC;ACFO,SAASO,MAAMD,WAAgE;AACpF,SAAOA,UAAUN,aAAa;AAChC;ACDA,MAAM5B,8BAAYC,QAAAA;AAGX,SAASmC,MAAMpB,IAA6B;AACjD,MAAIA,GAAGU,GAAI,QAAOV,GAAGU;AAErB,QAAMtB,YAAYJ,QAAMK,IAAIW,EAAE;AAE9B,MAAIZ,UAAW,QAAOA;AAEtB,QAAM;AAAA,IACJlD;AAAAA,IACAhG;AAAAA,IACAsC,OAAAA;AAAAA,IACAmE;AAAAA,IAGAmE,OAAOD;AAAAA,IACP/H;AAAAA,IACA+D;AAAAA,IACAD;AAAAA,IACAM;AAAAA,IACA6D,SAAS/I;AAAAA,IACTmF;AAAAA,IACA6D,QAAQlD;AAAAA,EAAAA,IACNkC,IAEEU,KAAmB;AAAA,IACvBE,UAAU;AAAA,IACV1E,QAAQ;AAAA,MACN,GAAGD,mBAAmBC;AAAAA,MACtB,GAAGA;AAAAA,IAAAA;AAAAA,IAELhG,QAAQ;AAAA,MACN,GAAG+F,mBAAmB/F;AAAAA,MACtB,GAAGA;AAAAA,IAAAA;AAAAA,IAELK,MAAM0F,mBAAmB1F;AAAAA,IACzBiC,OAAO;AAAA,MACL3B,OAAO;AAAA,QACLd,aAAamJ,iBAAiB1G,OAAM3B,MAAMd,WAAW;AAAA,QACrDhB,SAASmK,iBAAiB1G,OAAM3B,MAAM9B,OAAO;AAAA,QAC7CmL,SAAShB,iBAAiB1G,OAAM3B,MAAMd,WAAW;AAAA,QACjDd,SAASiK,iBAAiB1G,OAAM3B,MAAM5B,OAAO;AAAA,QAC7CkL,SAASjB,iBAAiB1G,OAAM3B,MAAM5B,OAAO;AAAA,QAC7CC,UAAUgK,iBAAiB1G,OAAM3B,MAAM3B,QAAQ;AAAA,QAC/CC,SAAS+J,iBAAiB1G,OAAM3B,MAAM1B,OAAO;AAAA,QAC7CC,UAAU8J,iBAAiB1G,OAAM3B,MAAMzB,QAAQ;AAAA,MAAA;AAAA,MAEjDR,MAAM;AAAA,QACJmB,aAAamJ,iBAAiB1G,OAAM5D,KAAKmB,WAAW;AAAA,QACpDhB,SAASmK,iBAAiB1G,OAAM5D,KAAKG,OAAO;AAAA,QAC5CmL,SAAShB,iBAAiB1G,OAAM5D,KAAKmB,WAAW;AAAA,QAChDd,SAASiK,iBAAiB1G,OAAM5D,KAAKK,OAAO;AAAA,QAC5CkL,SAASjB,iBAAiB1G,OAAM5D,KAAKK,OAAO;AAAA,QAC5CC,UAAUgK,iBAAiB1G,OAAM5D,KAAKM,QAAQ;AAAA,QAC9CC,SAAS+J,iBAAiB1G,OAAM5D,KAAKO,OAAO;AAAA,QAC5CC,UAAU8J,iBAAiB1G,OAAM5D,KAAKQ,QAAQ;AAAA,MAAA;AAAA,IAChD;AAAA,IAEFuH;AAAAA,IACAkE;AAAAA,IACA/H,OAAO;AAAA,MACL,GAAGmD,mBAAmBnD;AAAAA,MACtB,GAAGA;AAAAA,MACHsE,UAAU;AAAA,QACR,GAAGnB,mBAAmBnD,MAAMsE;AAAAA,QAC5B,GAAGtE,MAAMsE;AAAAA,MAAAA;AAAAA,MAEXC,OAAO;AAAA,QACL,GAAGpB,mBAAmBnD,MAAMuE;AAAAA,QAC5B,GAAGvE,MAAMuE;AAAAA,MAAAA;AAAAA,MAEXE,QAAQ;AAAA,QACN,GAAGtB,mBAAmBnD,MAAMyE;AAAAA,QAC5B,GAAGzE,MAAMyE;AAAAA,MAAAA;AAAAA,IACX;AAAA,IAEFV,OAAOA,SAASZ,mBAAmBY;AAAAA,IACnCD;AAAAA,IACAM;AAAAA,IACAlF;AAAAA,IACAmF;AAAAA,IACAW;AAAAA,EAAAA;AAGFkB,SAAAA,QAAMe,IAAIC,IAAIU,EAAE,GAETA;AACT;AClFA,MAAM1B,8BAAYC,QAAAA;AAGX,SAASoC,MAAMX,IAA6B;AACjD,QAAMY,cAActC,QAAMK,IAAIqB,EAAE;AAEhC,MAAIY,YAAa,QAAOA;AAExB,QAAM;AAAA,IACJpF;AAAAA,IACAhG;AAAAA,IACAsC,OAAAA;AAAAA,IACAmE;AAAAA,IACAkE,MAAMC;AAAAA,IACNhI;AAAAA,IACA8D;AAAAA,IACAM;AAAAA,IACAlF,QAAQ+I;AAAAA,IACR5D;AAAAA,IACAW,OAAOkD;AAAAA,EAAAA,IACLN;AAEJ,SAAO;AAAA,IACLE,UAAU;AAAA,IACV1E;AAAAA,IACAhG;AAAAA,IACAyG;AAAAA,IACAnE,OAAO;AAAA,MACL3B,OAAO;AAAA,QACLd,aAAawL,iBAAiB/I,OAAM3B,MAAMd,WAAW;AAAA,QACrDhB,SAASwM,iBAAiB/I,OAAM3B,MAAM9B,OAAO;AAAA,QAC7CE,SAASsM,iBAAiB/I,OAAM3B,MAAM5B,OAAO;AAAA,QAC7CC,UAAUqM,iBAAiB/I,OAAM3B,MAAM3B,QAAQ;AAAA,QAC/CC,SAASoM,iBAAiB/I,OAAM3B,MAAM1B,OAAO;AAAA,QAC7CC,UAAUmM,iBAAiB/I,OAAM3B,MAAMzB,QAAQ;AAAA,MAAA;AAAA,MAEjDR,MAAM;AAAA,QACJmB,aAAawL,iBAAiB/I,OAAM5D,KAAKmB,WAAW;AAAA,QACpDhB,SAASwM,iBAAiB/I,OAAM5D,KAAKG,OAAO;AAAA,QAC5CE,SAASsM,iBAAiB/I,OAAM5D,KAAKK,OAAO;AAAA,QAC5CC,UAAUqM,iBAAiB/I,OAAM5D,KAAKM,QAAQ;AAAA,QAC9CC,SAASoM,iBAAiB/I,OAAM5D,KAAKO,OAAO;AAAA,QAC5CC,UAAUmM,iBAAiB/I,OAAM5D,KAAKQ,QAAQ;AAAA,MAAA;AAAA,IAChD;AAAA,IAEF0C,WAAWgB,MAAM+E,KAAK/F;AAAAA,IACtBgJ;AAAAA,IACAhI;AAAAA,IACA8D;AAAAA,IACAM;AAAAA,IACA6D;AAAAA,IACA5D;AAAAA,IACA6D;AAAAA,IAEAN;AAAAA,EAAAA;AAEJ;AAEA,SAASa,iBAAiBhC,UAAyC;AACjE,SAAO;AAAA,IACL5K,MAAM;AAAA,MACJgD,IAAI4H,SAAS5H;AAAAA,MACbC,IAAI2H,SAAS3H;AAAAA,MACbC,QAAQ0H,SAAS1H;AAAAA,MACjBC,WAAWyH,SAASzH;AAAAA,MACpBE,QAAQuH,SAASvH;AAAAA,IAAAA;AAAAA,IAEnB9B,QAAQqJ,SAASrJ;AAAAA,IACjBK,MAAMgJ,SAAShK,WAAWR;AAAAA,IAC1BH,MAAM2K,SAASE;AAAAA,IACf3G,OAAO;AAAA,MACL/D,SAASyM,4BAA4BjC,SAASzG,MAAM/D,OAAO;AAAA,MAC3D0G,SAAS+F,4BAA4BjC,SAASzG,MAAM2C,OAAO;AAAA,IAAA;AAAA,IAE7D3G,OAAO;AAAA,MACL,GAAGyK,SAASrJ,OAAOE;AAAAA,MACnBL,aAAawJ,SAASrJ,OAAOE,MAAMrB;AAAAA,IAAAA;AAAAA,IAErCF,OAAO;AAAA,MACL,GAAG0K,SAASrJ,OAAOnB;AAAAA,MACnBgB,aAAawJ,SAASrJ,OAAOnB,QAAQA;AAAAA,IAAAA;AAAAA,IAEvCQ,YAAYgK,SAAShK;AAAAA,IACrByD,MAAM;AAAA,MACJ/B,MAAMsI,SAASrD,OAAOjF,KAAKU;AAAAA,MAC3BJ,MAAMgI,SAASrD,OAAO3E,KAAKI;AAAAA,MAC3BH,QAAQ+H,SAASrD,OAAO1E,OAAOG;AAAAA,MAC/BF,SAAS8H,SAASrD,OAAOzE,QAAQE;AAAAA,MACjCT,KAAKqI,SAASrD,OAAOhF,IAAIS;AAAAA,MACzBR,QAAQoI,SAASrD,OAAO/E,OAAOQ;AAAAA,MAC/BP,QAAQmI,SAASrD,OAAO9E,OAAOO;AAAAA,MAC/BN,OAAOkI,SAASrD,OAAO7E,MAAMM;AAAAA,MAC7BL,MAAMiI,SAASrD,OAAO5E,KAAKK;AAAAA,IAAAA;AAAAA,IAE7BuB,QAAQqG,SAASrG;AAAAA,EAAAA;AAErB;AAEA,SAASsI,4BAA4BvB,GAAkD;AACrF,SAAO;AAAA,IACL3K,SAASmM,2BAA2BxB,EAAE3K,OAAO;AAAA,IAC7CM,UAAU6L,2BAA2BxB,EAAErK,QAAQ;AAAA,IAC/C4F,UAAUiG,2BAA2BxB,EAAEzE,QAAQ;AAAA,IAC/C/F,SAASgM,2BAA2BxB,EAAExK,OAAO;AAAA,EAAA;AAEjD;AAEA,SAASgM,2BAA2BxB,GAAkD;AACpF,SAAO;AAAA,IACLtI,IAAIsI,EAAEtI;AAAAA,IACNc,KAAKwH,EAAEnL,MAAM6C;AAAAA,IACbE,QAAQoI,EAAEpI;AAAAA,IACVD,IAAIqI,EAAErI;AAAAA,IACNmB,aAAakH,EAAElH;AAAAA,EAAAA;AAEnB;AC3HO,MAAM2I,sBAAsB,CAAC,SAAS,MAAM,GAGtCC,0BAA0B,CAAC,YAAY,QAAQ,GAG/CC,yBAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAU,GAICC,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAU,GAICC,qBAAqB,CAAC,WAAW,WAAW,WAAW,YAAY,UAAU,GAG7EC,2BAA2B,CAAC,WAAW,SAAS,OAAO,GAGvDC,0BAA0B,CAAC,WAAW,SAAS,GAG/CC,2BAA2B,CAAC,WAAW,WAAW,YAAY,UAAU,GAGxEC,4BAA4BC,MAAAA;ACtClC,SAASC,sBAAsBC,KAA4C;AAChF,SAAOV,wBAAwBW,SAASD,GAA6B;AACvE;AAGO,SAASE,cAAcF,KAAiC;AAC7D,SAAOF,MAAAA,WAAWG,SAASD,GAAkB;AAC/C;AAGO,SAASG,eAAeH,KAAkC;AAC/D,SAAOI,MAAAA,YAAYH,SAASD,GAAmB;AACjD;AAGO,SAASK,kBAAkBL,KAA6C;AAC7E,SAAON,yBAAyBO,SAASD,GAA8B;AACzE;ACVO,MAAMM,0BAA0B,CACrC,QACA,MACA,MACA,UACA,aACA,YACA,aACA,WACA,WACA,WACA,iBACA,eACA,cACA,aAAa,GAOFC,yBAAyB,CACpC,GAAGD,yBACH,QACA,MACA,MACA,UACA,aACA,kBACA,gBACA,mBACA,gBAAgB,GAOLE,0BAA0B,CAAC,QAAQ,GA8BnCC,6BAA6B,CAAC,KAAK,GAAGZ,yBAAyB,GAM/Da,0BAA0B,CAAC,KAAK,GAAGnB,sBAAsB,GAMzDoB,2BAA2B,CAAC,KAAK,GAAGnB,uBAAuB,GAM3DoB,sBAAsB,CAAC,KAAK,GAAGnB,kBAAkB,GAMjDoB,2BAA2B,CAAC,KAAK,GAAGlB,uBAAuB,GAM3DmB,4BAA4B,CAAC,KAAK,GAAGlB,wBAAwB;ACpGnE,SAASmB,cAAcf,KAAuC;AACnE,QAAMgB,WAAWhB,IAAIiB,MAAM,GAAG,GACxBC,WAAWF,SAASG,WAAW;AAErC,MAAIC,sBAAsBF,QAAQ,GAAG;AACnC,UAAMtK,MAAMoK,SAASK,KAAK,GAAG;AAE7B,QAAIC,qBAAqB1K,GAAG;AAC1B,aAAO;AAAA,QACL2K,MAAM;AAAA,QACNvO,MAAMkO;AAAAA,QACNtK;AAAAA,MAAAA;AAIJ,QAAI4K,sBAAsB5K,GAAG;AAC3B,aAAO;AAAA,QACL2K,MAAM;AAAA,QACNvO,MAAMkO;AAAAA,QACNtK;AAAAA,MAAAA;AAAAA,EAGN;AAEA,MAAIsK,aAAa,UAAU;AACzB,UAAMO,WAAWT,SAASG,MAAAA,KAAW;AAErC,QAAIO,uBAAuBD,QAAQ,GAAG;AACpC,YAAME,WAAWX,SAASG,MAAAA,KAAW;AAErC,UAAId,kBAAkBsB,QAAQ,GAAG;AAC/B,cAAM/K,MAAMoK,SAASK,KAAK,GAAG;AAE7B,YAAIO,sBAAsBhL,GAAG;AAC3B,iBAAO;AAAA,YACL2K,MAAM;AAAA,YACNvO,MAAMyO;AAAAA,YACN7N,MAAM+N;AAAAA,YACN/K;AAAAA,UAAAA;AAIJ,YAAI4K,sBAAsB5K,GAAG;AAC3B,iBAAO;AAAA,YACL2K,MAAM;AAAA,YACNvO,MAAMyO;AAAAA,YACN7N,MAAM+N;AAAAA,YACN/K;AAAAA,UAAAA;AAAAA,MAGN;AAAA,IACF;AAAA,EACF;AAGF;AC9DA,SAASiL,uBAAuB7B,KAAkC;AAChE,SAAO,SAAS8B,KAAK9B,GAAG;AAC1B;AAGO,SAAS+B,gBAAgB/B,KAAyC;AACvE,QAAMgB,WAAWhB,IAAIiB,MAAM,GAAG;AAE9B,MAAIe,cAAchB,SAASG,MAAAA,KAAW;AAEtC,QAAM,CAACD,UAAUe,WAAW,IAAID,YAAYf,MAAM,GAAG;AAErD,MAAId,eAAee,QAAQ,GAAG;AAC5B,UAAMgB,OAAOhB,UACPO,WAAWT,SAASG,WAAW;AAErC,QAAIU,uBAAuBI,WAAW,GAAG;AACvC,YAAME,OAAMC,OAAOH,YAAYI,MAAM,GAAG,EAAE,CAAC,IAAI;AAE/C,aAAO;AAAA,QACLd,MAAM;AAAA,QACNW;AAAAA,QACAC,KAAAA;AAAAA,MAAAA;AAAAA,IAEJ;AAEA,QAAIG,oBAAoBb,QAAQ,GAAG;AACjC,YAAMc,UAAUH,OAAOX,QAAQ;AAE/B,aAAO;AAAA,QACLF,MAAM;AAAA,QACNW;AAAAA,QACAK;AAAAA,MAAAA;AAAAA,IAEJ;AAEA,WAAO;AAAA,MACLhB,MAAM;AAAA,MACNW;AAAAA,IAAAA;AAAAA,EAEJ;AAEA,MAAIM,aAAatB,QAAQ,GAAG;AAC1B,UAAMtK,MAAMsK,UACNO,WAAWT,SAASG,WAAW;AAErC,QAAIU,uBAAuBI,WAAW,GAAG;AACvC,YAAME,OAAMC,OAAOH,YAAYI,MAAM,GAAG,EAAE,CAAC,IAAI;AAE/C,aAAO;AAAA,QACLd,MAAM;AAAA,QACN3K;AAAAA,QACAuL,KAAAA;AAAAA,MAAAA;AAAAA,IAEJ;AAEA,QAAIG,oBAAoBb,QAAQ,GAAG;AACjC,YAAMc,UAAUH,OAAOX,QAAQ;AAE/B,aAAO;AAAA,QACLF,MAAM;AAAA,QACN3K;AAAAA,QACA2L;AAAAA,MAAAA;AAAAA,IAEJ;AAEA,WAAO;AAAA,MACLhB,MAAM;AAAA,MACN3K;AAAAA,IAAAA;AAAAA,EAEJ;AAEA,MAAIsJ,cAAcgB,QAAQ,GAAG;AAC3B,UAAMuB,MAAMvB;AAEZc,kBAAchB,SAASG,WAAW;AAElC,UAAM,CAACM,UAAUiB,WAAW,IAAIV,YAAYf,MAAM,GAAG;AAErD,QAAId,eAAesB,QAAQ,GAAG;AAC5B,YAAMS,OAAOT,UACPE,WAAWX,SAASG,WAAW;AAErC,UAAIU,uBAAuBa,WAAW,GAAG;AACvC,cAAMP,OAAMC,OAAOM,YAAYL,MAAM,GAAG,EAAE,CAAC,IAAI;AAE/C,eAAO;AAAA,UACLd,MAAM;AAAA,UACNkB;AAAAA,UACAP;AAAAA,UACAC,KAAAA;AAAAA,QAAAA;AAAAA,MAEJ;AAEA,UAAIG,oBAAoBX,QAAQ,GAAG;AACjC,cAAMY,UAAUH,OAAOT,QAAQ;AAE/B,eAAO;AAAA,UACLJ,MAAM;AAAA,UACNkB;AAAAA,UACAP;AAAAA,UACAK;AAAAA,QAAAA;AAAAA,MAEJ;AAEA,aAAO;AAAA,QACLhB,MAAM;AAAA,QACNkB;AAAAA,QACAP;AAAAA,MAAAA;AAAAA,IAEJ;AAEA,WAAO;AAAA,MACLX,MAAM;AAAA,MACNoB,OAAOF;AAAAA,IAAAA;AAAAA,EAEX;AAEA,MAAI1C,sBAAsBmB,QAAQ;AAGhC,WAAO;AAAA,MACLK,MAAM;AAAA,MACNoB,OAJYzB;AAAAA,IAAAA;AASlB;ACnHO,SAASE,sBAAsBpB,KAAyC;AAC7E,SAAOU,wBAAwBT,SAASD,GAA0B;AACpE;AAGO,SAASsB,qBAAqBtB,KAAwC;AAC3E,SAAOO,uBAAuBN,SAASD,GAAyB;AAClE;AAGO,SAAS4B,sBAAsB5B,KAAyC;AAC7E,SAAOM,wBAAwBL,SAASD,GAA0B;AACpE;AAGO,SAAS0B,uBAAuB1B,KAA0C;AAC/E,SAAOW,yBAAyBV,SAASD,GAA2B;AACtE;AAGO,SAASwB,sBAAsBxB,KAAyC;AAC7E,SAAOQ,wBAAwBP,SAASD,GAA0B;AACpE;AAGO,SAAS4C,kBAAkB5C,KAAsC;AACtE,SAAO+B,gBAAgB/B,GAAG,GAAGuB,SAAS,WAAWQ,gBAAgB/B,GAAG,GAAGuB,SAAS;AAClF;AAGO,SAASiB,aAAaxC,KAAuC;AAClE,SAAOA,QAAQ,WAAWA,QAAQ;AACpC;AAGO,SAASsC,oBAAoBtC,KAA6C;AAC/E,SAAOA,QAAQ,OAAO,cAAc8B,KAAK9B,GAAG,KAAKA,QAAQ;AAC3D;ACpDO,SAAS6C,uBAAuBC,MAAmC;AACxE,MAAIlM,MAAM;AAQV,SANIkM,KAAKlM,QAAQ,WAAWkM,KAAKlM,QAAQ,UACvCA,MAAMkM,KAAKlM,MAEXA,MAAM,GAAGkM,KAAKL,GAAG,IAAIK,KAAKZ,IAAI,IAG5BY,KAAKX,QAAQY,SACR,GAAGnM,GAAG,IAAIkM,KAAKX,MAAM,GAAG,OAG7BW,KAAKP,YAAYQ,WACnBnM,OAAO,IAAIkM,KAAKP,OAAO,KAGlB3L;AACT;AChBA,MAAMoM,4BAAkD,CAAC,OAAO,KAAK;AAE9D,SAASC,uBACdC,SACAP,QAA8BK,2BACtB;AACR,QAAM;AAAA,IAACP;AAAAA,IAAKU;AAAAA,EAAAA,IAAUD,SAChBJ,OAAOf,gBAAgBY,MAAMQ,WAAW,UAAU,IAAI,CAAC,CAAC;AAE9D,MAAI,CAACL,QAAQA,KAAKvB,SAAS;AACzB,UAAM,IAAI6B,MAAM,wBAAwBT,MAAM,CAAC,CAAC,EAAE;AAGpD,SAAOE,uBAAuB;AAAA,IAAC,GAAGC;AAAAA,IAAML,KAAKK,KAAKL,OAAOA;AAAAA,EAAAA,CAAI;AAC/D;AChBO,MAAMY,qBAAuC;AAAA,EAClD/Q,MAAM;AAAA,IACJ,KAAK;AAAA,MACH6K,QAAQ,CAAC,YAAY,QAAQ;AAAA,MAC7B7G,QAAQ;AAAA,QACNf,IAAI,CAAC,cAAc,YAAY;AAAA,MAAA;AAAA,MAEjCsE,QAAQ;AAAA,QACN,KAAK;AAAA,UACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,UAC7B7H,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,IAAI,CAAC,SAAS,OAAO;AAAA,QAAA;AAAA,MACvB;AAAA,MAEF8H,UAAU,CAAC,gBAAgB,WAAW;AAAA,MACtCC,OAAO;AAAA,QACL,KAAK;AAAA,UACHhI,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBc,MAAM,CAAC,OAAO,KAAK;AAAA,UACnB0H,KAAK,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEpB,UAAY;AAAA,UACVzI,IAAI,CAAC,WAAW,KAAK;AAAA,UACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnB,SAAW;AAAA,UACTD,IAAI,CAAC,WAAW,KAAK;AAAA,UACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,MACnB;AAAA,MAEFD,IAAI,CAAC,MAAM,KAAK;AAAA,MAChBE,QAAQ,CAAC,OAAO,KAAK;AAAA,MACrBgB,MAAM;AAAA,QACJlB,IAAI,CAAC,MAAM,KAAK;AAAA,QAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,MAAA;AAAA,MAEnBA,IAAI,CAAC,OAAO,KAAK;AAAA,MACjBE,WAAW,CAAC,YAAY,UAAU;AAAA,MAClCY,MAAM,CAAC,OAAO,KAAK;AAAA,MACnBoH,KAAK;AAAA,QACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,QACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,QACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,MAAA;AAAA,MAEvBe,MAAM;AAAA,QACJhB,IAAI,CAAC,YAAY,UAAU;AAAA,MAAA;AAAA,MAE7B9C,OAAO;AAAA,QACL6C,IAAI,CAAC,MAAM,KAAK;AAAA,QAChBC,IAAI,CAAC,WAAW,SAAS;AAAA,MAAA;AAAA,MAE3BI,QAAQ;AAAA,QACNC,SAAS,CAAC,WAAW,SAAS;AAAA,QAC9BC,OAAO,CAAC,gBAAgB,WAAW;AAAA,QACnCC,UAAU,CAAC,iBAAiB,YAAY;AAAA,QACxCC,SAAS,CAAC,iBAAiB,YAAY;AAAA,MAAA;AAAA,MAEzCC,UAAU;AAAA,QACRC,MAAM,CAAC,OAAO,KAAK;AAAA,QACnBC,IAAI,CAAC,WAAW,SAAS;AAAA,MAAA;AAAA,IAC3B;AAAA,IAEF,aAAe;AAAA,MACbZ,IAAI,CAAC,MAAM,OAAO;AAAA,IAAA;AAAA,IAEpB,SAAW;AAAA,MACTA,IAAI,CAAC,SAAS,KAAK;AAAA,MACnBC,IAAI,CAAC,OAAO,KAAK;AAAA,MACjB9C,OAAO;AAAA,QACL8C,IAAI,CAAC,OAAO,KAAK;AAAA,MAAA;AAAA,IACnB;AAAA,IAEF,SAAW;AAAA,MAAC+N,MAAM;AAAA,IAAA;AAAA,IAClB,SAAW;AAAA,MAACA,MAAM;AAAA,IAAA;AAAA,IAClB,UAAY;AAAA,MACVA,MAAM;AAAA,MACN3N,QAAQ;AAAA,QAACC,SAAS,CAAC,WAAW,SAAS;AAAA,MAAA;AAAA,IAAC;AAAA,IAE1C,SAAW;AAAA,MACT0N,MAAM;AAAA,MACN3N,QAAQ;AAAA,QAACC,SAAS,CAAC,WAAW,SAAS;AAAA,MAAA;AAAA,IAAC;AAAA,IAE1C,UAAY;AAAA,MAAC0N,MAAM;AAAA,IAAA;AAAA,EAAK;AAAA,EAE1BzP,QAAQ;AAAA,IACNnB,SAAS;AAAA,MACP,KAAK;AAAA,QACH,KAAK;AAAA,UACHyK,QAAQ,CAAC,UAAU,UAAU;AAAA,UAC7B7G,QAAQ;AAAA,YACNf,IAAI,CAAC,cAAc,YAAY;AAAA,UAAA;AAAA,UAEjCsE,QAAQ;AAAA,YACN,KAAK;AAAA,cACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,cAC7B7H,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBC,IAAI,CAAC,SAAS,OAAO;AAAA,YAAA;AAAA,UACvB;AAAA,UAEF+H,OAAO;AAAA,YACL,KAAK;AAAA,cACHhI,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBwI,KAAK,CAAC,OAAO,KAAK;AAAA,cAClB1H,MAAM,CAAC,OAAO,KAAK;AAAA,YAAA;AAAA,UACrB;AAAA,UAEFf,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBE,QAAQ,CAAC,SAAS,OAAO;AAAA,UACzBgB,MAAM;AAAA,YACJlB,IAAI,CAAC,WAAW,SAAS;AAAA,YACzBC,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBA,IAAI,CAAC,SAAS,OAAO;AAAA,UACrBc,MAAM,CAAC,WAAW,SAAS;AAAA,UAC3BoH,KAAK;AAAA,YACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,YACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEvBe,MAAM;AAAA,YACJhB,IAAI,CAAC,YAAY,UAAU;AAAA,UAAA;AAAA,UAE7B9C,OAAO;AAAA,YACL6C,IAAI,CAAC,OAAO,IAAI;AAAA,YAChBC,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,UAE3BS,UAAU;AAAA,YACRC,MAAM,CAAC,OAAO,KAAK;AAAA,YACnBC,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,QAC3B;AAAA,QAEF,SAAW;AAAA,UACTZ,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBE,QAAQ,CAAC,SAAS,OAAO;AAAA,QAAA;AAAA,QAE3B,SAAW;AAAA,UACTF,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnB,UAAY;AAAA,UACVA,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnB,UAAY;AAAA,UACVgO,MAAM;AAAA,UACNhN,QAAQ;AAAA,YACNf,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,UAE3BsE,QAAQ;AAAA,YACN,KAAK;AAAA,cACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,cAC7B7H,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3BC,IAAI,CAAC,SAAS,OAAO;AAAA,YAAA;AAAA,UACvB;AAAA,UAEF+H,OAAO;AAAA,YACL,KAAK;AAAA,cACHhI,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3BC,IAAI,CAAC,SAAS,OAAO;AAAA,cACrBwI,KAAK,CAAC,SAAS,OAAO;AAAA,cACtB1H,MAAM,CAAC,SAAS,OAAO;AAAA,YAAA;AAAA,UACzB;AAAA,UAEFf,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBkB,MAAM;AAAA,YACJlB,IAAI,CAAC,OAAO,IAAI;AAAA,YAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB9C,OAAO;AAAA,YACL6C,IAAI,CAAC,OAAO,IAAI;AAAA,YAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBkI,KAAK;AAAA,YACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,YACrBC,IAAI,CAAC,SAAS,OAAO;AAAA,YACrBC,QAAQ,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEvBe,MAAM;AAAA,YACJhB,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,QAC3B;AAAA,MACF;AAAA,MAEF,SAAW;AAAA,QACT,KAAK;AAAA,UACHsE,QAAQ;AAAA,YACN,KAAK;AAAA,cACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,cAC7B7H,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBC,IAAI,CAAC,SAAS,OAAO;AAAA,YAAA;AAAA,UACvB;AAAA,UAEFD,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB7C,OAAO;AAAA,YACL6C,IAAI,CAAC,OAAO,IAAI;AAAA,YAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,QACnB;AAAA,QAEF,SAAW;AAAA,UACTD,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnB,SAAW;AAAA,UACTA,IAAI,CAAC,SAAS,OAAO;AAAA,QAAA;AAAA,QAEvB,UAAY;AAAA,UACVA,IAAI,CAAC,SAAS,OAAO;AAAA,QAAA;AAAA,MACvB;AAAA,IACF;AAAA,IAEFvB,OAAO;AAAA,MACL,KAAK;AAAA,QACH,KAAK;AAAA,UACHoJ,QAAQ,CAAC,YAAY,QAAQ;AAAA,UAC7B7G,QAAQ;AAAA,YACNf,IAAI,CAAC,kBAAkB,gBAAgB;AAAA,UAAA;AAAA,UAEzCsE,QAAQ;AAAA,YACN,KAAK;AAAA,cACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,cAC7B7H,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBC,IAAI,CAAC,SAAS,OAAO;AAAA,YAAA;AAAA,UACvB;AAAA,UAEF+H,OAAO;AAAA,YACL,KAAK;AAAA,cACHhI,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBwI,KAAK,CAAC,OAAO,KAAK;AAAA,cAClB1H,MAAM,CAAC,OAAO,KAAK;AAAA,YAAA;AAAA,UACrB;AAAA,UAEFf,IAAI,CAAC,MAAM,KAAK;AAAA,UAChBE,QAAQ,CAAC,OAAO,KAAK;AAAA,UACrBgB,MAAM;AAAA,YACJlB,IAAI,CAAC,WAAW,SAAS;AAAA,YACzBC,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,UAE3BA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBc,MAAM,CAAC,WAAW,SAAS;AAAA,UAC3BoH,KAAK;AAAA,YACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,YACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEvBe,MAAM;AAAA,YACJhB,IAAI,CAAC,gBAAgB,cAAc;AAAA,UAAA;AAAA,UAErC9C,OAAO;AAAA,YACL6C,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,UAE3BS,UAAU;AAAA,YACRC,MAAM,CAAC,OAAO,KAAK;AAAA,YACnBC,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,QAC3B;AAAA,QAEF,SAAW;AAAA,UACTZ,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnB,SAAW;AAAA,UACTD,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnB,UAAY;AAAA,UACVD,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnB,UAAY;AAAA,UACV+N,MAAM;AAAA,UACNhN,QAAQ;AAAA,YACNf,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBsE,QAAQ;AAAA,YACN,KAAK;AAAA,cACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,cAC7B7H,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3BC,IAAI,CAAC,SAAS,OAAO;AAAA,YAAA;AAAA,UACvB;AAAA,UAEF+H,OAAO;AAAA,YACL,KAAK;AAAA,cACHgG,MAAM;AAAA,cACNhO,IAAI,CAAC,MAAM,KAAK;AAAA,cAChBC,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3BwI,KAAK,CAAC,YAAY,UAAU;AAAA,cAC5B1H,MAAM,CAAC,YAAY,UAAU;AAAA,YAAA;AAAA,UAC/B;AAAA,UAEFb,QAAQ,CAAC,OAAO,KAAK;AAAA,UACrBgB,MAAM;AAAA,YACJlB,IAAI,CAAC,MAAM,KAAK;AAAA,YAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBc,MAAM,CAAC,OAAO,KAAK;AAAA,UACnB5D,OAAO;AAAA,YACL8C,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBkI,KAAK;AAAA,YACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,YACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEvBe,MAAM;AAAA,YACJhB,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,QACnB;AAAA,MACF;AAAA,MAEF,UAAY;AAAA,QACV,KAAK;AAAA,UACHC,QAAQ,CAAC,WAAW,KAAK;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,SAAW;AAAA,QACT,KAAK;AAAA,UACHA,QAAQ,CAAC,WAAW,KAAK;AAAA,QAAA;AAAA,MAC3B;AAAA,IACF;AAAA,IAEFxB,OAAO;AAAA,MACL,KAAK;AAAA,QACH,KAAK;AAAA,UACHmJ,QAAQ,CAAC,YAAY,QAAQ;AAAA,UAC7B7G,QAAQ;AAAA,YACNf,IAAI,CAAC,kBAAkB,gBAAgB;AAAA,UAAA;AAAA,UAEzCsE,QAAQ;AAAA,YACN,KAAK;AAAA,cACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,cAC7B7H,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBC,IAAI,CAAC,SAAS,OAAO;AAAA,YAAA;AAAA,UACvB;AAAA,UAEF+H,OAAO;AAAA,YACL,KAAK;AAAA,cACHhI,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,cACjBwI,KAAK,CAAC,OAAO,KAAK;AAAA,cAClB1H,MAAM,CAAC,OAAO,KAAK;AAAA,YAAA;AAAA,UACrB;AAAA,UAEFf,IAAI,CAAC,SAAS,OAAO;AAAA,UACrBE,QAAQ,CAAC,WAAW,SAAS;AAAA,UAC7BgB,MAAM;AAAA,YACJlB,IAAI,CAAC,MAAM,KAAK;AAAA,YAChBC,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,UAE3BA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBc,MAAM,CAAC,WAAW,SAAS;AAAA,UAC3BoH,KAAK;AAAA,YACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,YACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEvBe,MAAM;AAAA,YACJhB,IAAI,CAAC,gBAAgB,cAAc;AAAA,UAAA;AAAA,UAErC9C,OAAO;AAAA,YACL6C,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,UAE3BS,UAAU;AAAA,YACRC,MAAM,CAAC,OAAO,KAAK;AAAA,YACnBC,IAAI,CAAC,WAAW,SAAS;AAAA,UAAA;AAAA,QAC3B;AAAA,QAEF,SAAW;AAAA,UACTZ,IAAI,CAAC,MAAM,KAAK;AAAA,UAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBc,MAAM,CAAC,WAAW,SAAS;AAAA,QAAA;AAAA,QAE7B,SAAW;AAAA,UACTf,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBc,MAAM,CAAC,WAAW,SAAS;AAAA,QAAA;AAAA,QAE7B,UAAY;AAAA,UACVf,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBc,MAAM,CAAC,WAAW,SAAS;AAAA,QAAA;AAAA,QAE7B,UAAY;AAAA,UACViN,MAAM;AAAA,UACNhN,QAAQ;AAAA,YACNf,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBsE,QAAQ;AAAA,YACN,KAAK;AAAA,cACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,cAC7B7H,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3BC,IAAI,CAAC,SAAS,OAAO;AAAA,YAAA;AAAA,UACvB;AAAA,UAEF+H,OAAO;AAAA,YACL,KAAK;AAAA,cACHgG,MAAM;AAAA,cACNhO,IAAI,CAAC,MAAM,KAAK;AAAA,cAChBC,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3BwI,KAAK,CAAC,YAAY,UAAU;AAAA,cAC5B1H,MAAM,CAAC,YAAY,UAAU;AAAA,YAAA;AAAA,UAC/B;AAAA,UAEFG,MAAM;AAAA,YACJlB,IAAI,CAAC,MAAM,KAAK;AAAA,YAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBc,MAAM,CAAC,OAAO,KAAK;AAAA,UACnB5D,OAAO;AAAA,YACL8C,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEnBkI,KAAK;AAAA,YACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,YACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,UAEvBe,MAAM;AAAA,YACJhB,IAAI,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEFkB,OAAO;AAAA,IACL,KAAK;AAAA,MACH,KAAK;AAAA,QACH0G,QAAQ,CAAC,YAAY,QAAQ;AAAA,QAC7B7H,IAAI,CAAC,SAAS,OAAO;AAAA,QACrBE,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrBD,IAAI,CAAC,SAAS,KAAK;AAAA,QACnB9C,OAAO;AAAA,UACL6C,IAAI,CAAC,MAAM,KAAK;AAAA,QAAA;AAAA,QAElBoB,aAAa,CAAC,OAAO,KAAK;AAAA,MAAA;AAAA,MAE5B,SAAW;AAAA,QACTlB,QAAQ,CAAC,OAAO,KAAK;AAAA,MAAA;AAAA,MAEvB,UAAY;AAAA,QACVF,IAAI,CAAC,MAAM,KAAK;AAAA,QAChBE,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrBD,IAAI,CAAC,OAAO,KAAK;AAAA,MAAA;AAAA,MAEnB,UAAY;AAAA,QACVD,IAAI,CAAC,MAAM,KAAK;AAAA,QAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,QACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrBkB,aAAa,CAAC,OAAO,SAAS;AAAA,MAAA;AAAA,IAChC;AAAA,IAEF,SAAW;AAAA,MACT,KAAK;AAAA,QACH4M,MAAM;AAAA,QACNhO,IAAI,CAAC,OAAO,KAAK;AAAA,MAAA;AAAA,IACnB;AAAA,EACF;AAAA,EAEFpC,YAAY;AAAA,IACV,KAAK;AAAA,MACH,KAAK;AAAA,QACHiK,QAAQ,CAAC,YAAY,QAAQ;AAAA,QAC7B7G,QAAQ;AAAA,UACNf,IAAI,CAAC,kBAAkB,gBAAgB;AAAA,QAAA;AAAA,QAEzCsE,QAAQ;AAAA,UACN,KAAK;AAAA,YACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,YAC7B7H,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,IAAI,CAAC,SAAS,OAAO;AAAA,UAAA;AAAA,QACvB;AAAA,QAEF+H,OAAO;AAAA,UACL,KAAK;AAAA,YACHhI,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBwI,KAAK,CAAC,OAAO,KAAK;AAAA,YAClB1H,MAAM,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,QACrB;AAAA,QAEFf,IAAI,CAAC,SAAS,OAAO;AAAA,QACrBE,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrBgB,MAAM;AAAA,UACJlB,IAAI,CAAC,MAAM,KAAK;AAAA,UAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnBA,IAAI,CAAC,OAAO,KAAK;AAAA,QACjBc,MAAM,CAAC,WAAW,SAAS;AAAA,QAC3BoH,KAAK;AAAA,UACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,UACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEvBe,MAAM;AAAA,UACJhB,IAAI,CAAC,gBAAgB,cAAc;AAAA,QAAA;AAAA,QAErC9C,OAAO;AAAA,UACL6C,IAAI,CAAC,MAAM,KAAK;AAAA,UAChBC,IAAI,CAAC,WAAW,SAAS;AAAA,QAAA;AAAA,QAE3BS,UAAU;AAAA,UACRC,MAAM,CAAC,OAAO,KAAK;AAAA,UACnBC,IAAI,CAAC,WAAW,SAAS;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,SAAW;AAAA,QACTZ,IAAI,CAAC,MAAM,KAAK;AAAA,MAAA;AAAA,MAElB,SAAW;AAAA,QACTA,IAAI,CAAC,OAAO,KAAK;AAAA,MAAA;AAAA,MAEnB,UAAY;AAAA,QACV6H,QAAQ,CAAC,UAAU,UAAU;AAAA,QAC7B7G,QAAQ;AAAA,UACNf,IAAI,CAAC,cAAc,YAAY;AAAA,QAAA;AAAA,QAEjCsE,QAAQ;AAAA,UACN,KAAK;AAAA,YACHsD,QAAQ,CAAC,YAAY,QAAQ;AAAA,YAC7B7H,IAAI,CAAC,SAAS,OAAO;AAAA,YACrBC,IAAI,CAAC,SAAS,OAAO;AAAA,UAAA;AAAA,QACvB;AAAA,QAEF+H,OAAO;AAAA,UACL,KAAK;AAAA,YACHhI,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBC,IAAI,CAAC,OAAO,KAAK;AAAA,YACjBwI,KAAK,CAAC,OAAO,KAAK;AAAA,YAClB1H,MAAM,CAAC,OAAO,KAAK;AAAA,UAAA;AAAA,QACrB;AAAA,QAEFf,IAAI,CAAC,OAAO,KAAK;AAAA,QACjBE,QAAQ,CAAC,WAAW,SAAS;AAAA,QAC7BgB,MAAM;AAAA,UACJlB,IAAI,CAAC,WAAW,SAAS;AAAA,UACzBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnBA,IAAI,CAAC,SAAS,OAAO;AAAA,QACrBc,MAAM,CAAC,WAAW,SAAS;AAAA,QAC3BoH,KAAK;AAAA,UACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,UACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEvBe,MAAM;AAAA,UACJhB,IAAI,CAAC,YAAY,UAAU;AAAA,QAAA;AAAA,QAE7B9C,OAAO;AAAA,UACL6C,IAAI,CAAC,WAAW,SAAS;AAAA,UACzBC,IAAI,CAAC,WAAW,SAAS;AAAA,QAAA;AAAA,QAE3BS,UAAU;AAAA,UACRC,MAAM,CAAC,OAAO,KAAK;AAAA,UACnBC,IAAI,CAAC,WAAW,SAAS;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,UAAY;AAAA,QACVoN,MAAM;AAAA,QACNhN,QAAQ;AAAA,UACNf,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnBsE,QAAQ;AAAA,UACN,KAAK;AAAA,YACHsD,QAAQ,CAAC,UAAU,UAAU;AAAA,YAC7B7H,IAAI,CAAC,YAAY,UAAU;AAAA,YAC3BC,IAAI,CAAC,SAAS,OAAO;AAAA,UAAA;AAAA,QACvB;AAAA,QAEF+H,OAAO;AAAA,UACL,KAAK;AAAA,YACHgG,MAAM;AAAA,YACNhO,IAAI,CAAC,MAAM,KAAK;AAAA,YAChBC,IAAI,CAAC,YAAY,UAAU;AAAA,YAC3BwI,KAAK,CAAC,YAAY,UAAU;AAAA,YAC5B1H,MAAM,CAAC,YAAY,UAAU;AAAA,UAAA;AAAA,QAC/B;AAAA,QAEFb,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrBgB,MAAM;AAAA,UACJlB,IAAI,CAAC,MAAM,KAAK;AAAA,UAChBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnBA,IAAI,CAAC,OAAO,KAAK;AAAA,QACjBc,MAAM,CAAC,OAAO,KAAK;AAAA,QACnBoH,KAAK;AAAA,UACHnI,IAAI,CAAC,SAAS,OAAO;AAAA,UACrBC,IAAI,CAAC,OAAO,KAAK;AAAA,UACjBC,QAAQ,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEvBe,MAAM;AAAA,UACJhB,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,QAEnB9C,OAAO;AAAA,UACL6C,IAAI,CAAC,UAAU,SAAS;AAAA,UACxBC,IAAI,CAAC,OAAO,KAAK;AAAA,QAAA;AAAA,MACnB;AAAA,IACF;AAAA,IAEF,SAAW;AAAA,MACTjC,UAAU;AAAA,QACRgQ,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,UAAY;AAAA,MACV/P,UAAU;AAAA,QACR+B,IAAI,CAAC,UAAU,SAAS;AAAA,MAAA;AAAA,IAC1B;AAAA,EACF;AAAA,EAEFuB,QAAQ;AAAA,IACNC,QAAQ,CAAC,cAAc,YAAY;AAAA,IACnCC,UAAU,CAAC,aAAa,WAAW;AAAA,IACnCC,WAAW,CAAC,cAAc,YAAY;AAAA,IACtCC,WAAW,CAAC,cAAc,YAAY;AAAA,IACtCC,SAAS,CAAC,cAAc,YAAY;AAAA,IACpCC,SAAS,CAAC,cAAc,YAAY;AAAA,IACpCC,OAAO,CAAC,cAAc,YAAY;AAAA,IAClCC,MAAM,CAAC,cAAc,YAAY;AAAA,IACjCC,OAAO,CAAC,cAAc,YAAY;AAAA,IAClCC,WAAW,CAAC,YAAY,UAAU;AAAA,IAClCC,SAAS,CAAC,YAAY,UAAU;AAAA,IAChCC,UAAU,CAAC,cAAc,YAAY;AAAA,IACrCC,SAAS,CAAC,WAAW,SAAS;AAAA,IAC9BE,QAAQ,CAAC,WAAW,SAAS;AAAA,IAC7BC,UAAU,CAAC,aAAa,WAAW;AAAA,IACnCC,SAAS,CAAC,YAAY,UAAU;AAAA,IAChCC,IAAI,CAAC,cAAc,YAAY;AAAA,IAC/BC,WAAW,CAAC,cAAc,YAAY;AAAA,IACtCC,UAAU,CAAC,cAAc,YAAY;AAAA,IACrCC,SAAS,CAAC,eAAe,aAAa;AAAA,IACtCC,QAAQ,CAAC,cAAc,YAAY;AAAA,IACnCC,UAAU,CAAC,eAAe,aAAa;AAAA,IACvCE,UAAU,CAAC,YAAY,UAAU;AAAA,IACjCC,aAAa,CAAC,cAAc,YAAY;AAAA,IACxCC,eAAe,CAAC,cAAc,YAAY;AAAA,IAC1CC,aAAa,CAAC,YAAY,UAAU;AAAA,IACpCC,OAAO,CAAC,YAAY,UAAU;AAAA,IAC9BC,UAAU,CAAC,WAAW,SAAS;AAAA,IAC/BC,QAAQ,CAAC,cAAc,YAAY;AAAA,IACnCC,QAAQ,CAAC,cAAc,YAAY;AAAA,IACnCC,KAAK,CAAC,WAAW,SAAS;AAAA,IAC1BC,MAAM,CAAC,cAAc,YAAY;AAAA,IACjCC,KAAK,CAAC,WAAW,SAAS;AAAA,IAC1BC,UAAU,CAAC,WAAW,SAAS;AAAA,EAAA;AAEnC;ACvoBO,SAASsK,SAASZ,OAAkD;AACzE,SAAOa,CAAAA,EAAQb,SAAS,OAAOA,SAAU,YAAY,CAACc,MAAMC,QAAQf,KAAK;AAC3E;ACAO,SAASgB,SAAwCC,SAA+B;AACrF,QAAMC,WAAWD,QAAQE,OAAON,OAAO;AAEvC,SAAIK,SAASE,WAAW,IACf,CAAA,IAGFF,SAASG,OAAOC,QAAQ,EAAO;AACxC;AAEA,SAASA,OAAsCC,KAAQC,QAAc;AACnE,aAAWvN,OAAOwN,OAAOC,KAAKF,MAAM,GAAG;AACrC,UAAMG,YAAYJ,IAAItN,GAAG,GACnB2N,YAAYJ,OAAOvN,GAAG;AAExB2M,aAASe,SAAS,KAAKf,SAASgB,SAAS,IACzCL,IAAYtN,GAAG,IAAI+M,MAAMW,WAAWC,SAAS,IAE7CL,IAAYtN,GAAG,IAAI2N;AAAAA,EAEzB;AAEA,SAAOL;AACT;ACUO,SAASM,mBAAmBC,aAAkD;AACnF,QAAMC,SAASf,MAAMN,oBAAoBoB,WAAW;AAEpD,SAAO;AAAA,IACLnS,MAAMqS,uBAAuBD,MAAM;AAAA,IACnC7Q,QAAQ+Q,yBAAyBF,MAAM;AAAA,IACvCjO,OAAOoO,wBAAwBH,MAAM;AAAA,IACrCxR,YAAY4R,6BAA6BJ,MAAM;AAAA,IAC/C7N,QAAQ6N,OAAO7N;AAAAA,EAAAA;AAEnB;AAEA,SAAS8N,uBAAuBI,cAAgC;AAC9D,QAAML,SAAqE,CAAA;AAG3E,aAAW1R,QAAQuM;AACjBmF,WAAO1R,IAAI,IAAIgS,sBAAsBD,cAAc/R,IAAI;AAGzD,SAAO0R;AACT;AAEA,SAASM,sBACPP,aACAzR,MACsB;AACtB,QAAMiS,OAAOtB,MAAMc,aAAanS,OAAO,GAAG,GAAGmS,aAAanS,OAAOU,IAAI,CAAC,GAEhEyP,MAAMwC,KAAK3B,QAAQmB,aAAanS,OAAOU,IAAI,GAAGsQ,QAAQ;AAE5D,SAAO;AAAA,IACL,GAAG2B;AAAAA,IACH3B,MAAMb;AAAAA,IACN5I,QAAQiG,MAAAA,WAAWkE,OAAO,CAACE,KAAKzB,UACvB;AAAA,MACL,GAAGyB;AAAAA,MACH,CAACzB,IAAG,GAAGkB,MAAM;AAAA,QAACL,MAAMb;AAAAA,MAAAA,GAAMwC,KAAKpL,SAAS,GAAG,GAAGoL,KAAKpL,SAAS4I,IAAG,CAAC;AAAA,IAAA,IAEjE,CAAA,CAA4B;AAAA,IAC/BnF,OAAOkC,wBAAwBwE,OAAO,CAACE,KAAKlR,WACnC;AAAA,MACL,GAAGkR;AAAAA,MACH,CAAClR,KAAI,GAAG;AAAA,QACNsQ,MAAMmB,aAAanS,OAAOU,KAAI,GAAGsQ,QAAQb;AAAAA,QACzC,GAAGwC,KAAK3H,QAAQ,GAAG;AAAA,QACnB,GAAG2H,KAAK3H,QAAQtK,KAAI;AAAA,MAAA;AAAA,IACtB,IAED,CAAA,CAA2B;AAAA,EAAA;AAElC;AAEA,SAAS4R,yBACPH,aACkE;AAClE,QAAMC,SAA2E,CAAA;AAEjF,aAAW9Q,QAAQ8L;AACjBgF,WAAO9Q,IAAI,IAAIsR,6BAA6BT,aAAa7Q,IAAI;AAG/D,SAAO8Q;AACT;AAEA,SAASQ,6BACPT,aACA7Q,MACwB;AACxB,QAAM8Q,SAAiC,CAAA;AAEvC,aAAW1R,QAAQwM;AACjBkF,WAAO1R,IAAI,IAAImS,6BAA6BV,aAAa7Q,MAAMZ,IAAI;AAGrE,SAAO0R;AACT;AAEA,SAASS,6BACPV,aACA7Q,MACAZ,MACwB;AACxB,QAAM0R,SAAiC,CAAA;AAEvC,aAAWvR,SAASsM;AAClBiF,WAAOvR,KAAK,IAAIiS,8BAA8BX,aAAazR,MAAMY,MAAMT,KAAK;AAG9E,SAAOuR;AACT;AAEA,SAASU,8BACPX,aACAzR,MACAY,MACAT,OACuB;AACvB,QAAM8R,OAAOtB,MACXc,aAAa5Q,SAASD,IAAI,IAAI,GAAG,IAAI,GAAG,GACxC6Q,aAAa5Q,SAASD,IAAI,IAAIZ,IAAI,IAAI,GAAG,GACzCyR,aAAa5Q,SAASD,IAAI,IAAI,GAAG,IAAIT,KAAK,GAC1CsR,aAAa5Q,SAASD,IAAI,IAAIZ,IAAI,IAAIG,KAAK,CAC7C,GAEMsP,MAAMwC,KAAK3B,QAAQmB,aAAanS,OAAOU,IAAI,GAAGsQ;AAEpD,SAAO;AAAA,IACL,GAAG2B;AAAAA,IACH3B,MAAMb;AAAAA,IACN5I,QAAQiG,MAAAA,WAAWkE,OAAO,CAACE,KAAKzB,UACvB;AAAA,MACL,GAAGyB;AAAAA,MACH,CAACzB,IAAG,GAAGkB,MAAM;AAAA,QAACL,MAAMb;AAAAA,MAAAA,GAAMwC,KAAKpL,SAAS,GAAG,GAAGoL,KAAKpL,SAAS4I,IAAG,CAAC;AAAA,IAAA,IAEjE,CAAA,CAA4B;AAAA,IAC/BnF,OAAOkC,wBAAwBwE,OAAO,CAACE,KAAKlR,WACnC;AAAA,MACL,GAAGkR;AAAAA,MACH,CAAClR,KAAI,GAAG;AAAA,QACNsQ,MAAMmB,aAAanS,OAAOU,KAAI,GAAGsQ,QAAQb;AAAAA,QACzC,GAAGwC,KAAK3H,QAAQ,GAAG;AAAA,QACnB,GAAG2H,KAAK3H,QAAQtK,KAAI;AAAA,MAAA;AAAA,IACtB,IAED,CAAA,CAA2B;AAAA,EAAA;AAElC;AAEA,SAAS6R,wBACPJ,aAC8D;AAC9D,QAAMC,SAAuE,CAAA;AAE7E,aAAW9Q,QAAQ+L;AACjB+E,WAAO9Q,IAAI,IAAIyR,4BAA4BZ,aAAa7Q,IAAI;AAG9D,SAAO8Q;AACT;AAEA,SAASW,4BACPZ,aACA7Q,MACuB;AACvB,QAAMoK,SAAgC,CAAA;AAEtC,aAAW7K,SAASyM;AAClB5B,WAAO7K,KAAK,IAAImS,6BAA6Bb,aAAa7Q,MAAMT,KAAK;AAGvE,SAAO6K;AACT;AAEA,SAASsH,6BACPb,aACA7Q,MACAT,OAC4B;AAC5B,QAAM8R,OAAOtB,MACXc,aAAahO,QAAQ,GAAG,IAAI,GAAG,GAC/BgO,aAAahO,QAAQ7C,IAAI,IAAI,GAAG,GAChC6Q,aAAahO,QAAQ,GAAG,IAAItD,KAAK,GACjCsR,aAAahO,QAAQ7C,IAAI,IAAIT,KAAK,CACpC,GAEMsP,MAAMwC,KAAK3B,QAAQmB,aAAahO,QAAQ7C,IAAI,GAAG0P;AAErD,SAAO;AAAA,IAAC,GAAG2B;AAAAA,IAAM3B,MAAMb;AAAAA,EAAAA;AACzB;AAEA,SAASqC,6BACPL,aACsF;AACtF,QAAMC,SAAiC,CAAA;AAEvC,aAAW1R,QAAQwM;AACjBkF,WAAO1R,IAAI,IAAIuS,iCAAiCd,aAAazR,IAAI;AAGnE,SAAO0R;AACT;AAEA,SAASa,iCACPd,aACAzR,MAC+C;AAC/C,QAAMgL,SAAwD;AAAA,IAC5DsF,MAAMmB,aAAavR,aAAaF,IAAI,GAAGsQ,QAAQmB,aAAanS,OAAOU,IAAI,GAAGsQ;AAAAA,EAAAA;AAG5E,aAAWnQ,SAASsM;AAClBzB,WAAO7K,KAAK,IAAIqS,kCAAkCf,aAAazR,MAAMG,KAAK;AAG5E,SAAO6K;AACT;AAEA,SAASwH,kCACPf,aACAzR,MACAG,OACA;AACA,QAAM8R,OAAOtB,MACXc,aAAavR,aAAa,GAAG,IAAI,GAAG,GACpCuR,aAAavR,aAAaF,IAAI,IAAI,GAAG,GACrCyR,aAAavR,aAAa,GAAG,IAAIC,KAAK,GACtCsR,aAAavR,aAAaF,IAAI,IAAIG,KAAK,CACzC,GAEMsP,MAAMwC,KAAK3B,QAAQmB,aAAanS,OAAOU,IAAI,GAAGsQ;AAEpD,SAAO;AAAA,IACL,GAAG2B;AAAAA,IACH3B,MAAMb;AAAAA,IACN5I,QAAQiG,MAAAA,WAAWkE,OAAO,CAACE,KAAKzB,UACvB;AAAA,MACL,GAAGyB;AAAAA,MACH,CAACzB,IAAG,GAAGkB,MAAM;AAAA,QAACL,MAAMb;AAAAA,MAAAA,GAAMwC,KAAKpL,SAAS,GAAG,GAAGoL,KAAKpL,SAAS4I,IAAG,CAAC;AAAA,IAAA,IAEjE,CAAA,CAA4B;AAAA,IAC/BnF,OAAOkC,wBAAwBwE,OAAO,CAACE,KAAKlR,WACnC;AAAA,MACL,GAAGkR;AAAAA,MACH,CAAClR,KAAI,GAAG;AAAA,QACNsQ,MAAMmB,aAAanS,OAAOU,KAAI,GAAGsQ,QAAQb;AAAAA,QACzC,GAAGwC,KAAK3H,QAAQ,GAAG;AAAA,QACnB,GAAG2H,KAAK3H,QAAQtK,KAAI;AAAA,MAAA;AAAA,IACtB,IAED,CAAA,CAA2B;AAAA,EAAA;AAElC;AC5OO,SAASyS,gBAAgBC,QAA4C;AAC1E,QAAMC,iBAA8B;AAAA,IAElCxP,OAAOqO,mBAAmBkB,QAAQvP,KAAK;AAAA,EAAA;AAGzC,SAAO;AAAA,IACL3B,OAAOoR,iBAAiB;AAAA,MAACzC,QAAQ;AAAA,IAAA,GAAUwC,cAAc;AAAA,IACzDpT,MAAMqT,iBAAiB;AAAA,MAACzC,QAAQ;AAAA,IAAA,GAASwC,cAAc;AAAA,EAAA;AAE3D;AAEA,SAASC,iBACPC,SACAH,QACqB;AACrB,QAAM;AAAA,IAACvC;AAAAA,EAAAA,IAAU0C,SAEXC,cAAc,CAAA;AAEpB,aAAW9S,QAAQuM;AACjBuG,gBAAY9S,IAAI,IAAI+S,oBAAoB;AAAA,MAAC5C;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAGhE,SAAOI;AACT;AAEA,SAASC,oBACPF,SACAH,QACmB;AACnB,QAAM;AAAA,IAACvC;AAAAA,IAAQnQ;AAAAA,EAAAA,IAAQ6S,SACjBnB,SAASgB,QAAQvP,OAAO7D,OAAOU,IAAI,GAEnCkQ,UAA6B;AAAA,IAACT,KADxBiC,QAAQpB,QAAQ;AAAA,IACaH;AAAAA,EAAAA;AAGzC,SAAO;AAAA,IACLhG,SAHgBuH,QAAQvH,UAAU,CAAC,YAAY,QAAQ,GAGrCgG,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C/F,OAAO+F,WAAW;AAAA,IAClB7M,QAAQ;AAAA,MACNf,IAAIyQ,uBAAO9C,SAASwB,QAAQpO,QAAQf,EAAE;AAAA,IAAA;AAAA,IAExCsE,QAAQoM,sBAAsB;AAAA,MAAC9C;AAAAA,IAAAA,GAASuB,MAAM;AAAA,IAC9CrH,UAAU2I,uBAAO9C,SAASwB,QAAQrH,QAAQ;AAAA,IAC1CC,OAAO4I,qBAAqBxB,QAAQpH,OAAO;AAAA,MAAC6F;AAAAA,IAAAA,GAASuC,MAAM;AAAA,IAC3DpQ,IAAI0Q,uBAAO9C,SAASwB,QAAQpP,EAAE;AAAA,IAC9BE,QAAQwQ,uBAAO9C,SAASwB,QAAQlP,MAAM;AAAA,IACtC3B,QAAQsS,sBAAsB;AAAA,MAAChD;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,IACpDlP,MAAM;AAAA,MACJlB,IAAI0Q,uBAAO9C,SAASwB,QAAQlO,MAAMlB,EAAE;AAAA,MACpCC,IAAIyQ,uBAAO9C,SAASwB,QAAQlO,MAAMjB,EAAE;AAAA,IAAA;AAAA,IAEtCA,IAAIyQ,uBAAO9C,SAASwB,QAAQnP,EAAE;AAAA,IAC9BE,WAAWuQ,uBAAO9C,SAASwB,QAAQjP,SAAS;AAAA,IAC5CY,MAAM2P,uBAAO9C,SAASwB,QAAQrO,IAAI;AAAA,IAClCI,OAAO2P,qBAAqB;AAAA,MAACjD;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,IAClDjI,KAAK;AAAA,MACHnI,IAAI0Q,uBAAO9C,SAASwB,QAAQjH,KAAKnI,EAAE;AAAA,MACnCC,IAAIyQ,uBAAO9C,SAASwB,QAAQjH,KAAKlI,EAAE;AAAA,MACnCC,QAAQwQ,uBAAO9C,SAASwB,QAAQjH,KAAKjI,MAAM;AAAA,IAAA;AAAA,IAE7Ce,MAAM;AAAA,MACJhB,IAAIyQ,uBAAO9C,SAASwB,QAAQnO,MAAMhB,EAAE;AAAA,IAAA;AAAA,IAEtC9C,OAAO;AAAA,MACL6C,IAAI0Q,uBAAO9C,SAASwB,QAAQjS,OAAO6C,EAAE;AAAA,MACrCC,IAAIyQ,uBAAO9C,SAASwB,QAAQjS,OAAO8C,EAAE;AAAA,IAAA;AAAA,IAEvCrC,YAAYmT,0BAA0B;AAAA,MAAClD;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,IAC5D/P,QAAQ2Q,sBAAsB;AAAA,MAACnD;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,IACpD1P,UAAU;AAAA,MACRC,MAAM+P,uBAAO9C,SAASwB,QAAQ1O,UAAUC,IAAI;AAAA,MAC5CC,IAAI8P,uBAAO9C,SAASwB,QAAQ1O,UAAUE,EAAE;AAAA,IAAA;AAAA,IAE1CW,QAAQ0P,sBAAsB;AAAA,MAACpD;AAAAA,IAAAA,GAASuC,MAAM;AAAA,EAAA;AAElD;AAEA,SAASY,sBACPT,SACAH,QACkB;AAClB,QAAM;AAAA,IAACvC;AAAAA,IAAQnQ;AAAAA,EAAAA,IAAQ6S,SACjBnB,SAASgB,QAAQvP,OAAO7D,OAAOU,IAAI,GAEnCkQ,UAA6B;AAAA,IAACT,KADxBiC,QAAQpB,QAAQ;AAAA,IACaH;AAAAA,EAAAA;AAEzC,SAAO;AAAA,IACLvN,SAASoQ,uBAAO9C,SAASwB,QAAQ/O,QAAQC,OAAO;AAAA,IAChDC,OAAOmQ,uBAAO9C,SAASwB,QAAQ/O,QAAQE,KAAK;AAAA,IAC5CC,UAAUkQ,uBAAO9C,SAASwB,QAAQ/O,QAAQG,QAAQ;AAAA,IAClDC,SAASiQ,uBAAO9C,SAASwB,QAAQ/O,QAAQI,OAAO;AAAA,EAAA;AAEpD;AAEA,SAASkQ,sBACPJ,SACAW,aACqB;AACrB,QAAM;AAAA,IAACrD;AAAAA,EAAAA,IAAU0C;AAEjB,SAAO;AAAA,IACLjR,MAAM6R,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAAQgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,IACjEtR,MAAMuR,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAAQgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,IACjErR,QAAQsR,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAAUgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,IACrEpR,SAASqR,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAAWgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,IACvE3R,KAAK4R,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAAOgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,IAC/D1R,QAAQ2R,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAAUgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,IACrEzR,QAAQ0R,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAAUgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,IACrExR,OAAOyR,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAASgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,IACnEvR,MAAMwR,uBAAuB;AAAA,MAACtQ,OAAO;AAAA,MAAQgN;AAAAA,IAAAA,GAASqD,WAAW;AAAA,EAAA;AAErE;AAEA,SAASC,uBACPZ,SACAW,aACwB;AACxB,QAAM;AAAA,IAACrQ,OAAAA;AAAAA,IAAOgN;AAAAA,EAAAA,IAAU0C,SAClBnB,SAAS8B,aAAa3M,SAAS1D,MAAK,GACpC+M,UAA6B;AAAA,IAACT,KAAKiC,QAAQpB,QAAQ;AAAA,IAAQH;AAAAA,EAAAA;AAGjE,SAAO;AAAA,IACLhG,SAHgBuH,QAAQvH,UAAU,CAAC,UAAU,UAAU,GAGrCgG,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C7N,IAAI0Q,uBAAO9C,SAASwB,QAAQpP,EAAE;AAAA,IAC9BC,IAAIyQ,uBAAO9C,SAASwB,QAAQnP,EAAE;AAAA,EAAA;AAElC;AAEA,SAAS2Q,qBACPxB,QACAmB,SACAH,QACoB;AACpB,QAAM;AAAA,IAACvC;AAAAA,EAAAA,IAAU0C,SAEXa,aAAa,CAAA;AAEnB,aAAW1T,QAAQwM;AACjBkH,eAAW1T,IAAI,IAAI2T,sBAAsBjC,QAAQ;AAAA,MAACvB;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAGzE,SAAOgB;AACT;AAEA,SAASC,sBACPC,cACAf,SACAH,QAC+B;AAC/B,QAAM;AAAA,IAACvC;AAAAA,IAAQnQ;AAAAA,EAAAA,IAAQ6S,SACjBnB,SAASkC,eAAe5T,IAAI,GAE5BkQ,UAA6B;AAAA,IAACT,KADxBiC,QAAQpB,QAAQoC,QAAQvP,OAAO7D,OAAOU,IAAI,GAAGsQ,QAAQ;AAAA,IACxBH;AAAAA,EAAAA;AAEzC,SAAO;AAAA,IACL7N,IAAI0Q,uBAAO9C,SAASwB,QAAQpP,EAAE;AAAA,IAC9BC,IAAIyQ,uBAAO9C,SAASwB,QAAQnP,EAAE;AAAA,IAC9BwI,KAAKiI,uBAAO9C,SAASwB,QAAQ3G,GAAG;AAAA,IAChC1H,MAAM2P,uBAAO9C,SAASwB,QAAQrO,IAAI;AAAA,EAAA;AAEtC;AAEA,SAAS8P,sBACPN,SACAH,QACqB;AACrB,QAAM;AAAA,IAACvC;AAAAA,IAAQnQ,MAAM6T;AAAAA,EAAAA,IAAYhB,SAE3BiB,QAAsC,CAAA;AAE5C,aAAWlT,QAAQ8L;AACjBoH,UAAMlT,IAAI,IAAImT,2BAA2B;AAAA,MAACF;AAAAA,MAAU1D;AAAAA,MAAQvP;AAAAA,IAAAA,GAAO8R,MAAM;AAG3E,SAAOoB;AACT;AAEA,SAASC,2BACPlB,SAKAH,QACyB;AACzB,QAAM;AAAA,IAACmB;AAAAA,IAAUjT;AAAAA,IAAMuP;AAAAA,EAAAA,IAAU0C,SAE3BxQ,SAA0C,CAAA;AAEhD,aAAWrC,QAAQwM;AACjBnK,IAAAA,OAAMrC,IAAI,IAAIgU,4BAA4B;AAAA,MAACH;AAAAA,MAAUjT;AAAAA,MAAMuP;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAGlF,SAAOrQ;AACT;AAEA,SAAS2R,4BACPnB,SAMAH,QACyB;AACzB,QAAM;AAAA,IAACmB;AAAAA,IAAUjT;AAAAA,IAAMuP;AAAAA,IAAQnQ;AAAAA,EAAAA,IAAQ6S,SAEjC7H,SAA2C,CAAA;AAEjD,aAAW7K,SAASsM;AAClBzB,WAAO7K,KAAK,IAAI8T,2BAA2B;AAAA,MAACJ;AAAAA,MAAUjT;AAAAA,MAAMZ;AAAAA,MAAMmQ;AAAAA,MAAQhQ;AAAAA,IAAAA,GAAQuS,MAAM;AAG1F,SAAO1H;AACT;AAEA,SAASiJ,2BACPpB,SAOAH,QACoB;AACpB,QAAM;AAAA,IAACmB;AAAAA,IAAUjT;AAAAA,IAAMZ;AAAAA,IAAMmQ;AAAAA,IAAQhQ;AAAAA,EAAAA,IAAS0S,SACxCqB,aAAaxB,QAAQvP,OAAO7D,OAAOuU,QAAQ,GAC3CnC,SAASgB,QAAQvP,OAAOtC,SAASD,IAAI,IAAIZ,IAAI,IAAIG,KAAK,GACtDsP,MAAMiC,QAAQpB,QAAQ4D,YAAY5D,QAAQ,QAC1C6D,YAAYzC,QAAQvH,UAAU,CAAC,UAAU,UAAU,GACnD+F,UAA6B;AAAA,IAACT;AAAAA,IAAKU;AAAAA,EAAAA;AAEzC,SAAO;AAAA,IACLhG,QAAQgK,UAAUhE,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C7M,QAAQ;AAAA,MACNf,IAAIyQ,uBAAO9C,SAASwB,QAAQpO,QAAQf,EAAE;AAAA,IAAA;AAAA,IAExCsE,QAAQoM,sBAAsB;AAAA,MAAC9C;AAAAA,IAAAA,GAASuB,MAAM;AAAA,IAC9CpH,OAAO4I,qBAAqBxB,QAAQpH,OAAO;AAAA,MAAC6F;AAAAA,IAAAA,GAASuC,MAAM;AAAA,IAC3DpQ,IAAI0Q,uBAAO9C,SAASwB,QAAQpP,EAAE;AAAA,IAC9BE,QAAQwQ,uBAAO9C,SAASwB,QAAQlP,MAAM;AAAA,IACtCgB,MAAM;AAAA,MACJlB,IAAI0Q,uBAAO9C,SAASwB,QAAQlO,MAAMlB,EAAE;AAAA,MACpCC,IAAIyQ,uBAAO9C,SAASwB,QAAQlO,MAAMjB,EAAE;AAAA,IAAA;AAAA,IAEtCA,IAAIyQ,uBAAO9C,SAASwB,QAAQnP,EAAE;AAAA,IAC9Bc,MAAM2P,uBAAO9C,SAASwB,QAAQrO,IAAI;AAAA,IAClC5D,OAAO;AAAA,MACL6C,IAAI0Q,uBAAO9C,SAASwB,QAAQjS,OAAO6C,EAAE;AAAA,MACrCC,IAAIyQ,uBAAO9C,SAASwB,QAAQjS,OAAO8C,EAAE;AAAA,IAAA;AAAA,IAEvCkI,KAAK;AAAA,MACHnI,IAAI0Q,uBAAO9C,SAASwB,QAAQjH,KAAKnI,EAAE;AAAA,MACnCC,IAAIyQ,uBAAO9C,SAASwB,QAAQjH,KAAKlI,EAAE;AAAA,MACnCC,QAAQwQ,uBAAO9C,SAASwB,QAAQjH,KAAKjI,MAAM;AAAA,IAAA;AAAA,IAE7Ce,MAAM;AAAA,MACJhB,IAAIyQ,uBAAO9C,SAASwB,QAAQnO,MAAMhB,EAAE;AAAA,IAAA;AAAA,IAEtCS,UAAU;AAAA,MACRC,MAAM+P,uBAAO9C,SAASwB,QAAQ1O,UAAUC,IAAI;AAAA,MAC5CC,IAAI8P,uBAAO9C,SAASwB,QAAQ1O,UAAUE,EAAE;AAAA,IAAA;AAAA,EAC1C;AAEJ;AAEA,SAASkQ,qBACPP,SACAH,QACoB;AACpB,QAAM;AAAA,IAACvC;AAAAA,IAAQnQ;AAAAA,EAAAA,IAAQ6S;AAEvB,SAAO;AAAA,IACLnT,SAAS0U,2BAA2B;AAAA,MAACxT,MAAM;AAAA,MAAWuP;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,IAC3EtM,SAASgO,2BAA2B;AAAA,MAACxT,MAAM;AAAA,MAAWuP;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,EAAA;AAE/E;AAEA,SAAS0B,2BACPvB,SAKAH,QACwB;AACxB,QAAM;AAAA,IAAC9R;AAAAA,IAAMuP;AAAAA,IAAQnQ;AAAAA,EAAAA,IAAQ6S;AAE7B,SAAO;AAAA,IACL5S,SAASoU,0BAA0B;AAAA,MAACzT;AAAAA,MAAMuP;AAAAA,MAAQhQ,OAAO;AAAA,MAAW0T,UAAU7T;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,IAC3FtS,SAASiU,0BAA0B;AAAA,MAACzT;AAAAA,MAAMuP;AAAAA,MAAQhQ,OAAO;AAAA,MAAW0T,UAAU7T;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,IAC3FvM,UAAUkO,0BAA0B;AAAA,MAACzT;AAAAA,MAAMuP;AAAAA,MAAQhQ,OAAO;AAAA,MAAY0T,UAAU7T;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,IAC7FnS,UAAU8T,0BAA0B;AAAA,MAACzT;AAAAA,MAAMuP;AAAAA,MAAQhQ,OAAO;AAAA,MAAY0T,UAAU7T;AAAAA,IAAAA,GAAO0S,MAAM;AAAA,EAAA;AAEjG;AAEA,SAAS2B,0BACPxB,SAMAH,QACyB;AACzB,QAAM;AAAA,IAACmB;AAAAA,IAAUjT;AAAAA,IAAMuP;AAAAA,IAAQhQ;AAAAA,EAAAA,IAAS0S,SAClCqB,aAAaxB,QAAQvP,OAAO7D,OAAOuU,QAAQ,GAC3CnC,SAASgB,QAAQvP,OAAOM,QAAQ7C,IAAI,IAAIT,KAAK,GAC7CsP,MAAMiC,QAAQpB,QAAQ4D,YAAY5D,QAAQ,QAC1C6D,YAAYzC,QAAQvH,UAAU,CAAC,UAAU,UAAU,GACnD+F,UAA6B;AAAA,IAACT;AAAAA,IAAKU;AAAAA,EAAAA;AAEzC,SAAO;AAAA,IACLhG,QAAQgK,UAAUhE,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C7N,IAAI0Q,uBAAO9C,SAASwB,QAAQpP,EAAE;AAAA,IAC9BE,QAAQwQ,uBAAO9C,SAASwB,QAAQlP,MAAM;AAAA,IACtCD,IAAIyQ,uBAAO9C,SAASwB,QAAQnP,EAAE;AAAA,IAC9B9C,OAAO;AAAA,MACL6C,IAAI0Q,uBAAO9C,SAASwB,QAAQjS,OAAO6C,EAAE;AAAA,IAAA;AAAA,IAEvCoB,aAAasP,uBAAO9C,SAASwB,QAAQhO,WAAW;AAAA,EAAA;AAEpD;AAEA,SAAS2P,0BACPR,SAIAH,QACyB;AACzB,QAAM;AAAA,IAACvC;AAAAA,IAAQnQ,MAAM6T;AAAAA,EAAAA,IAAYhB,SAE3BxQ,SAA0C,CAAA;AAEhD,aAAWrC,QAAQwM;AACjBnK,IAAAA,OAAMrC,IAAI,IAAIsU,gCAAgC;AAAA,MAACT;AAAAA,MAAU1D;AAAAA,MAAQnQ;AAAAA,IAAAA,GAAO0S,MAAM;AAGhF,SAAOrQ;AACT;AAEA,SAASiS,gCACPzB,SAKAH,QACyB;AACzB,QAAM;AAAA,IAACmB;AAAAA,IAAU1D;AAAAA,IAAQnQ;AAAAA,EAAAA,IAAQ6S,SAE3B7H,SAA2C,CAAA;AAEjD,aAAW7K,SAASsM;AAClBzB,WAAO7K,KAAK,IAAIoU,+BAA+B;AAAA,MAACV;AAAAA,MAAU7T;AAAAA,MAAMmQ;AAAAA,MAAQhQ;AAAAA,IAAAA,GAAQuS,MAAM;AAGxF,SAAO1H;AACT;AAEA,SAASuJ,+BACP1B,SAMAH,QACoB;AACpB,QAAM;AAAA,IAACmB;AAAAA,IAAU1D;AAAAA,IAAQhQ;AAAAA,IAAOH;AAAAA,EAAAA,IAAQ6S,SAClCqB,aAAaxB,QAAQvP,OAAO7D,OAAOuU,QAAQ,GAC3CnC,SAASgB,QAAQvP,OAAOjD,aAAaF,IAAI,IAAIG,KAAK,GAElDsP,MAAMiC,QAAQpB,QAAQ4D,YAAY5D,QAAQ,QAC1C6D,YAAYzC,QAAQvH,UAAU,CAAC,UAAU,UAAU,GACnD+F,UAA6B;AAAA,IAACT;AAAAA,IAAKU;AAAAA,EAAAA;AAEzC,SAAO;AAAA,IACLhG,QAAQgK,UAAUhE,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C7M,QAAQ;AAAA,MACNf,IAAIyQ,uBAAO9C,SAASwB,QAAQpO,QAAQf,EAAE;AAAA,IAAA;AAAA,IAExCsE,QAAQoM,sBAAsB;AAAA,MAAC9C;AAAAA,IAAAA,GAASuB,MAAM;AAAA,IAC9CpH,OAAO4I,qBAAqBxB,QAAQpH,OAAO;AAAA,MAAC6F;AAAAA,IAAAA,GAASuC,MAAM;AAAA,IAC3DpQ,IAAI0Q,uBAAO9C,SAASwB,QAAQpP,EAAE;AAAA,IAC9BE,QAAQwQ,uBAAO9C,SAASwB,QAAQlP,MAAM;AAAA,IACtCgB,MAAM;AAAA,MACJlB,IAAI0Q,uBAAO9C,SAASwB,QAAQlO,MAAMlB,EAAE;AAAA,MACpCC,IAAIyQ,uBAAO9C,SAASwB,QAAQlO,MAAMjB,EAAE;AAAA,IAAA;AAAA,IAEtCA,IAAIyQ,uBAAO9C,SAASwB,QAAQnP,EAAE;AAAA,IAC9Bc,MAAM2P,uBAAO9C,SAASwB,QAAQrO,IAAI;AAAA,IAClC5D,OAAO;AAAA,MACL6C,IAAI0Q,uBAAO9C,SAASwB,QAAQjS,OAAO6C,EAAE;AAAA,MACrCC,IAAIyQ,uBAAO9C,SAASwB,QAAQjS,OAAO8C,EAAE;AAAA,IAAA;AAAA,IAEvCkI,KAAK;AAAA,MACHnI,IAAI0Q,uBAAO9C,SAASwB,QAAQjH,KAAKnI,EAAE;AAAA,MACnCC,IAAIyQ,uBAAO9C,SAASwB,QAAQjH,KAAKlI,EAAE;AAAA,MACnCC,QAAQwQ,uBAAO9C,SAASwB,QAAQjH,KAAKjI,MAAM;AAAA,IAAA;AAAA,IAE7Ce,MAAM;AAAA,MACJhB,IAAIyQ,uBAAO9C,SAASwB,QAAQnO,MAAMhB,EAAE;AAAA,IAAA;AAAA,IAEtCS,UAAU;AAAA,MACRC,MAAM+P,uBAAO9C,SAASwB,QAAQ1O,UAAUC,IAAI;AAAA,MAC5CC,IAAI8P,uBAAO9C,SAASwB,QAAQ1O,UAAUE,EAAE;AAAA,IAAA;AAAA,EAC1C;AAEJ;AAEA,SAASqQ,sBACPV,SACAH,QACkB;AAClB,QAAM;AAAA,IAACvC;AAAAA,EAAAA,IAAU0C,SACXnB,SAASgB,QAAQvP,OAAOU,QACxBqM,UAA6B;AAAA,IAACT,KAAK;AAAA,IAAQU;AAAAA,EAAAA;AAEjD,SAAO;AAAA,IACLrM,QAAQkP,uBAAO9C,SAASwB,QAAQ5N,MAAM;AAAA,IACtCC,UAAUiP,uBAAO9C,SAASwB,QAAQ3N,QAAQ;AAAA,IAC1CC,WAAWgP,uBAAO9C,SAASwB,QAAQ1N,SAAS;AAAA,IAC5CC,WAAW+O,uBAAO9C,SAASwB,QAAQzN,SAAS;AAAA,IAC5CC,SAAS8O,uBAAO9C,SAASwB,QAAQxN,OAAO;AAAA,IACxCC,SAAS6O,uBAAO9C,SAASwB,QAAQvN,OAAO;AAAA,IACxCC,OAAO4O,uBAAO9C,SAASwB,QAAQtN,KAAK;AAAA,IACpCC,MAAM2O,uBAAO9C,SAASwB,QAAQrN,IAAI;AAAA,IAClCC,OAAO0O,uBAAO9C,SAASwB,QAAQpN,KAAK;AAAA,IACpCC,WAAWyO,uBAAO9C,SAASwB,QAAQnN,SAAS;AAAA,IAC5CC,SAASwO,uBAAO9C,SAASwB,QAAQlN,OAAO;AAAA,IACxCC,UAAUuO,uBAAO9C,SAASwB,QAAQjN,QAAQ;AAAA,IAC1CC,SAASsO,uBAAO9C,SAASwB,QAAQhN,OAAO;AAAA,IACxCC,SAASqO,uBAAO9C,SAASwB,QAAQ/M,OAAO;AAAA,IACxCC,QAAQoO,uBAAO9C,SAASwB,QAAQ9M,MAAM;AAAA,IACtCC,UAAUmO,uBAAO9C,SAASwB,QAAQ7M,QAAQ;AAAA,IAC1CC,SAASkO,uBAAO9C,SAASwB,QAAQ5M,OAAO;AAAA,IACxCC,IAAIiO,uBAAO9C,SAASwB,QAAQ3M,EAAE;AAAA,IAC9BC,WAAWgO,uBAAO9C,SAASwB,QAAQ1M,SAAS;AAAA,IAC5CC,UAAU+N,uBAAO9C,SAASwB,QAAQzM,QAAQ;AAAA,IAC1CC,SAAS8N,uBAAO9C,SAASwB,QAAQxM,OAAO;AAAA,IACxCC,QAAQ6N,uBAAO9C,SAASwB,QAAQvM,MAAM;AAAA,IACtCC,UAAU4N,uBAAO9C,SAASwB,QAAQtM,QAAQ;AAAA,IAC1CC,QAAQ2N,uBAAO9C,SAASwB,QAAQrM,MAAM;AAAA,IACtCC,UAAU0N,uBAAO9C,SAASwB,QAAQpM,QAAQ;AAAA,IAC1CC,aAAayN,uBAAO9C,SAASwB,QAAQnM,WAAW;AAAA,IAChDC,eAAewN,uBAAO9C,SAASwB,QAAQlM,aAAa;AAAA,IACpDC,aAAauN,uBAAO9C,SAASwB,QAAQjM,WAAW;AAAA,IAChDC,OAAOsN,uBAAO9C,SAASwB,QAAQhM,KAAK;AAAA,IACpCC,UAAUqN,uBAAO9C,SAASwB,QAAQ/L,QAAQ;AAAA,IAC1CC,QAAQoN,uBAAO9C,SAASwB,QAAQ9L,MAAM;AAAA,IACtCC,QAAQmN,uBAAO9C,SAASwB,QAAQ7L,MAAM;AAAA,IACtCC,KAAKkN,uBAAO9C,SAASwB,QAAQ5L,GAAG;AAAA,IAChCC,MAAMiN,uBAAO9C,SAASwB,QAAQ3L,IAAI;AAAA,IAClCC,KAAKgN,uBAAO9C,SAASwB,QAAQ1L,GAAG;AAAA,IAChCC,UAAU+M,uBAAO9C,SAASwB,QAAQzL,QAAQ;AAAA,EAAA;AAE9C;ACzeO,MAAMuO,sBAAyCrR,MAAAA;ACFtD,SAASsR,WAAWC,GAAWC,GAAWC,QAAgB;AAGxD,QAAMC,SAFOF,IAAID,KAEIE;AAErB,SAAOF,IAAIG;AACb;AAMO,SAAS1F,IAAIuF,GAAeC,GAAeC,QAAqB;AACrE,SAAO;AAAA,IACLE,GAAGL,WAAWC,EAAEI,GAAGH,EAAEG,GAAGF,MAAM;AAAA,IAC9BG,GAAGN,WAAWC,EAAEK,GAAGJ,EAAEI,GAAGH,MAAM;AAAA,IAC9BF,GAAGD,WAAWC,EAAEA,GAAGC,EAAED,GAAGE,MAAM;AAAA,EAAA;AAElC;AClBA,SAASI,gBAAgBN,GAAWC,GAAW;AAC7C,SAAOD,IAAIC;AACb;AAOO,SAASM,SAASP,GAAeC,GAAoB;AAC1D,SAAO;AAAA,IACLG,GAAGE,gBAAgBN,EAAEI,IAAI,KAAKH,EAAEG,IAAI,GAAG,IAAI;AAAA,IAC3CC,GAAGC,gBAAgBN,EAAEK,IAAI,KAAKJ,EAAEI,IAAI,GAAG,IAAI;AAAA,IAC3CL,GAAGM,gBAAgBN,EAAEA,IAAI,KAAKC,EAAED,IAAI,GAAG,IAAI;AAAA,EAAA;AAE/C;ACfA,SAASQ,cAAcR,GAAWC,GAAW;AAC3C,SAAOD,IAAIC,IAAID,IAAIC;AACrB;AAOO,SAASQ,OAAOT,GAAeC,GAAoB;AACxD,SAAO;AAAA,IACLG,GAAGI,cAAcR,EAAEI,IAAI,KAAKH,EAAEG,IAAI,GAAG,IAAI;AAAA,IACzCC,GAAGG,cAAcR,EAAEK,IAAI,KAAKJ,EAAEI,IAAI,GAAG,IAAI;AAAA,IACzCL,GAAGQ,cAAcR,EAAEA,IAAI,KAAKC,EAAED,IAAI,GAAG,IAAI;AAAA,EAAA;AAE7C;ACjBO,SAASU,KAAKC,GAAWC,GAAWC,GAAmB;AAC5D,SAAOF,KAAK,IAAIE,KAAKD,IAAIC;AAC3B;AAEO,SAASC,QAAQH,GAAWC,GAAWC,GAAmB;AAC/D,SAAOE,OAAOF,IAAIF,MAAMC,IAAID,EAAE;AAChC;AAEO,SAASI,MAAMF,GAAWG,MAAM,GAAGC,MAAM,GAAW;AACzD,SAAOC,KAAKF,IAAIC,KAAKC,KAAKD,IAAID,KAAKH,CAAC,CAAC;AACvC;AAEO,SAASM,MAAMC,IAAYC,IAAYC,IAAYC,IAAYV,GAAmB;AACvF,SAAOH,KAAKY,IAAIC,IAAIT,QAAQM,IAAIC,IAAIR,CAAC,CAAC;AACxC;AAEO,SAASW,MAAMvG,OAAuB;AAC3C,SAAOiG,KAAKM,MAAMvG,KAAK;AACzB;ACZO,SAASwG,SAASC,KAAkB;AACzC,MAAIA,IAAIrF,WAAW,GAAG;AACpB,UAAMsF,OAAOD,IAAI/G,MAAM,GAAG,CAAC,GACrBiH,OAAOF,IAAI/G,MAAM,GAAG,CAAC,GACrBkH,OAAOH,IAAI/G,MAAM,GAAG,CAAC;AAE3B,WAAO;AAAA,MACLyF,GAAG0B,SAASH,OAAOA,MAAM,EAAE;AAAA,MAC3BtB,GAAGyB,SAASF,OAAOA,MAAM,EAAE;AAAA,MAC3B5B,GAAG8B,SAASD,OAAOA,MAAM,EAAE;AAAA,IAAA;AAAA,EAE/B;AAEA,SAAO;AAAA,IACLzB,GAAG0B,SAASJ,IAAI/G,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IAC/B0F,GAAGyB,SAASJ,IAAI/G,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IAC/BqF,GAAG8B,SAASJ,IAAI/G,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,EAAA;AAEnC;AAKO,SAASoH,WAAWC,OAAoB;AAC7C,QAAMC,SAASD,MAAKE,QAAQ,cAAc,EAAE,EAAE3I,MAAM,GAAG;AAEvD,SAAO;AAAA,IACL6G,GAAG0B,SAASG,OAAO,CAAC,CAAC;AAAA,IACrB5B,GAAGyB,SAASG,OAAO,CAAC,CAAC;AAAA,IACrBjC,GAAG8B,SAASG,OAAO,CAAC,CAAC;AAAA,IACrBpB,GAAGsB,WAAWF,OAAO,CAAC,CAAC;AAAA,EAAA;AAE3B;AAKO,SAASG,SAAS3T,QAA2B;AAClD,QAAM2R,IAAIoB,MAAMT,MAAMG,KAAKM,MAAM/S,OAAM2R,CAAC,GAAG,GAAG,GAAG,CAAC,GAC5CC,IAAImB,MAAMT,MAAMG,KAAKM,MAAM/S,OAAM4R,CAAC,GAAG,GAAG,GAAG,CAAC,GAC5CL,IAAIwB,MAAMT,MAAMG,KAAKM,MAAM/S,OAAMuR,CAAC,GAAG,GAAG,GAAG,CAAC;AAElD,SAAI,OAAOvR,SACF,QAAQ2R,CAAC,IAAIC,CAAC,IAAIL,CAAC,IAAIvR,OAAMoS,CAAC,MAGhC,QAAQ,KAAK,OAAOT,KAAK,OAAOC,KAAK,KAAKL,GAAGqC,SAAS,EAAE,EAAE1H,MAAM,CAAC;AAC1E;AAMO,SAAS2H,SAAS;AAAA,EAAClC;AAAAA,EAAGC;AAAAA,EAAGL;AAAM,GAAQ;AAE5CI,OAAK,KACLC,KAAK,KACLL,KAAK;AAGL,QAAMuC,OAAOrB,KAAKF,IAAIZ,GAAGC,GAAGL,CAAC,GACvBwC,OAAOtB,KAAKD,IAAIb,GAAGC,GAAGL,CAAC,GACvBG,QAAQqC,OAAOD;AAErB,MAAIE,IAAI,GACJxC,IAAI,GACJyC,IAAI;AAIR,SAAIvC,SAAS,IAAGsC,IAAI,IAEXD,QAAQpC,IAAGqC,KAAMpC,IAAIL,KAAKG,QAAS,IAEnCqC,QAAQnC,IAAGoC,KAAKzC,IAAII,KAAKD,QAAQ,IAErCsC,KAAKrC,IAAIC,KAAKF,QAAQ,GAE3BsC,IAAIvB,KAAKM,MAAMiB,IAAI,EAAE,GAGjBA,IAAI,MAAGA,KAAK,MAGhBC,KAAKF,OAAOD,QAAQ,GAGpBtC,IAAIE,SAAS,IAAI,IAAIA,SAAS,IAAIe,KAAKyB,IAAI,IAAID,IAAI,CAAC,IAGpDzC,IAAI,EAAEA,IAAI,KAAK2C,QAAQ,CAAC,GACxBF,IAAI,EAAEA,IAAI,KAAKE,QAAQ,CAAC,GAEjB;AAAA,IAACH;AAAAA,IAAGxC;AAAAA,IAAGyC;AAAAA,EAAAA;AAChB;AAKO,SAASG,SAASC,KAAe;AAEtC,QAAM7C,IAAI6C,IAAI7C,IAAI,KACZyC,IAAII,IAAIJ,IAAI,KAEZK,KAAK,IAAI7B,KAAKyB,IAAI,IAAID,IAAI,CAAC,KAAKzC,GAChCU,IAAIoC,KAAK,IAAI7B,KAAKyB,IAAMG,IAAIL,IAAI,KAAM,IAAK,CAAC,IAC5CO,IAAIN,IAAIK,IAAI;AAElB,MAAI3C,IAAI,GACJC,IAAI,GACJL,IAAI;AAER,SAAI,KAAK8C,IAAIL,KAAKK,IAAIL,IAAI,MACxBrC,IAAI2C,GACJ1C,IAAIM,GACJX,IAAI,KACK,MAAM8C,IAAIL,KAAKK,IAAIL,IAAI,OAChCrC,IAAIO,GACJN,IAAI0C,GACJ/C,IAAI,KACK,OAAO8C,IAAIL,KAAKK,IAAIL,IAAI,OACjCrC,IAAI,GACJC,IAAI0C,GACJ/C,IAAIW,KACK,OAAOmC,IAAIL,KAAKK,IAAIL,IAAI,OACjCrC,IAAI,GACJC,IAAIM,GACJX,IAAI+C,KACK,OAAOD,IAAIL,KAAKK,IAAIL,IAAI,OACjCrC,IAAIO,GACJN,IAAI,GACJL,IAAI+C,KACK,OAAOD,IAAIL,KAAKK,IAAIL,IAAI,QACjCrC,IAAI2C,GACJ1C,IAAI,GACJL,IAAIW,IAGC;AAAA,IACLP,GAAGc,KAAKM,OAAOpB,IAAI4C,KAAK,GAAG;AAAA,IAC3B3C,GAAGa,KAAKM,OAAOnB,IAAI2C,KAAK,GAAG;AAAA,IAC3BhD,GAAGkB,KAAKM,OAAOxB,IAAIgD,KAAK,GAAG;AAAA,EAAA;AAE/B;AClJA,MAAMC,YAAY,0BAEZC,SAAS;AAEf,SAASC,WAAW7K,KAAa;AAC/B,aAAWyK,KAAKzK;AACd,QAAI2K,UAAUG,QAAQL,CAAC,MAAM;AAC3B,aAAO;AAIX,SAAO;AACT;AAEA,SAASM,MAAM/K,KAAa;AAI1B,SAHIA,IAAI,CAAC,MAAM,OAGX,EAAEA,IAAI+D,WAAW,KAAK/D,IAAI+D,WAAW,KAAW,KAE7C8G,WAAW7K,IAAIqC,MAAM,CAAC,CAAC;AAChC;AAEA,SAAS2I,SAAShL,KAAkB;AAClC,QAAMiL,MAAML,OAAOM,KAAKlL,GAAG;AAE3B,MAAI,CAACiL;AACH,UAAM,IAAI7H,MAAM,yCAAyCpD,GAAG,GAAG;AAGjE,SAAO;AAAA,IAACmK,GAAGX,SAASyB,IAAI,CAAC,CAAC;AAAA,IAAGtD,GAAGkC,WAAWoB,IAAI,CAAC,CAAC;AAAA,IAAGb,GAAGP,WAAWoB,IAAI,CAAC,CAAC;AAAA,EAAA;AAC1E;AAKO,SAASE,WAAWhV,QAA4B;AACrD,MAAI,CAACA,OAAO,QAAO;AAAA,IAAC2R,GAAG;AAAA,IAAGC,GAAG;AAAA,IAAGL,GAAG;AAAA,EAAA;AAEnC,MAAI,OAAOvR,UAAU;AACnB,UAAM,IAAIiN,MAAM,+BAA+B;AAGjD,MAAI2H,MAAM5U,MAAK;AACb,WAAOgT,SAAShT,MAAK;AAGvB,MAAIA,OAAMiV,WAAW,MAAM;AACzB,WAAOb,SAASS,SAAS7U,MAAK,CAAC;AAGjC,MAAIA,OAAMiV,WAAW,OAAO;AAC1B,WAAO3B,WAAWtT,MAAK;AAGzB,QAAM,IAAIiN,MAAM,yCAAyCjN,MAAK,GAAG;AACnE;ACvDO,SAASkV,iBAAiB/V,IAAYC,IAAoB;AAC/D,QAAM+V,OAAOH,WAAW7V,EAAE,GACpBiW,OAAOJ,WAAW5V,EAAE,GAGpBiW,KAAKC,SAASH,IAAI,GAClBI,KAAKD,SAASF,IAAI,GAGlBI,KAAKC,eAAeJ,EAAE,GACtBK,KAAKD,eAAeF,EAAE;AAG5B,UAAQ9C,KAAKD,IAAIgD,IAAIE,EAAE,IAAI,SAASjD,KAAKF,IAAIiD,IAAIE,EAAE,IAAI;AACzD;AAEA,SAASJ,SAAS;AAAA,EAAC3D;AAAAA,EAAGC;AAAAA,EAAGL;AAAa,GAA6B;AACjE,SAAO,CAACoE,UAAUhE,IAAI,GAAG,GAAGgE,UAAU/D,IAAI,GAAG,GAAG+D,UAAUpE,IAAI,GAAG,CAAC;AACpE;AAEA,SAASoE,UAAUC,GAAW;AAC5B,SAAOA,KAAK,UAAUA,IAAI,UAAUA,IAAI,SAAS,UAAU;AAC7D;AAEA,SAASH,eAAe,CAAC9D,GAAGC,GAAGL,CAAC,GAA6B;AAC3D,SAAO,SAASI,IAAI,SAASC,IAAI,SAASL;AAC5C;ACzBO,SAASgC,KAAKvT,QAAgBoS,GAAmB;AACtD,QAAMyD,MAAMb,WAAWhV,MAAK;AAE5B,SAAO,QAAQ6V,IAAIlE,CAAC,IAAIkE,IAAIjE,CAAC,IAAIiE,IAAItE,CAAC,IAAIa,CAAC;AAC7C;ACNA,MAAM0D,YAA8B,CAAC,GAAG,GAAG;AAEpC,SAASC,cACdvJ,OACAkD,SAMQ;AACR,QAAM;AAAA,IAACsB;AAAAA,EAAAA,IAAatB,SAEd1P,SAAQgV,WAAWxI,KAAK,GACxBxO,SAAQgX,WAAWtF,QAAQ1R,KAAK,GAChCC,SAAQ+W,WAAWtF,QAAQzR,KAAK,GAEhCkB,KAAKuQ,QAAQvQ,KAAK6V,WAAWtF,QAAQvQ,EAAE,IAAI6R,cAAc,aAAa/S,SAAQD,QAE9EgY,eAAgF;AAAA,IACpFrE,GAAG,CAAC3T,OAAM2T,GAAG1T,OAAM0T,CAAC;AAAA,IACpBC,GAAG,CAAC5T,OAAM4T,GAAG3T,OAAM2T,CAAC;AAAA,IACpBL,GAAG,CAACvT,OAAMuT,GAAGtT,OAAMsT,CAAC;AAAA,EAAA,GAGhB0E,mBAAwB;AAAA,IAC5BtE,GAAGW,MAAMI,MAAM,GAAGsD,aAAarE,GAAG,GAAGmE,WAAW3W,GAAGwS,CAAC,GAAG,GAAGmE,SAAS;AAAA,IACnElE,GAAGU,MAAMI,MAAM,GAAGsD,aAAapE,GAAG,GAAGkE,WAAW3W,GAAGyS,CAAC,GAAG,GAAGkE,SAAS;AAAA,IACnEvE,GAAGe,MAAMI,MAAM,GAAGsD,aAAazE,GAAG,GAAGuE,WAAW3W,GAAGoS,CAAC,GAAG,GAAGuE,SAAS;AAAA,EAAA,GAG/DI,iBAAsB;AAAA,IAC1BvE,GAAGW,MAAMI,MAAM,GAAGsD,aAAarE,GAAG,GAAGmE,WAAW9V,OAAM2R,CAAC,GAAG,GAAGmE,SAAS;AAAA,IACtElE,GAAGU,MAAMI,MAAM,GAAGsD,aAAapE,GAAG,GAAGkE,WAAW9V,OAAM4R,CAAC,GAAG,GAAGkE,SAAS;AAAA,IACtEvE,GAAGe,MAAMI,MAAM,GAAGsD,aAAazE,GAAG,GAAGuE,WAAW9V,OAAMuR,CAAC,GAAG,GAAGuE,SAAS;AAAA,EAAA,GAGlEK,cACJnF,cAAc,aACVc,SAASmE,kBAAkBC,cAAc,IACzClE,OAAOiE,kBAAkBC,cAAc,GAEvCN,IAAS;AAAA,IACbjE,GAAGW,MAAMI,MAAM,GAAGoD,WAAW,GAAGE,aAAarE,GAAGwE,YAAYxE,CAAC,GAAG,GAAGqE,aAAarE,CAAC;AAAA,IACjFC,GAAGU,MAAMI,MAAM,GAAGoD,WAAW,GAAGE,aAAapE,GAAGuE,YAAYvE,CAAC,GAAG,GAAGoE,aAAapE,CAAC;AAAA,IACjFL,GAAGe,MAAMI,MAAM,GAAGoD,WAAW,GAAGE,aAAazE,GAAG4E,YAAY5E,CAAC,GAAG,GAAGyE,aAAazE,CAAC;AAAA,EAAA;AAGnF,SAAOoC,SAASiC,CAAC;AACnB;ACvCO,SAASQ,iBAAiBvM,KAAa6F,SAA0C;AACtF,QAAM;AAAA,IAACvQ;AAAAA,IAAI6R;AAAAA,IAAWqF;AAAAA,EAAAA,IAAgB3G;AAEtC,MAAIvQ,OAAO;AACT,UAAM,IAAI8N,MAAM,oCAAoC;AAGtD,QAAMN,OAAOf,gBAAgB/B,GAAG;AAEhC,MAAI,CAAC8C,QAAQA,KAAKvB,SAAS;AACzB,UAAM,IAAI6B,MAAM,8BAA8BpD,GAAG,EAAE;AAGrD,MAAIoJ,MAAM;AAcV,MAZItG,KAAKlM,QAAQ,YACfwS,MAAMqD,eAAeD,aAAarY,KAAK,IAGrC2O,KAAKlM,QAAQ,YACfwS,MAAMqD,eAAeD,aAAapY,KAAK,IAGrC0O,KAAKL,OAAOK,KAAKZ,SACnBkH,MAAMqD,eAAeD,aAAa1J,KAAKL,GAAG,EAAEK,KAAKZ,IAAI,CAAC,IAGpD,CAACkH;AACH,UAAM,IAAIhG,MAAM,8BAA8BpD,GAAG,EAAE;AAGrD,QAAM0M,eAAetD,KAEfuD,aAAa;AAAA,IACjBxF;AAAAA,IACA7R;AAAAA,IACAnB,OAAOsY,eAAeD,aAAarY,KAAK;AAAA;AAAA,IAExCC,OAAOqY,eAAeD,aAAapY,KAAK;AAAA,EAAA;AAG1C,MAAI;AAGF,QAFAgV,MAAM8C,cAAc9C,KAAKuD,UAAU,GAE/BrX,MAAMwN,KAAKX,QAAQY,QAAW;AAChC,YAAM9M,OAAOkT,SAAS7T,EAAE,GAClBY,KAAKiT,SAASC,GAAG;AAEvBA,YAAMU,SAAS3H,IAAIlM,MAAMC,IAAI4M,KAAKX,GAAG,CAAC;AAAA,IACxC;AAAA,EACF,SAASyK,KAAK;AAEZC,UAAAA,QAAQC,KAAK,mBAAmB1D,KAAKuD,UAAU,GACzCC;AAAAA,EACR;AAEA,SAAIxD,QAAQ,UAEVyD,QAAQC,KAAK,8BAA8B9M,GAAG,EAAE,GAChDoJ,MAAMsD,eAGJ5J,KAAKP,YAAYQ,WACnBqG,MAAMM,KAAKN,KAAKtG,KAAKP,OAAO,IAGvB6G;AACT;AAEA,SAASqD,eAAetW,QAAmC;AACzD,SAAO,OAAOA,UAAU,WAAWA,SAAQA,OAAMiT;AACnD;ACvDO,SAAS2D,wBACdpK,OACA+C,QACsB;AACtB,QAAM8G,eAAe9G,QAAQsH,WAAWxF;AAExC,SAAO;AAAA,IACLhT,OAAOyY,uBAAuBT,cAAc7J,MAAMnO,KAAK;AAAA,IACvDjC,MAAM0a,uBAAuBT,cAAc7J,MAAMpQ,IAAI;AAAA,EAAA;AAEzD;AAEA,SAAS0a,uBACPT,cACA7J,OACqB;AACrB,QAAMuK,cAAc9I,OAAO+I,QAAQxK,KAAK,GAElC,CAAA,EAAGyK,eAAe,IAAIF,YAAYG,KAAK,CAAC,CAACC,CAAC,MAAMA,MAAM,aAAa,GACnE,CAAA,EAAGC,WAAW,IAAIL,YAAYG,KAAK,CAAC,CAACC,CAAC,MAAMA,MAAM,SAAS,GAK3DE,0BAA0BC,iBAAiBL,iBAAiB;AAAA,IAACZ;AAAAA,EAAAA,CAAa,GAC1EkB,sBAAsBD,iBAAiBF,aAAa;AAAA,IAACf;AAAAA,EAAAA,CAAa,GAGlElX,KAAKoY,oBAAoBpY;AAE/B,MAAIA,OAAO;AACT,UAAM,IAAI8N,MAAM,oCAAoC;AAGtD,SAAOgB,OAAOuJ,YAAY,CACxB,CAAC,eAAeH,uBAAuB,GACvC,CAAC,WAAWE,mBAAmB,GAC/B,GAAGR,YACApJ,OAAO,CAAC,CAACwJ,CAAC,MAAMA,MAAM,aAAaA,MAAM,aAAa,EACtDM,IAAI,CAAC,CAACN,GAAGvB,CAAC,MAAM,CAACuB,GAAGG,iBAAiB1B,GAAG;AAAA,IAACzW;AAAAA,IAAIkX;AAAAA,EAAAA,CAAa,CAAC,CAAC,CAAC,CACjE;AACH;AAEA,SAASiB,iBACP9K,OACAkD,SAImB;AACnB,QAAM;AAAA,IAAC2G;AAAAA,IAAclX;AAAAA,EAAAA,IAAMuQ,SACrBsB,YAAYxE,MAAMxF,UAAU,YAC5B0Q,SAAStB,iBAAiB5J,MAAMrN,IAAI;AAAA,IAACkX;AAAAA,IAAclX;AAAAA,IAAI6R;AAAAA,EAAAA,CAAU,GACjE2G,eAAwC;AAAA,IAACtB;AAAAA,IAAclX,IAAIuY;AAAAA,IAAQ1G;AAAAA,EAAAA,GAEnEtT,SAASka,uBAAuBpL,MAAM9O,QAAQ;AAAA,IAClDga;AAAAA,IACA1G;AAAAA,IACAqF;AAAAA,EAAAA,CACD,GAEKtZ,aAAa8a,2BAA2BrL,MAAMzP,YAAY;AAAA,IAC9DsZ;AAAAA,IACAqB;AAAAA,IACA1G;AAAAA,EAAAA,CACD,GAEKxR,SAA2B;AAAA,IAC/BC,SAAS2W,iBAAiB5J,MAAMhN,OAAOC,SAASkY,YAAY;AAAA,IAC5DjY,OAAO0W,iBAAiB5J,MAAMhN,OAAOE,OAAO;AAAA,MAC1C,GAAGiY;AAAAA,MACHxY,IAAIyN;AAAAA,MACJyJ,cAAc;AAAA,QAAC,GAAGA;AAAAA,QAAcrY,OAAO;AAAA,MAAA;AAAA,IAAS,CACjD;AAAA,IACD2B,UAAUyW,iBAAiB5J,MAAMhN,OAAOG,UAAU;AAAA,MAChD,GAAGgY;AAAAA,MACHxY,IAAIyN;AAAAA,MACJyJ,cAAc;AAAA,QAAC,GAAGA;AAAAA,QAAcrY,OAAO;AAAA,MAAA;AAAA,IAAS,CACjD;AAAA,IACD4B,SAASwW,iBAAiB5J,MAAMhN,OAAOI,SAAS;AAAA,MAC9C,GAAG+X;AAAAA,MACHxY,IAAIyN;AAAAA,MACJyJ,cAAc;AAAA,QAAC,GAAGA;AAAAA,QAAcrY,OAAO;AAAA,MAAA;AAAA,IAAS,CACjD;AAAA,EAAA;AAGH,SAAO;AAAA,IACLgJ,QAAQgK;AAAAA,IACR/J,OAAOuF,MAAMvF;AAAAA,IACb9G,QAAQ;AAAA,MACNf,IAAIgX,iBAAiB5J,MAAMrM,OAAOf,IAAIuY,YAAY;AAAA,IAAA;AAAA,IAEpDjU,QAAQoU,uBAAuBtL,MAAM9I,QAAQ;AAAA,MAACgU;AAAAA,MAAQrB;AAAAA,MAAcrF;AAAAA,IAAAA,CAAU;AAAA,IAC9E9J,UAAUkP,iBAAiB5J,MAAMtF,UAAUyQ,YAAY;AAAA,IACvDxQ,OAAO4Q,sBAAsBvL,MAAMrF,OAAO;AAAA,MAACuQ;AAAAA,MAAQrB;AAAAA,MAAcrF;AAAAA,IAAAA,CAAU;AAAA,IAC3E7R,IAAIuY;AAAAA,IACJrY,QAAQ+W,iBAAiB5J,MAAMnN,QAAQsY,YAAY;AAAA,IACnDja;AAAAA,IACA2C,MAAM;AAAA,MACJlB,IAAIiX,iBAAiB5J,MAAMnM,KAAKlB,IAAIwY,YAAY;AAAA,MAChDvY,IAAIgX,iBAAiB5J,MAAMnM,KAAKjB,IAAIuY,YAAY;AAAA,IAAA;AAAA,IAElDvY,IAAIgX,iBAAiB5J,MAAMpN,IAAIuY,YAAY;AAAA,IAC3CrY,WAAW8W,iBAAiB5J,MAAMlN,WAAWqY,YAAY;AAAA,IACzDzX,MAAMkW,iBAAiB5J,MAAMtM,MAAMyX,YAAY;AAAA,IAC/CrX,OAAO0X,sBAAsBxL,MAAMlM,OAAO;AAAA,MAACoX;AAAAA,MAAQrB;AAAAA,MAAcrF;AAAAA,IAAAA,CAAU;AAAA,IAC3E1J,KAAK2Q,oBAAoBzL,MAAMlF,KAAK;AAAA,MAACoQ;AAAAA,MAAQrB;AAAAA,MAAcrF;AAAAA,IAAAA,CAAU;AAAA,IACrE5Q,MAAM;AAAA,MACJhB,IAAIgX,iBAAiB5J,MAAMpM,KAAKhB,IAAIuY,YAAY;AAAA,IAAA;AAAA,IAElDrb,OAAO;AAAA,MACL6C,IAAIiX,iBAAiB5J,MAAMlQ,MAAM6C,IAAIwY,YAAY;AAAA,MACjDvY,IAAIgX,iBAAiB5J,MAAMlQ,MAAM8C,IAAIuY,YAAY;AAAA,IAAA;AAAA,IAEnDnY;AAAAA,IACAK,UAAU;AAAA,MACRC,MAAMsW,iBAAiB5J,MAAM3M,SAASC,MAAM6X,YAAY;AAAA,MACxD5X,IAAIqW,iBAAiB5J,MAAM3M,SAASE,IAAI4X,YAAY;AAAA,IAAA;AAAA,IAEtDjX,QAAQwX,uBAAuB1L,MAAM9L,QAAQ;AAAA,MAACgX;AAAAA,MAAQrB;AAAAA,MAAcrF;AAAAA,IAAAA,CAAU;AAAA,IAC9EjU;AAAAA,EAAAA;AAEJ;AAEA,SAASkb,oBACPzL,OACAkD,SAKe;AACf,QAAM;AAAA,IAACgI;AAAAA,IAAQ1G;AAAAA,IAAWqF;AAAAA,EAAAA,IAAgB3G,SAEpCyI,cAAuC;AAAA,IAC3ChZ,IAAIuY;AAAAA,IACJ1G;AAAAA,IACAqF;AAAAA,EAAAA,GAGIlX,KAAKiX,iBAAiB5J,MAAMrN,IAAIgZ,WAAW,GAE3CR,eAAwC;AAAA,IAC5CxY;AAAAA,IACA6R;AAAAA,IACAqF;AAAAA,EAAAA;AAGF,SAAO;AAAA,IACLlX;AAAAA,IACAC,IAAIgX,iBAAiB5J,MAAMpN,IAAIuY,YAAY;AAAA,IAC3CtY,QAAQ+W,iBAAiB5J,MAAMnN,QAAQsY,YAAY;AAAA,EAAA;AAEvD;AAEA,SAASG,uBACPtL,OACAkD,SAKqB;AACrB,QAAM0I,cAAc,CAAA;AAEpB,aAAW9L,OAAO3C,MAAAA;AAChByO,gBAAY9L,GAAG,IAAI+L,4BAA4B7L,MAAMF,GAAG,GAAGoD,OAAO;AAGpE,SAAO0I;AACT;AAEA,SAASC,4BACP7L,OACAkD,SAK6B;AAC7B,QAAM;AAAA,IAACgI;AAAAA,IAAQ1G,WAAWsH;AAAAA,IAAejC;AAAAA,EAAAA,IAAgB3G,SACnDsB,YAAYxE,MAAMxF,UAAU,YAE5BmR,cAAuC;AAAA,IAC3ChZ,IAAIuY;AAAAA,IACJ1G,WAAWsH;AAAAA,IACXjC;AAAAA,EAAAA,GAGIlX,KAAKiX,iBAAiB5J,MAAMrN,IAAIgZ,WAAW,GAE3CR,eAAwC;AAAA,IAC5CxY;AAAAA,IACA6R;AAAAA,IACAqF;AAAAA,EAAAA;AAGF,SAAO;AAAA,IACLrP,QAAQgK;AAAAA,IACR7R;AAAAA,IACAC,IAAIgX,iBAAiB5J,MAAMpN,IAAIuY,YAAY;AAAA,EAAA;AAE/C;AAEA,SAASI,sBACPvL,OACAkD,SAKoB;AACpB,QAAMa,aAAa,CAAA;AAEnB,aAAW1T,QAAQwM;AACjBkH,eAAW1T,IAAI,IAAI0b,2BAA2B/L,MAAM3P,IAAI,GAAG6S,OAAO;AAGpE,SAAOa;AACT;AAEA,SAASgI,2BACP/L,OACAkD,SAKwB;AACxB,QAAM;AAAA,IAACgI;AAAAA,IAAQ1G,WAAWsH;AAAAA,IAAejC;AAAAA,EAAAA,IAAgB3G,SAEnDsB,YAAYsH,eAEZH,cAAuC;AAAA,IAC3ChZ,IAAIuY;AAAAA,IACJ1G,WAAWsH;AAAAA,IACXjC;AAAAA,EAAAA,GAGIlX,KAAKiX,iBAAiB5J,MAAMrN,IAAIgZ,WAAW,GAE3CR,eAAwC;AAAA,IAC5CxY;AAAAA,IACA6R;AAAAA,IACAqF;AAAAA,EAAAA;AAGF,SAAO;AAAA,IACLlX;AAAAA,IACAyI,KAAKwO,iBAAiB5J,MAAM5E,KAAK+P,YAAY;AAAA,IAC7CvY,IAAIgX,iBAAiB5J,MAAMpN,IAAIuY,YAAY;AAAA,IAC3CzX,MAAMkW,iBAAiB5J,MAAMtM,MAAMyX,YAAY;AAAA,EAAA;AAEnD;AAEA,SAASC,uBACPpL,OACAkD,SAKqB;AACrB,SAAO;AAAA,IACLnT,SAASic,4BAA4BhM,MAAMjQ,SAASmT,OAAO;AAAA,IAC3D9R,OAAO4a,4BAA4BhM,MAAM5O,OAAO8R,OAAO;AAAA,IACvD7R,OAAO2a,4BAA4BhM,MAAM3O,OAAO6R,OAAO;AAAA,EAAA;AAE3D;AAEA,SAAS8I,4BACPhM,OACAkD,SAKyB;AACzB,QAAM+I,kBAAkB,CAAA;AAExB,aAAW5b,QAAQwM;AACjBoP,oBAAgB5b,IAAI,IAAI6b,6BAA6BlM,MAAM3P,IAAI,GAAG6S,OAAO;AAG3E,SAAO+I;AACT;AAEA,SAASC,6BACPlM,OACAkD,SAKyB;AACzB,SAAO;AAAA,IACL5S,SAAS6b,sBAAsBnM,MAAM1P,SAAS4S,OAAO;AAAA,IACrDzS,SAAS0b,sBAAsBnM,MAAMvP,SAASyS,OAAO;AAAA,IACrDxS,SAASyb,sBAAsBnM,MAAMtP,SAASwS,OAAO;AAAA,IACrDvS,UAAUwb,sBAAsBnM,MAAMrP,UAAUuS,OAAO;AAAA,IACvDtS,UAAUub,sBAAsBnM,MAAMpP,UAAUsS,OAAO;AAAA,EAAA;AAE3D;AAEA,SAASiJ,sBACPnM,OACAkD,SAKoB;AACpB,QAAM;AAAA,IAACgI;AAAAA,IAAQ1G,WAAWsH;AAAAA,IAAejC;AAAAA,EAAAA,IAAgB3G,SACnDsB,YAAYxE,MAAMxF,UAAU,YAE5BmR,cAAuC;AAAA,IAC3ChZ,IAAIuY;AAAAA,IACJ1G,WAAWsH;AAAAA,IACXjC;AAAAA,EAAAA,GAGIlX,KAAKiX,iBAAiB5J,MAAMrN,IAAIgZ,WAAW,GAE3CR,eAAwC;AAAA,IAC5CxY;AAAAA,IACA6R;AAAAA,IACAqF;AAAAA,EAAAA;AAGF,SAAO;AAAA,IACLrP,QAAQgK;AAAAA,IACR7Q,QAAQ;AAAA,MACNf,IAAIgX,iBAAiB5J,MAAMrM,OAAOf,IAAIuY,YAAY;AAAA,IAAA;AAAA,IAEpDjU,QAAQoU,uBAAuBtL,MAAM9I,QAAQ;AAAA,MAACgU,QAAQvY;AAAAA,MAAIkX;AAAAA,MAAcrF;AAAAA,IAAAA,CAAU;AAAA,IAClF7J,OAAO4Q,sBAAsBvL,MAAMrF,OAAO;AAAA,MAACuQ,QAAQvY;AAAAA,MAAIkX;AAAAA,MAAcrF;AAAAA,IAAAA,CAAU;AAAA,IAC/E7R;AAAAA,IACAE,QAAQ+W,iBAAiB5J,MAAMnN,QAAQsY,YAAY;AAAA,IACnDtX,MAAM;AAAA,MACJlB,IAAIiX,iBAAiB5J,MAAMnM,KAAKlB,IAAIwY,YAAY;AAAA,MAChDvY,IAAIgX,iBAAiB5J,MAAMnM,KAAKjB,IAAIuY,YAAY;AAAA,IAAA;AAAA,IAElDvY,IAAIgX,iBAAiB5J,MAAMpN,IAAIuY,YAAY;AAAA,IAC3CzX,MAAMkW,iBAAiB5J,MAAMtM,MAAMyX,YAAY;AAAA,IAC/CvX,MAAM;AAAA,MACJhB,IAAIgX,iBAAiB5J,MAAMpM,KAAKhB,IAAIuY,YAAY;AAAA,IAAA;AAAA,IAElDrb,OAAO;AAAA,MACL6C,IAAIiX,iBAAiB5J,MAAMlQ,MAAM6C,IAAIwY,YAAY;AAAA,MACjDvY,IAAIgX,iBAAiB5J,MAAMlQ,MAAM8C,IAAIuY,YAAY;AAAA,IAAA;AAAA,IAEnDrQ,KAAK;AAAA,MACHnI,IAAIiX,iBAAiB5J,MAAMlF,IAAInI,IAAIwY,YAAY;AAAA,MAC/CvY,IAAIgX,iBAAiB5J,MAAMlF,IAAIlI,IAAIuY,YAAY;AAAA,MAC/CtY,QAAQ+W,iBAAiB5J,MAAMlF,IAAIjI,QAAQsY,YAAY;AAAA,IAAA;AAAA,IAEzD9X,UAAU;AAAA,MACRC,MAAMsW,iBAAiB5J,MAAM3M,UAAUC,MAAM6X,YAAY;AAAA,MACzD5X,IAAIqW,iBAAiB5J,MAAM3M,UAAUE,IAAI4X,YAAY;AAAA,IAAA;AAAA,EACvD;AAEJ;AAEA,SAASK,sBACPxL,OACAkD,SAKoB;AACpB,SAAO;AAAA,IACLnT,SAASqc,4BAA4BpM,MAAMjQ,SAASmT,OAAO;AAAA,IAC3DzM,SAAS2V,4BAA4BpM,MAAMvJ,SAASyM,OAAO;AAAA,EAAA;AAE/D;AAEA,SAASkJ,4BACPpM,OACAkD,SAKwB;AACxB,SAAO;AAAA,IACL5S,SAAS+b,2BAA2BrM,MAAM1P,SAAS4S,OAAO;AAAA,IAC1DzS,SAAS4b,2BAA2BrM,MAAMvP,SAASyS,OAAO;AAAA,IAC1D1M,UAAU6V,2BAA2BrM,MAAMxJ,UAAU0M,OAAO;AAAA,IAC5DtS,UAAUyb,2BAA2BrM,MAAMpP,UAAUsS,OAAO;AAAA,EAAA;AAEhE;AAEA,SAASmJ,2BACPrM,OACAkD,SAKyB;AACzB,QAAM;AAAA,IAACgI;AAAAA,IAAQ1G,WAAWsH;AAAAA,IAAejC;AAAAA,EAAAA,IAAgB3G,SACnDsB,YAAYxE,MAAMxF,UAAU,YAC5BmR,cAAuC;AAAA,IAAC9B;AAAAA,IAAclX,IAAIuY;AAAAA,IAAQ1G,WAAWsH;AAAAA,EAAAA,GAC7EnZ,KAAKiX,iBAAiB5J,MAAMrN,IAAIgZ,WAAW,GAC3CR,eAAwC;AAAA,IAACtB;AAAAA,IAAclX;AAAAA,IAAI6R;AAAAA,EAAAA;AAEjE,SAAO;AAAA,IACLhK,QAAQgK;AAAAA,IACR7R;AAAAA,IACAE,QAAQ+W,iBAAiB5J,MAAMnN,QAAQsY,YAAY;AAAA,IACnDvY,IAAIgX,iBAAiB5J,MAAMpN,IAAIuY,YAAY;AAAA,IAC3Crb,OAAO;AAAA,MACL6C,IAAIiX,iBAAiB5J,MAAMlQ,MAAM6C,IAAIwY,YAAY;AAAA,IAAA;AAAA,IAEnDpX,aAAa6V,iBAAiB5J,MAAMjM,aAAaoX,YAAY;AAAA,EAAA;AAEjE;AAEA,SAASE,2BACPrL,OACAkD,SAKyB;AACzB,QAAMoJ,kBAAkB,CAAA;AAExB,aAAWjc,QAAQwM;AACjByP,oBAAgBjc,IAAI,IAAIkc,iCAAiCvM,MAAM3P,IAAI,GAAG6S,OAAO;AAG/E,SAAOoJ;AACT;AAEA,SAASC,iCACPvM,OACAkD,SAK6B;AAC7B,SAAO;AAAA,IACL5S,SAAS6b,sBAAsBnM,MAAM1P,SAAS4S,OAAO;AAAA,IACrDzS,SAAS0b,sBAAsBnM,MAAMvP,SAASyS,OAAO;AAAA,IACrDxS,SAASyb,sBAAsBnM,MAAMtP,SAASwS,OAAO;AAAA,IACrDvS,UAAUwb,sBAAsBnM,MAAMrP,UAAUuS,OAAO;AAAA,IACvDtS,UAAUub,sBAAsBnM,MAAMpP,UAAUsS,OAAO;AAAA,EAAA;AAE3D;AAEA,SAASwI,uBACP1L,OACAkD,SAKkB;AAClB,QAAM;AAAA,IAAC2G;AAAAA,IAAcqB;AAAAA,IAAQ1G;AAAAA,EAAAA,IAAatB,SACpCiI,eAAwC;AAAA,IAACtB;AAAAA,IAAclX,IAAIuY;AAAAA,IAAQ1G;AAAAA,EAAAA;AAEzE,SAAO;AAAA,IACLrQ,QAAQyV,iBAAiB5J,MAAM7L,QAAQgX,YAAY;AAAA,IACnD/W,UAAUwV,iBAAiB5J,MAAM5L,UAAU+W,YAAY;AAAA,IACvD9W,WAAWuV,iBAAiB5J,MAAM3L,WAAW8W,YAAY;AAAA,IACzD7W,WAAWsV,iBAAiB5J,MAAM1L,WAAW6W,YAAY;AAAA,IACzD5W,SAASqV,iBAAiB5J,MAAMzL,SAAS4W,YAAY;AAAA,IACrD3W,SAASoV,iBAAiB5J,MAAMxL,SAAS2W,YAAY;AAAA,IACrD1W,OAAOmV,iBAAiB5J,MAAMvL,OAAO0W,YAAY;AAAA,IACjDzW,MAAMkV,iBAAiB5J,MAAMtL,MAAMyW,YAAY;AAAA,IAC/CxW,OAAOiV,iBAAiB5J,MAAMrL,OAAOwW,YAAY;AAAA,IACjDvW,WAAWgV,iBAAiB5J,MAAMpL,WAAWuW,YAAY;AAAA,IACzDtW,SAAS+U,iBAAiB5J,MAAMnL,SAASsW,YAAY;AAAA,IACrDrW,UAAU8U,iBAAiB5J,MAAMlL,UAAUqW,YAAY;AAAA,IACvDpW,SAAS6U,iBAAiB5J,MAAMjL,SAASoW,YAAY;AAAA,IACrDnW,SAAS4U,iBAAiB5J,MAAMhL,SAASmW,YAAY;AAAA,IACrDlW,QAAQ2U,iBAAiB5J,MAAM/K,QAAQkW,YAAY;AAAA,IACnDjW,UAAU0U,iBAAiB5J,MAAM9K,UAAUiW,YAAY;AAAA,IACvDhW,SAASyU,iBAAiB5J,MAAM7K,SAASgW,YAAY;AAAA,IACrD/V,IAAIwU,iBAAiB5J,MAAM5K,IAAI+V,YAAY;AAAA,IAC3C9V,WAAWuU,iBAAiB5J,MAAM3K,WAAW8V,YAAY;AAAA,IACzD7V,UAAUsU,iBAAiB5J,MAAM1K,UAAU6V,YAAY;AAAA,IACvD5V,SAASqU,iBAAiB5J,MAAMzK,SAAS4V,YAAY;AAAA,IACrD3V,QAAQoU,iBAAiB5J,MAAMxK,QAAQ2V,YAAY;AAAA,IACnD1V,UAAUmU,iBAAiB5J,MAAMvK,UAAU0V,YAAY;AAAA,IACvDzV,QAAQkU,iBAAiB5J,MAAMtK,QAAQyV,YAAY;AAAA,IACnDxV,UAAUiU,iBAAiB5J,MAAMrK,UAAUwV,YAAY;AAAA,IACvDvV,aAAagU,iBAAiB5J,MAAMpK,aAAauV,YAAY;AAAA,IAC7DtV,eAAe+T,iBAAiB5J,MAAMnK,eAAesV,YAAY;AAAA,IACjErV,aAAa8T,iBAAiB5J,MAAMlK,aAAaqV,YAAY;AAAA,IAC7DpV,OAAO6T,iBAAiB5J,MAAMjK,OAAOoV,YAAY;AAAA,IACjDnV,UAAU4T,iBAAiB5J,MAAMhK,UAAUmV,YAAY;AAAA,IACvDlV,QAAQ2T,iBAAiB5J,MAAM/J,QAAQkV,YAAY;AAAA,IACnDjV,QAAQ0T,iBAAiB5J,MAAM9J,QAAQiV,YAAY;AAAA,IACnDhV,KAAKyT,iBAAiB5J,MAAM7J,KAAKgV,YAAY;AAAA,IAC7C/U,MAAMwT,iBAAiB5J,MAAM5J,MAAM+U,YAAY;AAAA,IAC/C9U,KAAKuT,iBAAiB5J,MAAM3J,KAAK8U,YAAY;AAAA,IAC7C7U,UAAUsT,iBAAiB5J,MAAM1J,UAAU6U,YAAY;AAAA,EAAA;AAE3D;AC1gBO,SAASqB,WAAWzJ,QAAiC;AAC1D,QAAM0J,aAAa3J,gBAAgBC,MAAM,GAEnCrH,KAAmB;AAAA,IACvBE,UAAU;AAAA,IACV1E,QAAQ6L,QAAQ7L,UAAUD,mBAAmBC;AAAAA,IAC7ChG,QAAQ6R,QAAQ7R,UAAU+F,mBAAmB/F;AAAAA,IAC7CK,MAAMwR,QAAQxR,QAAQ0F,mBAAmB1F;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAMzCiC,OAAO4W,wBAAwBqC,YAAY1J,MAAM;AAAA,IACjDpL,WAAWoL,QAAQpL,aAAaV,mBAAmBU;AAAAA,IACnDkE,MAAMkH,QAAQlH,QAAQ5C;AAAAA,IACtBnF,OAAOiP,QAAQjP,SAASmD,mBAAmBnD;AAAAA,IAC3C+D,OAAOkL,QAAQlL,SAASZ,mBAAmBY;AAAAA,IAC3CD,OAAOmL,QAAQnL,SAASX,mBAAmBW;AAAAA,IAC3CM,QAAQ6K,QAAQ7K,UAAUjB,mBAAmBiB;AAAAA,IAC7ClF,QAAQ+P,QAAQ/P,UAAUiE,mBAAmBjE;AAAAA,IAC7CmF,OAAO4K,QAAQ5K,SAASlB,mBAAmBkB;AAAAA,IAC3CW,OAAOiK,QAAQjK,SAAS7B,mBAAmB6B;AAAAA,EAAAA;AAG7C,SAAOuD,MAAMX,EAAE;AACjB;ACzBO,SAASgR,mBAAmBlZ,QAA6C;AAC9E,MAAI,aAAaA,OAAMmH;AACrB,WAAOnH;AAIT,QAAM9B,UAAS8B;AAEf,SAAO;AAAA,IACL,GAAG9B;AAAAA,IACHiJ,OAAO;AAAA,MACL,GAAGjJ,QAAOiJ;AAAAA,MACVO,SAASxJ,QAAOiJ,MAAM5K;AAAAA,MACtBoL,SAASzJ,QAAOiJ,MAAM1K;AAAAA,IAAAA;AAAAA,IAExBiB,QAAQ;AAAA,MACNG,OAAO;AAAA,QACL,GAAGK,QAAOR,OAAOG;AAAAA,QACjB6J,SAASxJ,QAAOR,OAAOG,MAAMtB;AAAAA,QAC7BoL,SAASzJ,QAAOR,OAAOG,MAAMpB;AAAAA,MAAAA;AAAAA,MAE/BF,SAAS;AAAA,QACP,GAAG2B,QAAOR,OAAOnB;AAAAA,QACjBmL,SAASxJ,QAAOR,OAAOnB,QAAQA;AAAAA,QAC/BoL,SAASzJ,QAAOR,OAAOnB,QAAQE;AAAAA,MAAAA;AAAAA,MAEjCmB,OAAO;AAAA,QACL,GAAGM,QAAOR,OAAOE;AAAAA,QACjB8J,SAASxJ,QAAOR,OAAOE,MAAMrB;AAAAA,QAC7BoL,SAASzJ,QAAOR,OAAOE,MAAMnB;AAAAA,MAAAA;AAAAA,IAC/B;AAAA,IAEFM,YAAY;AAAA,MACV,GAAGmB,QAAOnB;AAAAA,MACV2K,SAASxJ,QAAOnB,WAAWR;AAAAA,MAC3BoL,SAASzJ,QAAOnB,WAAWN;AAAAA,IAAAA;AAAAA,EAC7B;AAEJ;ACnCA,MAAM+J,4BAAY2S,IAAAA;AAMX,SAASC,eACd1Q,WACAsE,QACAnQ,MACO;AACP,QAAMiM,cAAcuQ,gBAAgB3Q,WAAWsE,QAAQnQ,IAAI;AAE3D,MAAIiM,YAAa,QAAOA;AAExB,QAAMtB,KAAKmB,MAAMD,SAAS,IAAIG,MAAMH,SAAS,IAAIA,WAC3CR,KAAKS,MAAMD,SAAS,IAAIA,YAAYE,MAAMF,SAAS,GAEnD4Q,iBAAiB9R,GAAGxH,MAAMgN,MAAM,KAAKxF,GAAGxH,MAAM3B,OAC9CsI,WAAY2S,eAA8Czc,IAAI,KAAKyc,eAAe/c,SAClFgd,WAAW/R,GAAGnD,SAASZ,mBAAmBY,OAE1CmV,iBAAiBtR,GAAGlI,MAAMgN,MAAM,KAAK9E,GAAGlI,MAAM3B,OAC9C0I,WAAWyS,eAAe3c,IAAI,KAAK2c,eAAejd,SAClDkd,aAAaP,mBAAmBnS,QAAQ,GACxC2S,WAAWxR,GAAG7D,SAASZ,mBAAmBY,OAE1C2D,QAAe;AAAA,IACnBC,QAAQ;AAAA,MACN,GAAGT;AAAAA,MACHxH,OAAO2G;AAAAA,MACPtC,OAAOkV;AAAAA,MACPrR,IAAI;AAAA,QACF,GAAGA;AAAAA,QACHC,WAAW;AAAA,QACXnI,OAAOyZ;AAAAA,QACPpV,OAAOqV;AAAAA,MAAAA;AAAAA,IACT;AAAA,EACF;AAGFC,SAAAA,gBAAgBjR,WAAWsE,QAAQnQ,MAAMmL,KAAK,GAEvCA;AACT;AAEA,SAASqR,gBACPO,WACA5M,QACAnQ,MACA;AACA,QAAMgd,cAAcrT,MAAMK,IAAImG,MAAM;AAEpC,MAAI,CAAC6M,YAAa;AAElB,QAAMC,YAAYD,YAAYhT,IAAIhK,IAAI;AAEtC,MAAKid;AAEL,WAAOA,UAAUjT,IAAI+S,SAAS;AAChC;AAEA,SAASD,gBACPC,WACA5M,QACAnQ,MACAmL,OACA;AACKxB,QAAMuT,IAAI/M,MAAM,KAAGxG,MAAMe,IAAIyF,QAAQ,oBAAImM,KAAK;AAEnD,QAAMU,cAAcrT,MAAMK,IAAImG,MAAM;AAE/B6M,cAAYE,IAAIld,IAAI,KAAGgd,YAAYtS,IAAI1K,MAAM,oBAAI4J,QAAAA,CAAS,GAE7CoT,YAAYhT,IAAIhK,IAAI,EAE5B0K,IAAIqS,WAAW5R,KAAK;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}