@sanity/ui 2.0.0-alpha.3 → 2.0.0-alpha.30

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 (637) hide show
  1. package/dist/index.cjs.mjs +37 -10
  2. package/dist/index.d.ts +445 -659
  3. package/dist/index.esm.js +735 -2923
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +1051 -3032
  6. package/dist/index.js.map +1 -1
  7. package/dist/theme.cjs.mjs +48 -0
  8. package/dist/theme.d.ts +1205 -0
  9. package/dist/theme.esm.js +4113 -0
  10. package/dist/theme.esm.js.map +1 -0
  11. package/dist/theme.js +4162 -0
  12. package/dist/theme.js.map +1 -0
  13. package/exports/index.ts +1 -0
  14. package/exports/theme.ts +1 -0
  15. package/package.json +56 -35
  16. package/src/{__workshop__ → core/__workshop__}/constants.ts +1 -3
  17. package/src/core/_compat.ts +115 -0
  18. package/src/{components → core/components}/autocomplete/__workshop__/async.tsx +4 -5
  19. package/src/{components → core/components}/autocomplete/__workshop__/constrainedHeight.tsx +27 -22
  20. package/src/{components → core/components}/autocomplete/__workshop__/custom.tsx +36 -31
  21. package/src/{components → core/components}/autocomplete/__workshop__/example.tsx +2 -2
  22. package/src/{components → core/components}/autocomplete/__workshop__/focusAndBlur.tsx +5 -3
  23. package/src/{components → core/components}/autocomplete/autocomplete.tsx +7 -1
  24. package/src/{components → core/components}/dialog/__workshop__/activate.tsx +0 -1
  25. package/src/{components → core/components}/dialog/__workshop__/layering.tsx +5 -1
  26. package/src/{components → core/components}/dialog/__workshop__/panes.tsx +2 -7
  27. package/src/{components → core/components}/dialog/dialog.tsx +25 -24
  28. package/src/{components → core/components}/dialog/styles.ts +40 -1
  29. package/src/{components → core/components}/hotkeys/hotkeys.tsx +2 -0
  30. package/src/{components → core/components}/menu/__workshop__/asComponent.tsx +4 -4
  31. package/src/{components → core/components}/menu/__workshop__/customMenuItem.tsx +9 -3
  32. package/src/{components → core/components}/menu/__workshop__/menuButton.tsx +1 -1
  33. package/src/{components → core/components}/menu/menu.test.tsx +1 -1
  34. package/src/{components → core/components}/menu/menu.tsx +2 -0
  35. package/src/{components → core/components}/menu/menuButton.tsx +3 -1
  36. package/src/{components → core/components}/menu/menuGroup.tsx +22 -23
  37. package/src/{components → core/components}/menu/menuItem.tsx +29 -35
  38. package/src/{components → core/components}/skeleton/textSkeleton.tsx +1 -1
  39. package/src/{components → core/components}/tab/tab.tsx +4 -2
  40. package/src/{components → core/components}/toast/toast.test.tsx +1 -1
  41. package/src/{components → core/components}/toast/toast.tsx +13 -4
  42. package/src/{components → core/components}/tree/__workshop__/tabFromElement.tsx +1 -1
  43. package/src/{components → core/components}/tree/style.ts +6 -6
  44. package/src/{components → core/components}/tree/treeItem.tsx +3 -3
  45. package/src/{constants.ts → core/constants.ts} +1 -0
  46. package/src/{hooks → core/hooks}/useElementRect/__workshop__/example.tsx +3 -1
  47. package/src/{hooks → core/hooks}/useMediaIndex/__workshop__/test.tsx +1 -1
  48. package/src/{hooks → core/hooks}/useMediaIndex/useMediaIndex.test.tsx +2 -1
  49. package/src/{index.ts → core/index.ts} +2 -0
  50. package/src/{lib → core/lib}/isRecord.ts +1 -1
  51. package/src/{primitives → core/primitives}/_selectable/style.ts +2 -1
  52. package/src/{primitives → core/primitives}/avatar/avatar.tsx +35 -21
  53. package/src/{primitives → core/primitives}/avatar/avatarCounter.tsx +3 -3
  54. package/src/{primitives → core/primitives}/avatar/styles.ts +15 -7
  55. package/src/{primitives → core/primitives}/avatar/types.ts +2 -1
  56. package/src/{primitives → core/primitives}/badge/badge.test.tsx +1 -1
  57. package/src/{primitives → core/primitives}/badge/badge.tsx +10 -5
  58. package/src/core/primitives/badge/styles.ts +20 -0
  59. package/src/{primitives → core/primitives}/badge/types.ts +1 -2
  60. package/src/{primitives → core/primitives}/box/box.tsx +3 -0
  61. package/src/{primitives → core/primitives}/button/__workshop__/sanityUploadButton.tsx +2 -1
  62. package/src/{primitives → core/primitives}/button/__workshop__/stacked.tsx +1 -1
  63. package/src/{primitives → core/primitives}/button/button.test.tsx +1 -1
  64. package/src/{primitives → core/primitives}/button/button.tsx +8 -4
  65. package/src/{primitives → core/primitives}/button/styles.ts +27 -10
  66. package/src/{primitives → core/primitives}/card/__workshop__/asButton.tsx +6 -6
  67. package/src/{primitives → core/primitives}/card/__workshop__/asComponent.tsx +1 -1
  68. package/src/{primitives → core/primitives}/card/__workshop__/selected.tsx +2 -12
  69. package/src/{primitives → core/primitives}/card/card.tsx +6 -1
  70. package/src/{primitives → core/primitives}/card/styles.ts +2 -0
  71. package/src/{primitives → core/primitives}/card/types.ts +1 -1
  72. package/src/{primitives → core/primitives}/checkbox/__workshop__/example.tsx +1 -1
  73. package/src/{primitives → core/primitives}/checkbox/__workshop__/props.tsx +1 -1
  74. package/src/{primitives → core/primitives}/checkbox/__workshop__/readOnly.tsx +1 -1
  75. package/src/{primitives → core/primitives}/checkbox/checkbox.tsx +2 -0
  76. package/src/{primitives → core/primitives}/checkbox/styles.ts +4 -3
  77. package/src/{primitives → core/primitives}/code/code.tsx +1 -0
  78. package/src/{primitives → core/primitives}/container/container.tsx +2 -0
  79. package/src/{primitives → core/primitives}/container/styles.ts +1 -1
  80. package/src/{primitives → core/primitives}/flex/flex.tsx +2 -0
  81. package/src/{primitives → core/primitives}/grid/grid.tsx +2 -0
  82. package/src/{primitives → core/primitives}/heading/heading.tsx +3 -1
  83. package/src/{primitives → core/primitives}/inline/inline.tsx +3 -0
  84. package/src/{primitives → core/primitives}/inline/styles.ts +1 -1
  85. package/src/{primitives → core/primitives}/kbd/kbd.tsx +2 -0
  86. package/src/{primitives → core/primitives}/label/label.tsx +3 -1
  87. package/src/{primitives → core/primitives}/popover/__workshop__/RecursiveStory.tsx +2 -9
  88. package/src/{primitives → core/primitives}/popover/__workshop__/TestStory.tsx +6 -3
  89. package/src/{primitives → core/primitives}/popover/constants.ts +3 -2
  90. package/src/{primitives → core/primitives}/popover/helpers.ts +1 -1
  91. package/src/{primitives → core/primitives}/popover/popover.tsx +12 -8
  92. package/src/{primitives → core/primitives}/popover/popoverCard.tsx +22 -16
  93. package/src/{primitives → core/primitives}/radio/radio.tsx +2 -0
  94. package/src/{primitives → core/primitives}/radio/styles.ts +1 -1
  95. package/src/{primitives → core/primitives}/select/select.tsx +2 -0
  96. package/src/{primitives → core/primitives}/select/styles.ts +4 -2
  97. package/src/{primitives → core/primitives}/spinner/spinner.tsx +2 -0
  98. package/src/{primitives → core/primitives}/stack/stack.tsx +2 -0
  99. package/src/{primitives → core/primitives}/stack/styles.ts +1 -1
  100. package/src/{primitives → core/primitives}/switch/__workshop__/example.tsx +1 -1
  101. package/src/{primitives → core/primitives}/switch/styles.ts +2 -2
  102. package/src/{primitives → core/primitives}/switch/switch.tsx +4 -0
  103. package/src/{primitives → core/primitives}/text/__workshop__/colored.tsx +2 -1
  104. package/src/{primitives → core/primitives}/text/text.tsx +4 -1
  105. package/src/{primitives → core/primitives}/textArea/__workshop__/plain.tsx +1 -1
  106. package/src/{primitives → core/primitives}/textArea/textArea.tsx +6 -2
  107. package/src/{primitives → core/primitives}/textInput/__workshop__/plain.tsx +1 -1
  108. package/src/{primitives → core/primitives}/textInput/__workshop__/states.tsx +3 -3
  109. package/src/{primitives → core/primitives}/textInput/textInput.tsx +12 -2
  110. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +99 -0
  111. package/src/core/primitives/tooltip/__workshop__/index.ts +29 -0
  112. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +73 -0
  113. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +85 -0
  114. package/src/core/primitives/tooltip/conditionalWrapper.tsx +15 -0
  115. package/src/core/primitives/tooltip/constants.ts +23 -0
  116. package/src/{primitives → core/primitives}/tooltip/tooltip.test.tsx +192 -20
  117. package/src/{primitives → core/primitives}/tooltip/tooltip.tsx +199 -76
  118. package/src/{primitives → core/primitives}/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +4 -10
  119. package/src/{primitives → core/primitives}/types.ts +4 -0
  120. package/src/{styles → core/styles}/border/borderStyle.ts +16 -13
  121. package/src/{styles → core/styles}/box/boxStyle.ts +1 -1
  122. package/src/{styles → core/styles}/colorVars/colorVarsStyle.ts +3 -3
  123. package/src/{styles → core/styles}/flex/flexItemStyle.ts +1 -1
  124. package/src/{styles → core/styles}/flex/flexStyle.ts +1 -1
  125. package/src/{styles → core/styles}/focusRing/index.ts +2 -2
  126. package/src/{styles → core/styles}/font/codeFontStyle.ts +1 -1
  127. package/src/{styles → core/styles}/font/headingFontStyle.ts +1 -1
  128. package/src/{styles → core/styles}/font/labelFontStyle.ts +1 -1
  129. package/src/{styles → core/styles}/font/responsiveFont.ts +2 -2
  130. package/src/{styles → core/styles}/font/textAlignStyle.ts +1 -1
  131. package/src/{styles → core/styles}/font/textFontStyle.ts +1 -1
  132. package/src/{styles → core/styles}/font/types.ts +1 -1
  133. package/src/{styles → core/styles}/grid/gridItemStyle.ts +1 -1
  134. package/src/{styles → core/styles}/grid/gridStyle.ts +1 -1
  135. package/src/{styles → core/styles}/helpers.ts +2 -2
  136. package/src/{styles → core/styles}/input/responsiveInputPaddingStyle.ts +1 -1
  137. package/src/{styles → core/styles}/input/textInputStyle.ts +13 -8
  138. package/src/{styles → core/styles}/margin/marginStyle.ts +1 -1
  139. package/src/{styles → core/styles}/margin/marginsStyle.test.ts +1 -1
  140. package/src/{styles → core/styles}/padding/paddingStyle.test.ts +1 -1
  141. package/src/{styles → core/styles}/padding/paddingStyle.ts +1 -1
  142. package/src/{styles → core/styles}/radius/radiusStyle.ts +1 -1
  143. package/src/{styles → core/styles}/shadow/shadowStyle.ts +9 -7
  144. package/src/{styles → core/styles}/types.ts +1 -1
  145. package/src/core/theme/__workshop__/build/Root.tsx +346 -0
  146. package/src/core/theme/__workshop__/build/helpers.ts +46 -0
  147. package/src/core/theme/__workshop__/build/story.tsx +457 -0
  148. package/src/{theme → core/theme}/__workshop__/canvas.tsx +87 -113
  149. package/src/{theme → core/theme}/__workshop__/color.tsx +3 -6
  150. package/src/{theme → core/theme}/__workshop__/index.ts +5 -0
  151. package/src/{theme → core/theme}/defaults.ts +1 -1
  152. package/src/core/theme/index.ts +5 -0
  153. package/src/{theme → core/theme}/theme.test.tsx +2 -2
  154. package/src/{theme → core/theme}/themeColorProvider.tsx +2 -2
  155. package/src/{theme → core/theme}/themeProvider.tsx +3 -3
  156. package/src/core/theme/types.ts +11 -0
  157. package/src/{theme → core/theme}/useRootTheme.ts +1 -2
  158. package/src/{theme → core/theme}/useTheme.ts +1 -2
  159. package/src/core/types/badge.ts +12 -0
  160. package/src/core/types/button.ts +22 -0
  161. package/src/core/types/card.ts +6 -0
  162. package/src/{types → core/types}/index.ts +0 -1
  163. package/src/core/types/selectable.ts +6 -0
  164. package/src/core/utils/arrow/arrow.tsx +121 -0
  165. package/src/core/utils/arrow/cmds.ts +91 -0
  166. package/src/core/utils/arrow/index.ts +1 -0
  167. package/src/{utils → core/utils}/boundaryElement/__workshop__/plain.tsx +2 -6
  168. package/src/{utils → core/utils}/boundaryElement/boundaryElement.test.tsx +1 -1
  169. package/src/{utils → core/utils}/index.ts +1 -0
  170. package/src/{utils → core/utils}/layer/__workshop__/_debug.tsx +1 -1
  171. package/src/{utils → core/utils}/layer/layer.test.tsx +1 -1
  172. package/src/{utils → core/utils}/portal/__workshop__/named.tsx +3 -3
  173. package/src/{utils → core/utils}/portal/portal.test.tsx +1 -1
  174. package/src/theme/{lib/theme/color/selectable → build/_deprecated/color/_selectable}/createSelectableTones.ts +7 -4
  175. package/src/theme/{lib/theme/color/solid → build/_deprecated/color/_solid}/createSolidTones.ts +1 -3
  176. package/src/theme/{lib/theme → build/_deprecated}/color/button/createButtonModes.ts +6 -4
  177. package/src/theme/{lib/theme → build/_deprecated}/color/button/createButtonTones.ts +7 -4
  178. package/src/theme/{lib/theme → build/_deprecated}/color/card/createCardStates.ts +7 -5
  179. package/src/theme/{lib/theme → build/_deprecated}/color/color.test.ts +1 -1
  180. package/src/theme/{lib/theme → build/_deprecated}/color/defaults.ts +7 -7
  181. package/src/theme/{lib/theme → build/_deprecated}/color/factory.ts +25 -21
  182. package/src/theme/build/_deprecated/color/index.ts +1 -0
  183. package/src/theme/{lib/theme → build/_deprecated}/color/input/createInputModes.ts +1 -4
  184. package/src/theme/{lib/theme → build/_deprecated}/color/muted/createMuted.ts +2 -4
  185. package/src/theme/{lib/theme → build/_deprecated}/color/spot/createSpot.ts +1 -2
  186. package/src/theme/build/buildColorTheme.test.ts +184 -0
  187. package/src/theme/build/buildColorTheme.ts +537 -0
  188. package/src/theme/build/buildTheme.test.ts +85 -0
  189. package/src/theme/build/buildTheme.ts +28 -0
  190. package/src/theme/build/colorToken.ts +37 -0
  191. package/src/theme/build/defaults/colorPalette.ts +5 -0
  192. package/src/theme/build/defaults/colorTokens.ts +499 -0
  193. package/src/theme/{studioTheme/theme.ts → build/defaults/config.ts} +27 -28
  194. package/src/theme/build/defaults/fonts.ts +219 -0
  195. package/src/theme/build/index.ts +3 -0
  196. package/src/theme/{lib → build/lib}/color-fns/blend/index.ts +1 -0
  197. package/src/theme/build/lib/color-fns/blend/mix.ts +21 -0
  198. package/src/theme/build/lib/color-fns/blend/multiply.ts +18 -0
  199. package/src/theme/build/lib/color-fns/blend/screen.ts +18 -0
  200. package/src/theme/{lib → build/lib}/color-fns/color-fns.test.ts +10 -7
  201. package/src/theme/build/lib/color-fns/contrastRatio.ts +30 -0
  202. package/src/theme/{lib → build/lib}/color-fns/convert.ts +25 -2
  203. package/src/theme/{lib → build/lib}/color-fns/index.ts +2 -1
  204. package/src/theme/{lib → build/lib}/color-fns/parse.ts +7 -3
  205. package/src/theme/{lib/color-fns/helpers → build/lib/color-fns}/rgba.ts +1 -1
  206. package/src/theme/{lib → build/lib}/color-fns/types.ts +11 -0
  207. package/src/theme/build/lib/utils.ts +19 -0
  208. package/src/theme/build/merge.ts +23 -0
  209. package/src/theme/build/mixThemeColor.test.ts +21 -0
  210. package/src/theme/build/mixThemeColor.ts +53 -0
  211. package/src/theme/build/renderColorTheme.ts +544 -0
  212. package/src/theme/build/renderColorValue.ts +70 -0
  213. package/src/theme/build/resolveColorTokens.ts +352 -0
  214. package/src/theme/config/helpers.ts +47 -0
  215. package/src/theme/config/index.ts +4 -0
  216. package/src/theme/config/system.ts +83 -0
  217. package/src/theme/config/tokens/color/types.ts +112 -0
  218. package/src/theme/config/tokens/index.ts +4 -0
  219. package/src/theme/config/tokens/parseTokenKey.test.ts +64 -0
  220. package/src/theme/config/tokens/parseTokenKey.ts +66 -0
  221. package/src/theme/config/tokens/parseTokenValue.test.ts +45 -0
  222. package/src/theme/config/tokens/parseTokenValue.ts +102 -0
  223. package/src/theme/config/tokens/types.ts +44 -0
  224. package/src/theme/config/types.ts +51 -0
  225. package/src/theme/index.ts +4 -8
  226. package/src/theme/system/_system.ts +95 -0
  227. package/src/theme/system/avatar.ts +14 -0
  228. package/src/theme/system/color/_constants.ts +38 -0
  229. package/src/theme/{lib/theme/color/muted/types.ts → system/color/_deprecated/muted.ts} +3 -1
  230. package/src/theme/{lib/theme/color/solid/types.ts → system/color/_deprecated/solid.ts} +3 -1
  231. package/src/theme/system/color/_deprecated/spot.ts +13 -0
  232. package/src/theme/{lib/theme/color/_generic/types.ts → system/color/_generic.ts} +5 -1
  233. package/src/theme/system/color/_helpers.ts +23 -0
  234. package/src/theme/system/color/_system.ts +100 -0
  235. package/src/theme/system/color/avatar.ts +13 -0
  236. package/src/theme/system/color/badge.ts +9 -0
  237. package/src/theme/{lib/theme/color/button/types.ts → system/color/button.ts} +6 -11
  238. package/src/theme/system/color/card.ts +18 -0
  239. package/src/theme/system/color/index.ts +20 -0
  240. package/src/theme/{lib/theme/color/input/types.ts → system/color/input.ts} +3 -0
  241. package/src/theme/system/color/kbd.ts +8 -0
  242. package/src/theme/{lib/theme/color/selectable/types.ts → system/color/selectable.ts} +1 -1
  243. package/src/theme/{lib/theme → system}/index.ts +2 -1
  244. package/src/theme/{lib/theme → system}/input.ts +6 -6
  245. package/src/theme/system/shadow.ts +24 -0
  246. package/src/theme/themes/studio/config.ts +69 -0
  247. package/src/theme/{studioTheme → themes/studio}/fonts.ts +50 -50
  248. package/src/theme/themes/studio/index.ts +1 -0
  249. package/src/theme/themes/studio/studioTheme.test.ts +27 -0
  250. package/src/theme/themes/studio/studioTheme.ts +8 -0
  251. package/src/primitives/badge/styles.ts +0 -20
  252. package/src/primitives/popover/popoverArrow.tsx +0 -76
  253. package/src/primitives/tooltip/__workshop__/index.ts +0 -14
  254. package/src/primitives/tooltip/constants.ts +0 -16
  255. package/src/primitives/tooltip/tooltipArrow.tsx +0 -89
  256. package/src/theme/lib/color-fns/blend/multiply.ts +0 -22
  257. package/src/theme/lib/color-fns/blend/screen.ts +0 -22
  258. package/src/theme/lib/color-fns/helpers/index.ts +0 -1
  259. package/src/theme/lib/theme/avatar.ts +0 -12
  260. package/src/theme/lib/theme/color/base/index.ts +0 -1
  261. package/src/theme/lib/theme/color/button/index.ts +0 -1
  262. package/src/theme/lib/theme/color/card/index.ts +0 -1
  263. package/src/theme/lib/theme/color/card/types.ts +0 -18
  264. package/src/theme/lib/theme/color/index.ts +0 -14
  265. package/src/theme/lib/theme/color/input/index.ts +0 -1
  266. package/src/theme/lib/theme/color/muted/index.ts +0 -1
  267. package/src/theme/lib/theme/color/selectable/index.ts +0 -1
  268. package/src/theme/lib/theme/color/solid/index.ts +0 -1
  269. package/src/theme/lib/theme/color/spot/index.ts +0 -1
  270. package/src/theme/lib/theme/color/spot/types.ts +0 -28
  271. package/src/theme/lib/theme/color/syntax/index.ts +0 -1
  272. package/src/theme/lib/theme/color/types.ts +0 -72
  273. package/src/theme/lib/theme/shadow.ts +0 -20
  274. package/src/theme/lib/theme/theme.ts +0 -43
  275. package/src/theme/studioTheme/color.ts +0 -650
  276. package/src/theme/studioTheme/helpers.ts +0 -17
  277. package/src/theme/studioTheme/index.ts +0 -1
  278. package/src/theme/studioTheme/tints.ts +0 -152
  279. package/src/theme/types.ts +0 -47
  280. package/src/types/badge.ts +0 -9
  281. package/src/types/button.ts +0 -14
  282. package/src/types/card.ts +0 -6
  283. package/src/types/selectable.ts +0 -4
  284. package/src/types/styled.ts +0 -9
  285. /package/src/{components → core/components}/autocomplete/__fixtures__/countries.ts +0 -0
  286. /package/src/{components → core/components}/autocomplete/__mocks__/apiStore.ts +0 -0
  287. /package/src/{components → core/components}/autocomplete/__workshop__/.eslintrc +0 -0
  288. /package/src/{components → core/components}/autocomplete/__workshop__/fullscreen.tsx +0 -0
  289. /package/src/{components → core/components}/autocomplete/__workshop__/index.ts +0 -0
  290. /package/src/{components → core/components}/autocomplete/__workshop__/types.ts +0 -0
  291. /package/src/{components → core/components}/autocomplete/autocomplete.styles.tsx +0 -0
  292. /package/src/{components → core/components}/autocomplete/autocompleteOption.tsx +0 -0
  293. /package/src/{components → core/components}/autocomplete/autocompleteReducer.ts +0 -0
  294. /package/src/{components → core/components}/autocomplete/constants.ts +0 -0
  295. /package/src/{components → core/components}/autocomplete/index.ts +0 -0
  296. /package/src/{components → core/components}/autocomplete/types.ts +0 -0
  297. /package/src/{components → core/components}/breadcrumbs/__workshop__/.eslintrc +0 -0
  298. /package/src/{components → core/components}/breadcrumbs/__workshop__/example.tsx +0 -0
  299. /package/src/{components → core/components}/breadcrumbs/__workshop__/index.ts +0 -0
  300. /package/src/{components → core/components}/breadcrumbs/breadcrumbs.styles.ts +0 -0
  301. /package/src/{components → core/components}/breadcrumbs/breadcrumbs.tsx +0 -0
  302. /package/src/{components → core/components}/breadcrumbs/index.ts +0 -0
  303. /package/src/{components → core/components}/dialog/__workshop__/.eslintrc +0 -0
  304. /package/src/{components → core/components}/dialog/__workshop__/autoFocus.tsx +0 -0
  305. /package/src/{components → core/components}/dialog/__workshop__/index.ts +0 -0
  306. /package/src/{components → core/components}/dialog/__workshop__/nested.tsx +0 -0
  307. /package/src/{components → core/components}/dialog/__workshop__/onScroll.tsx +0 -0
  308. /package/src/{components → core/components}/dialog/__workshop__/position.tsx +0 -0
  309. /package/src/{components → core/components}/dialog/__workshop__/props.tsx +0 -0
  310. /package/src/{components → core/components}/dialog/__workshop__/provider.tsx +0 -0
  311. /package/src/{components → core/components}/dialog/__workshop__/wrapped.tsx +0 -0
  312. /package/src/{components → core/components}/dialog/dialogContext.ts +0 -0
  313. /package/src/{components → core/components}/dialog/dialogProvider.tsx +0 -0
  314. /package/src/{components → core/components}/dialog/index.ts +0 -0
  315. /package/src/{components → core/components}/dialog/useDialog.ts +0 -0
  316. /package/src/{components → core/components}/hotkeys/__workshop__/.eslintrc +0 -0
  317. /package/src/{components → core/components}/hotkeys/__workshop__/index.ts +0 -0
  318. /package/src/{components → core/components}/hotkeys/__workshop__/plain.tsx +0 -0
  319. /package/src/{components → core/components}/hotkeys/index.ts +0 -0
  320. /package/src/{components → core/components}/index.ts +0 -0
  321. /package/src/{components → core/components}/menu/__workshop__/.eslintrc +0 -0
  322. /package/src/{components → core/components}/menu/__workshop__/closableMenuButton.tsx +0 -0
  323. /package/src/{components → core/components}/menu/__workshop__/constrainedInBoundary.tsx +0 -0
  324. /package/src/{components → core/components}/menu/__workshop__/disableFocusOnClose.tsx +0 -0
  325. /package/src/{components → core/components}/menu/__workshop__/groups.tsx +0 -0
  326. /package/src/{components → core/components}/menu/__workshop__/index.ts +0 -0
  327. /package/src/{components → core/components}/menu/__workshop__/menuGroupRight.tsx +0 -0
  328. /package/src/{components → core/components}/menu/__workshop__/nestedMenu.tsx +0 -0
  329. /package/src/{components → core/components}/menu/__workshop__/onCloseMenuButton.tsx +0 -0
  330. /package/src/{components → core/components}/menu/__workshop__/selectedItem.tsx +0 -0
  331. /package/src/{components → core/components}/menu/__workshop__/shouldFocus.tsx +0 -0
  332. /package/src/{components → core/components}/menu/__workshop__/tones.tsx +0 -0
  333. /package/src/{components → core/components}/menu/__workshop__/withoutArrow.tsx +0 -0
  334. /package/src/{components → core/components}/menu/helpers.ts +0 -0
  335. /package/src/{components → core/components}/menu/index.ts +0 -0
  336. /package/src/{components → core/components}/menu/menuContext.ts +0 -0
  337. /package/src/{components → core/components}/menu/menuDivider.ts +0 -0
  338. /package/src/{components → core/components}/menu/useMenu.ts +0 -0
  339. /package/src/{components → core/components}/menu/useMenuController.ts +0 -0
  340. /package/src/{components → core/components}/skeleton/__workshop__/.eslintrc +0 -0
  341. /package/src/{components → core/components}/skeleton/__workshop__/delay.tsx +0 -0
  342. /package/src/{components → core/components}/skeleton/__workshop__/index.ts +0 -0
  343. /package/src/{components → core/components}/skeleton/__workshop__/skeleton.tsx +0 -0
  344. /package/src/{components → core/components}/skeleton/index.ts +0 -0
  345. /package/src/{components → core/components}/skeleton/skeleton.tsx +0 -0
  346. /package/src/{components → core/components}/skeleton/styles.ts +0 -0
  347. /package/src/{components → core/components}/tab/__workshop__/.eslintrc +0 -0
  348. /package/src/{components → core/components}/tab/__workshop__/example.tsx +0 -0
  349. /package/src/{components → core/components}/tab/__workshop__/index.ts +0 -0
  350. /package/src/{components → core/components}/tab/index.ts +0 -0
  351. /package/src/{components → core/components}/tab/tabList.tsx +0 -0
  352. /package/src/{components → core/components}/tab/tabPanel.tsx +0 -0
  353. /package/src/{components → core/components}/toast/__workshop__/.eslintrc +0 -0
  354. /package/src/{components → core/components}/toast/__workshop__/hook.tsx +0 -0
  355. /package/src/{components → core/components}/toast/__workshop__/index.ts +0 -0
  356. /package/src/{components → core/components}/toast/__workshop__/toast.tsx +0 -0
  357. /package/src/{components → core/components}/toast/index.ts +0 -0
  358. /package/src/{components → core/components}/toast/toastContext.ts +0 -0
  359. /package/src/{components → core/components}/toast/toastProvider.tsx +0 -0
  360. /package/src/{components → core/components}/toast/types.ts +0 -0
  361. /package/src/{components → core/components}/toast/useToast.ts +0 -0
  362. /package/src/{components → core/components}/tree/__workshop__/.eslintrc +0 -0
  363. /package/src/{components → core/components}/tree/__workshop__/basic.perf.ts +0 -0
  364. /package/src/{components → core/components}/tree/__workshop__/basic.tsx +0 -0
  365. /package/src/{components → core/components}/tree/__workshop__/index.ts +0 -0
  366. /package/src/{components → core/components}/tree/helpers.ts +0 -0
  367. /package/src/{components → core/components}/tree/index.ts +0 -0
  368. /package/src/{components → core/components}/tree/tree.tsx +0 -0
  369. /package/src/{components → core/components}/tree/treeContext.ts +0 -0
  370. /package/src/{components → core/components}/tree/treeGroup.tsx +0 -0
  371. /package/src/{components → core/components}/tree/types.ts +0 -0
  372. /package/src/{components → core/components}/tree/useTree.ts +0 -0
  373. /package/src/{global.ts → core/global.ts} +0 -0
  374. /package/src/{helpers → core/helpers}/animation.ts +0 -0
  375. /package/src/{helpers → core/helpers}/element.ts +0 -0
  376. /package/src/{helpers → core/helpers}/focus.ts +0 -0
  377. /package/src/{helpers → core/helpers}/index.ts +0 -0
  378. /package/src/{helpers → core/helpers}/scroll.ts +0 -0
  379. /package/src/{hooks → core/hooks}/_internal/index.ts +0 -0
  380. /package/src/{hooks → core/hooks}/_internal/useUnique.ts +0 -0
  381. /package/src/{hooks → core/hooks}/index.ts +0 -0
  382. /package/src/{hooks → core/hooks}/useArrayProp.ts +0 -0
  383. /package/src/{hooks → core/hooks}/useClickOutside.ts +0 -0
  384. /package/src/{hooks → core/hooks}/useCustomValidity.ts +0 -0
  385. /package/src/{hooks → core/hooks}/useDelayed.test.ts +0 -0
  386. /package/src/{hooks → core/hooks}/useDelayedState.ts +0 -0
  387. /package/src/{hooks → core/hooks}/useElementRect/__workshop__/.eslintrc +0 -0
  388. /package/src/{hooks → core/hooks}/useElementRect/__workshop__/index.ts +0 -0
  389. /package/src/{hooks → core/hooks}/useElementRect/index.ts +0 -0
  390. /package/src/{hooks → core/hooks}/useElementRect/useElementRect.ts +0 -0
  391. /package/src/{hooks → core/hooks}/useElementSize.ts +0 -0
  392. /package/src/{hooks → core/hooks}/useForwardedRef.ts +0 -0
  393. /package/src/{hooks → core/hooks}/useGlobalKeyDown.ts +0 -0
  394. /package/src/{hooks → core/hooks}/useIsomorphicEffect.ts +0 -0
  395. /package/src/{hooks → core/hooks}/useMediaIndex/__workshop__/.eslintrc +0 -0
  396. /package/src/{hooks → core/hooks}/useMediaIndex/__workshop__/index.ts +0 -0
  397. /package/src/{hooks → core/hooks}/useMediaIndex/index.ts +0 -0
  398. /package/src/{hooks → core/hooks}/useMediaIndex/useMediaIndex.ts +0 -0
  399. /package/src/{hooks → core/hooks}/useMounted.ts +0 -0
  400. /package/src/{hooks → core/hooks}/usePrefersDark.hydration.test.tsx +0 -0
  401. /package/src/{hooks → core/hooks}/usePrefersDark.test.tsx +0 -0
  402. /package/src/{hooks → core/hooks}/usePrefersDark.ts +0 -0
  403. /package/src/{hooks → core/hooks}/usePrefersReducedMotion.hydration.test.tsx +0 -0
  404. /package/src/{hooks → core/hooks}/usePrefersReducedMotion.test.tsx +0 -0
  405. /package/src/{hooks → core/hooks}/usePrefersReducedMotion.ts +0 -0
  406. /package/src/{lib → core/lib}/globalScope.ts +0 -0
  407. /package/src/{observers → core/observers}/elementSizeObserver.ts +0 -0
  408. /package/src/{observers → core/observers}/index.ts +0 -0
  409. /package/src/{observers → core/observers}/resizeObserver.ts +0 -0
  410. /package/src/{primitives → core/primitives}/_selectable/index.ts +0 -0
  411. /package/src/{primitives → core/primitives}/_selectable/selectable.tsx +0 -0
  412. /package/src/{primitives → core/primitives}/avatar/__workshop__/.eslintrc +0 -0
  413. /package/src/{primitives → core/primitives}/avatar/__workshop__/asButton.tsx +0 -0
  414. /package/src/{primitives → core/primitives}/avatar/__workshop__/index.ts +0 -0
  415. /package/src/{primitives → core/primitives}/avatar/__workshop__/stack.tsx +0 -0
  416. /package/src/{primitives → core/primitives}/avatar/avatarStack.tsx +0 -0
  417. /package/src/{primitives → core/primitives}/avatar/index.ts +0 -0
  418. /package/src/{primitives → core/primitives}/badge/__workshop__/.eslintrc +0 -0
  419. /package/src/{primitives → core/primitives}/badge/__workshop__/index.ts +0 -0
  420. /package/src/{primitives → core/primitives}/badge/__workshop__/props.tsx +0 -0
  421. /package/src/{primitives → core/primitives}/badge/__workshop__/tones.tsx +0 -0
  422. /package/src/{primitives → core/primitives}/badge/index.ts +0 -0
  423. /package/src/{primitives → core/primitives}/box/__workshop__/.eslintrc +0 -0
  424. /package/src/{primitives → core/primitives}/box/__workshop__/index.ts +0 -0
  425. /package/src/{primitives → core/primitives}/box/__workshop__/props.tsx +0 -0
  426. /package/src/{primitives → core/primitives}/box/__workshop__/responsive.tsx +0 -0
  427. /package/src/{primitives → core/primitives}/box/index.ts +0 -0
  428. /package/src/{primitives → core/primitives}/button/__workshop__/.eslintrc +0 -0
  429. /package/src/{primitives → core/primitives}/button/__workshop__/custom.tsx +0 -0
  430. /package/src/{primitives → core/primitives}/button/__workshop__/customIcons.tsx +0 -0
  431. /package/src/{primitives → core/primitives}/button/__workshop__/index.ts +0 -0
  432. /package/src/{primitives → core/primitives}/button/__workshop__/mixedChildren.tsx +0 -0
  433. /package/src/{primitives → core/primitives}/button/__workshop__/props.tsx +0 -0
  434. /package/src/{primitives → core/primitives}/button/__workshop__/styled1.tsx +0 -0
  435. /package/src/{primitives → core/primitives}/button/__workshop__/styled2.tsx +0 -0
  436. /package/src/{primitives → core/primitives}/button/__workshop__/uploadButton.tsx +0 -0
  437. /package/src/{primitives → core/primitives}/button/index.ts +0 -0
  438. /package/src/{primitives → core/primitives}/card/__workshop__/.eslintrc +0 -0
  439. /package/src/{primitives → core/primitives}/card/__workshop__/allTones.tsx +0 -0
  440. /package/src/{primitives → core/primitives}/card/__workshop__/checkered.tsx +0 -0
  441. /package/src/{primitives → core/primitives}/card/__workshop__/index.ts +0 -0
  442. /package/src/{primitives → core/primitives}/card/__workshop__/interactive.tsx +0 -0
  443. /package/src/{primitives → core/primitives}/card/__workshop__/listNavigation.tsx +0 -0
  444. /package/src/{primitives → core/primitives}/card/__workshop__/props.tsx +0 -0
  445. /package/src/{primitives → core/primitives}/card/__workshop__/styled.tsx +0 -0
  446. /package/src/{primitives → core/primitives}/card/index.ts +0 -0
  447. /package/src/{primitives → core/primitives}/checkbox/__workshop__/.eslintrc +0 -0
  448. /package/src/{primitives → core/primitives}/checkbox/__workshop__/index.ts +0 -0
  449. /package/src/{primitives → core/primitives}/checkbox/__workshop__/tones.tsx +0 -0
  450. /package/src/{primitives → core/primitives}/checkbox/index.ts +0 -0
  451. /package/src/{primitives → core/primitives}/code/__workshop__/.eslintrc +0 -0
  452. /package/src/{primitives → core/primitives}/code/__workshop__/index.ts +0 -0
  453. /package/src/{primitives → core/primitives}/code/__workshop__/opticalAlignment.tsx +0 -0
  454. /package/src/{primitives → core/primitives}/code/__workshop__/props.tsx +0 -0
  455. /package/src/{primitives → core/primitives}/code/index.ts +0 -0
  456. /package/src/{primitives → core/primitives}/code/styles.ts +0 -0
  457. /package/src/{primitives → core/primitives}/container/__workshop__/.eslintrc +0 -0
  458. /package/src/{primitives → core/primitives}/container/__workshop__/example.tsx +0 -0
  459. /package/src/{primitives → core/primitives}/container/__workshop__/index.ts +0 -0
  460. /package/src/{primitives → core/primitives}/container/index.ts +0 -0
  461. /package/src/{primitives → core/primitives}/container/types.ts +0 -0
  462. /package/src/{primitives → core/primitives}/flex/__workshop__/.eslintrc +0 -0
  463. /package/src/{primitives → core/primitives}/flex/__workshop__/example.tsx +0 -0
  464. /package/src/{primitives → core/primitives}/flex/__workshop__/gap.tsx +0 -0
  465. /package/src/{primitives → core/primitives}/flex/__workshop__/index.ts +0 -0
  466. /package/src/{primitives → core/primitives}/flex/index.ts +0 -0
  467. /package/src/{primitives → core/primitives}/grid/__workshop__/.eslintrc +0 -0
  468. /package/src/{primitives → core/primitives}/grid/__workshop__/index.ts +0 -0
  469. /package/src/{primitives → core/primitives}/grid/__workshop__/responsive.tsx +0 -0
  470. /package/src/{primitives → core/primitives}/grid/index.ts +0 -0
  471. /package/src/{primitives → core/primitives}/heading/__workshop__/.eslintrc +0 -0
  472. /package/src/{primitives → core/primitives}/heading/__workshop__/index.ts +0 -0
  473. /package/src/{primitives → core/primitives}/heading/__workshop__/opticalAlignment.tsx +0 -0
  474. /package/src/{primitives → core/primitives}/heading/__workshop__/plain.tsx +0 -0
  475. /package/src/{primitives → core/primitives}/heading/index.ts +0 -0
  476. /package/src/{primitives → core/primitives}/heading/styles.ts +0 -0
  477. /package/src/{primitives → core/primitives}/heading/types.ts +0 -0
  478. /package/src/{primitives → core/primitives}/helpers.ts +0 -0
  479. /package/src/{primitives → core/primitives}/index.ts +0 -0
  480. /package/src/{primitives → core/primitives}/inline/__workshop__/.eslintrc +0 -0
  481. /package/src/{primitives → core/primitives}/inline/__workshop__/index.ts +0 -0
  482. /package/src/{primitives → core/primitives}/inline/__workshop__/plain.tsx +0 -0
  483. /package/src/{primitives → core/primitives}/inline/index.ts +0 -0
  484. /package/src/{primitives → core/primitives}/inline/types.ts +0 -0
  485. /package/src/{primitives → core/primitives}/kbd/__workshop__/.eslintrc +0 -0
  486. /package/src/{primitives → core/primitives}/kbd/__workshop__/index.ts +0 -0
  487. /package/src/{primitives → core/primitives}/kbd/__workshop__/plain.tsx +0 -0
  488. /package/src/{primitives → core/primitives}/kbd/index.tsx +0 -0
  489. /package/src/{primitives → core/primitives}/label/__workshop__/.eslintrc +0 -0
  490. /package/src/{primitives → core/primitives}/label/__workshop__/index.ts +0 -0
  491. /package/src/{primitives → core/primitives}/label/__workshop__/opticalAlignment.tsx +0 -0
  492. /package/src/{primitives → core/primitives}/label/__workshop__/plain.tsx +0 -0
  493. /package/src/{primitives → core/primitives}/label/index.ts +0 -0
  494. /package/src/{primitives → core/primitives}/label/styles.ts +0 -0
  495. /package/src/{primitives → core/primitives}/popover/__workshop__/.eslintrc +0 -0
  496. /package/src/{primitives → core/primitives}/popover/__workshop__/AlignedStory.tsx +0 -0
  497. /package/src/{primitives → core/primitives}/popover/__workshop__/MarginsStory.tsx +0 -0
  498. /package/src/{primitives → core/primitives}/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -0
  499. /package/src/{primitives → core/primitives}/popover/__workshop__/OpenOnMountStory.tsx +0 -0
  500. /package/src/{primitives → core/primitives}/popover/__workshop__/PlainStory.tsx +0 -0
  501. /package/src/{primitives → core/primitives}/popover/__workshop__/SidePanelStory.tsx +0 -0
  502. /package/src/{primitives → core/primitives}/popover/__workshop__/index.ts +0 -0
  503. /package/src/{primitives → core/primitives}/popover/floating-ui/size.ts +0 -0
  504. /package/src/{primitives → core/primitives}/popover/index.ts +0 -0
  505. /package/src/{primitives → core/primitives}/popover/types.ts +0 -0
  506. /package/src/{primitives → core/primitives}/radio/__workshop__/.eslintrc +0 -0
  507. /package/src/{primitives → core/primitives}/radio/__workshop__/example.tsx +0 -0
  508. /package/src/{primitives → core/primitives}/radio/__workshop__/index.ts +0 -0
  509. /package/src/{primitives → core/primitives}/radio/__workshop__/plain.tsx +0 -0
  510. /package/src/{primitives → core/primitives}/radio/index.ts +0 -0
  511. /package/src/{primitives → core/primitives}/select/__workshop__/.eslintrc +0 -0
  512. /package/src/{primitives → core/primitives}/select/__workshop__/index.ts +0 -0
  513. /package/src/{primitives → core/primitives}/select/__workshop__/plain.tsx +0 -0
  514. /package/src/{primitives → core/primitives}/select/__workshop__/readOnly.tsx +0 -0
  515. /package/src/{primitives → core/primitives}/select/index.ts +0 -0
  516. /package/src/{primitives → core/primitives}/spinner/__workshop__/.eslintrc +0 -0
  517. /package/src/{primitives → core/primitives}/spinner/__workshop__/Props.tsx +0 -0
  518. /package/src/{primitives → core/primitives}/spinner/__workshop__/index.ts +0 -0
  519. /package/src/{primitives → core/primitives}/spinner/index.ts +0 -0
  520. /package/src/{primitives → core/primitives}/stack/__workshop__/.eslintrc +0 -0
  521. /package/src/{primitives → core/primitives}/stack/__workshop__/index.ts +0 -0
  522. /package/src/{primitives → core/primitives}/stack/__workshop__/plain.tsx +0 -0
  523. /package/src/{primitives → core/primitives}/stack/index.ts +0 -0
  524. /package/src/{primitives → core/primitives}/switch/__workshop__/.eslintrc +0 -0
  525. /package/src/{primitives → core/primitives}/switch/__workshop__/index.ts +0 -0
  526. /package/src/{primitives → core/primitives}/switch/__workshop__/props.tsx +0 -0
  527. /package/src/{primitives → core/primitives}/switch/index.ts +0 -0
  528. /package/src/{primitives → core/primitives}/text/__workshop__/.eslintrc +0 -0
  529. /package/src/{primitives → core/primitives}/text/__workshop__/example.tsx +0 -0
  530. /package/src/{primitives → core/primitives}/text/__workshop__/index.ts +0 -0
  531. /package/src/{primitives → core/primitives}/text/__workshop__/opticalAlignment.tsx +0 -0
  532. /package/src/{primitives → core/primitives}/text/index.ts +0 -0
  533. /package/src/{primitives → core/primitives}/text/styles.ts +0 -0
  534. /package/src/{primitives → core/primitives}/textArea/__workshop__/.eslintrc +0 -0
  535. /package/src/{primitives → core/primitives}/textArea/__workshop__/index.ts +0 -0
  536. /package/src/{primitives → core/primitives}/textArea/index.ts +0 -0
  537. /package/src/{primitives → core/primitives}/textInput/__workshop__/.eslintrc +0 -0
  538. /package/src/{primitives → core/primitives}/textInput/__workshop__/clearButton.tsx +0 -0
  539. /package/src/{primitives → core/primitives}/textInput/__workshop__/customValidity.tsx +0 -0
  540. /package/src/{primitives → core/primitives}/textInput/__workshop__/index.ts +0 -0
  541. /package/src/{primitives → core/primitives}/textInput/__workshop__/multipleTones.tsx +0 -0
  542. /package/src/{primitives → core/primitives}/textInput/__workshop__/readOnly.tsx +0 -0
  543. /package/src/{primitives → core/primitives}/textInput/__workshop__/tones.tsx +0 -0
  544. /package/src/{primitives → core/primitives}/textInput/__workshop__/typed.tsx +0 -0
  545. /package/src/{primitives → core/primitives}/textInput/index.ts +0 -0
  546. /package/src/{primitives → core/primitives}/tooltip/__workshop__/.eslintrc +0 -0
  547. /package/src/{primitives → core/primitives}/tooltip/__workshop__/props.tsx +0 -0
  548. /package/src/{primitives → core/primitives}/tooltip/index.ts +0 -0
  549. /package/src/{primitives → core/primitives}/tooltip/tooltipDelayGroup/index.ts +0 -0
  550. /package/src/{primitives → core/primitives}/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -0
  551. /package/src/{primitives → core/primitives}/tooltip/tooltipDelayGroup/types.ts +0 -0
  552. /package/src/{primitives → core/primitives}/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -0
  553. /package/src/{styles → core/styles}/border/index.ts +0 -0
  554. /package/src/{styles → core/styles}/border/types.ts +0 -0
  555. /package/src/{styles → core/styles}/box/index.ts +0 -0
  556. /package/src/{styles → core/styles}/box/types.ts +0 -0
  557. /package/src/{styles → core/styles}/colorVars/index.ts +0 -0
  558. /package/src/{styles → core/styles}/flex/index.ts +0 -0
  559. /package/src/{styles → core/styles}/flex/types.ts +0 -0
  560. /package/src/{styles → core/styles}/font/index.ts +0 -0
  561. /package/src/{styles → core/styles}/grid/index.ts +0 -0
  562. /package/src/{styles → core/styles}/grid/types.ts +0 -0
  563. /package/src/{styles → core/styles}/index.ts +0 -0
  564. /package/src/{styles → core/styles}/input/index.ts +0 -0
  565. /package/src/{styles → core/styles}/internal.ts +0 -0
  566. /package/src/{styles → core/styles}/margin/index.ts +0 -0
  567. /package/src/{styles → core/styles}/margin/types.ts +0 -0
  568. /package/src/{styles → core/styles}/padding/index.ts +0 -0
  569. /package/src/{styles → core/styles}/padding/types.ts +0 -0
  570. /package/src/{styles → core/styles}/radius/index.ts +0 -0
  571. /package/src/{styles → core/styles}/radius/types.ts +0 -0
  572. /package/src/{styles → core/styles}/shadow/index.ts +0 -0
  573. /package/src/{styles → core/styles}/shadow/types.ts +0 -0
  574. /package/src/{theme → core/theme}/__workshop__/.eslintrc +0 -0
  575. /package/src/{theme → core/theme}/__workshop__/layer.tsx +0 -0
  576. /package/src/{theme → core/theme}/__workshop__/nestedProvider.tsx +0 -0
  577. /package/src/{theme → core/theme}/themeContext.ts +0 -0
  578. /package/src/{types → core/types}/avatar.ts +0 -0
  579. /package/src/{types → core/types}/box.ts +0 -0
  580. /package/src/{types → core/types}/dialog.ts +0 -0
  581. /package/src/{types → core/types}/flex.ts +0 -0
  582. /package/src/{types → core/types}/grid.ts +0 -0
  583. /package/src/{types → core/types}/gridItem.ts +0 -0
  584. /package/src/{types → core/types}/placement.ts +0 -0
  585. /package/src/{types → core/types}/popover.ts +0 -0
  586. /package/src/{types → core/types}/radius.ts +0 -0
  587. /package/src/{types → core/types}/text.ts +0 -0
  588. /package/src/{utils → core/utils}/boundaryElement/__workshop__/.eslintrc +0 -0
  589. /package/src/{utils → core/utils}/boundaryElement/__workshop__/index.ts +0 -0
  590. /package/src/{utils → core/utils}/boundaryElement/boundaryElementContext.ts +0 -0
  591. /package/src/{utils → core/utils}/boundaryElement/boundaryElementProvider.tsx +0 -0
  592. /package/src/{utils → core/utils}/boundaryElement/index.ts +0 -0
  593. /package/src/{utils → core/utils}/boundaryElement/types.ts +0 -0
  594. /package/src/{utils → core/utils}/boundaryElement/useBoundaryElement.ts +0 -0
  595. /package/src/{utils → core/utils}/elementQuery/__workshop__/.eslintrc +0 -0
  596. /package/src/{utils → core/utils}/elementQuery/__workshop__/customMedia.tsx +0 -0
  597. /package/src/{utils → core/utils}/elementQuery/__workshop__/index.ts +0 -0
  598. /package/src/{utils → core/utils}/elementQuery/elementQuery.tsx +0 -0
  599. /package/src/{utils → core/utils}/elementQuery/helpers.ts +0 -0
  600. /package/src/{utils → core/utils}/elementQuery/index.ts +0 -0
  601. /package/src/{utils → core/utils}/errorBoundary.tsx +0 -0
  602. /package/src/{utils → core/utils}/layer/__workshop__/.eslintrc +0 -0
  603. /package/src/{utils → core/utils}/layer/__workshop__/index.ts +0 -0
  604. /package/src/{utils → core/utils}/layer/__workshop__/multipleRoots.tsx +0 -0
  605. /package/src/{utils → core/utils}/layer/__workshop__/nested.tsx +0 -0
  606. /package/src/{utils → core/utils}/layer/__workshop__/responsiveZOffset.tsx +0 -0
  607. /package/src/{utils → core/utils}/layer/getLayerContext.test.ts +0 -0
  608. /package/src/{utils → core/utils}/layer/getLayerContext.ts +0 -0
  609. /package/src/{utils → core/utils}/layer/index.ts +0 -0
  610. /package/src/{utils → core/utils}/layer/layer.tsx +0 -0
  611. /package/src/{utils → core/utils}/layer/layerContext.ts +0 -0
  612. /package/src/{utils → core/utils}/layer/layerProvider.tsx +0 -0
  613. /package/src/{utils → core/utils}/layer/types.ts +0 -0
  614. /package/src/{utils → core/utils}/layer/useLayer.ts +0 -0
  615. /package/src/{utils → core/utils}/portal/__workshop__/.eslintrc +0 -0
  616. /package/src/{utils → core/utils}/portal/__workshop__/index.ts +0 -0
  617. /package/src/{utils → core/utils}/portal/index.ts +0 -0
  618. /package/src/{utils → core/utils}/portal/portal.ts +0 -0
  619. /package/src/{utils → core/utils}/portal/portalContext.ts +0 -0
  620. /package/src/{utils → core/utils}/portal/portalProvider.tsx +0 -0
  621. /package/src/{utils → core/utils}/portal/types.ts +0 -0
  622. /package/src/{utils → core/utils}/portal/usePortal.ts +0 -0
  623. /package/src/{utils → core/utils}/srOnly/index.ts +0 -0
  624. /package/src/{utils → core/utils}/srOnly/srOnly.tsx +0 -0
  625. /package/src/{utils → core/utils}/virtualList/__workshop__/.eslintrc +0 -0
  626. /package/src/{utils → core/utils}/virtualList/__workshop__/changingProps.tsx +0 -0
  627. /package/src/{utils → core/utils}/virtualList/__workshop__/elementScroll.tsx +0 -0
  628. /package/src/{utils → core/utils}/virtualList/__workshop__/index.ts +0 -0
  629. /package/src/{utils → core/utils}/virtualList/__workshop__/infiniteList.tsx +0 -0
  630. /package/src/{utils → core/utils}/virtualList/__workshop__/windowScrolll.tsx +0 -0
  631. /package/src/{utils → core/utils}/virtualList/index.ts +0 -0
  632. /package/src/{utils → core/utils}/virtualList/virtualList.tsx +0 -0
  633. /package/src/theme/{lib/theme/color/_generic → config/tokens/color}/index.ts +0 -0
  634. /package/src/theme/{lib/theme/color/base/types.ts → system/color/base.ts} +0 -0
  635. /package/src/theme/{lib/theme/color/syntax/types.ts → system/color/syntax.ts} +0 -0
  636. /package/src/theme/{lib/theme → system}/fonts.ts +0 -0
  637. /package/src/theme/{lib/theme → system}/layer.ts +0 -0
@@ -0,0 +1,537 @@
1
+ import {ThemeColorTokenValue, ThemeConfig} from '../config'
2
+ import {
3
+ THEME_COLOR_BUTTON_MODES,
4
+ THEME_COLOR_STATES,
5
+ THEME_COLOR_STATE_TONES,
6
+ ThemeColorAvatarColorKey,
7
+ ThemeColorBaseToneKey,
8
+ ThemeColorButtonModeKey,
9
+ ThemeColorStateKey,
10
+ ThemeColorStateToneKey,
11
+ ThemeColor,
12
+ ThemeColorAvatar,
13
+ ThemeColorBadge,
14
+ ThemeColorButton,
15
+ ThemeColorButtonStates,
16
+ ThemeColorButtonTones,
17
+ ThemeColorCard,
18
+ ThemeColorGenericState,
19
+ ThemeColorInput,
20
+ ThemeColorInputState,
21
+ ThemeColorInputStates,
22
+ ThemeColorScheme,
23
+ ThemeColorSchemes,
24
+ ThemeColorSpot,
25
+ ThemeColorSyntax,
26
+ } from '../system'
27
+ import {ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'
28
+ import {resolveColorTokens} from './resolveColorTokens'
29
+
30
+ const DEFAULT_COLOR_TOKEN_VALUE: ThemeColorTokenValue = ['500', '500']
31
+
32
+ export function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes {
33
+ return {
34
+ light: buildColorScheme({scheme: 'light'}, config),
35
+ dark: buildColorScheme({scheme: 'dark'}, config),
36
+ }
37
+ }
38
+
39
+ export function buildColorScheme(
40
+ options: {scheme: 'light' | 'dark'},
41
+ config?: ThemeConfig,
42
+ ): ThemeColorScheme {
43
+ const {scheme} = options
44
+
45
+ const resolvedConfig: ThemeConfig = {
46
+ ...config,
47
+ color: resolveColorTokens(config?.color),
48
+ }
49
+
50
+ return {
51
+ transparent: buildBaseColorTheme({scheme, tone: 'transparent'}, resolvedConfig),
52
+ default: buildBaseColorTheme({scheme, tone: 'default'}, resolvedConfig),
53
+ primary: buildBaseColorTheme({scheme, tone: 'primary'}, resolvedConfig),
54
+ positive: buildBaseColorTheme({scheme, tone: 'positive'}, resolvedConfig),
55
+ caution: buildBaseColorTheme({scheme, tone: 'caution'}, resolvedConfig),
56
+ critical: buildBaseColorTheme({scheme, tone: 'critical'}, resolvedConfig),
57
+ }
58
+ }
59
+
60
+ export function buildBaseColorTheme(
61
+ options: {scheme: 'light' | 'dark'; tone: ThemeColorBaseToneKey},
62
+ config?: ThemeConfig,
63
+ ): ThemeColor {
64
+ const {scheme, tone} = options
65
+ const tokens = config?.color?.base?.[tone]
66
+ const hue = tokens?._hue || 'gray'
67
+ const context: ColorTokenContext = {hue, scheme}
68
+ const bg = _color(context, tokens?.bg || DEFAULT_COLOR_TOKEN_VALUE)
69
+ const blendMode = tokens?._blend || ['screen', 'multiply']
70
+
71
+ // Build `button` color theme
72
+ // Also used for `solid` and `muted` color themes
73
+ const button = buildButtonColorTheme({scheme}, config)
74
+
75
+ const selectable = buildSelectableColorTheme({scheme}, config)
76
+
77
+ const _dark = scheme === 'dark'
78
+
79
+ return {
80
+ _blend: blendMode[scheme === 'light' ? 0 : 1],
81
+ _dark,
82
+ avatar: buildAvatarColorTheme({scheme}, config),
83
+ badge: buildBadgeColorTheme({scheme}, config),
84
+ base: {
85
+ bg,
86
+ fg: _color(context, tokens?.fg || DEFAULT_COLOR_TOKEN_VALUE),
87
+ border: _color(context, tokens?.border || DEFAULT_COLOR_TOKEN_VALUE),
88
+ focusRing: _color(context, tokens?.focusRing || DEFAULT_COLOR_TOKEN_VALUE),
89
+ shadow: {
90
+ outline: _color(context, tokens?.shadow?.outline || DEFAULT_COLOR_TOKEN_VALUE),
91
+ umbra: _color(context, tokens?.shadow?.umbra || DEFAULT_COLOR_TOKEN_VALUE),
92
+ penumbra: _color(context, tokens?.shadow?.penumbra || DEFAULT_COLOR_TOKEN_VALUE),
93
+ ambient: _color(context, tokens?.shadow?.ambient || DEFAULT_COLOR_TOKEN_VALUE),
94
+ },
95
+ skeleton: {
96
+ from: _color(context, tokens?.skeleton?.from || DEFAULT_COLOR_TOKEN_VALUE),
97
+ to: _color(context, tokens?.skeleton?.to || DEFAULT_COLOR_TOKEN_VALUE),
98
+ },
99
+ },
100
+ button,
101
+ // card: buildCardColorTheme({scheme, baseTone: tone}, config),
102
+ card: selectable.default satisfies ThemeColorCard,
103
+ input: buildInputColorTheme({scheme, tone}, config),
104
+ kbd: {
105
+ _blend: (config?.color?.kbd?._blend || ['multiply', 'screen'])[scheme === 'light' ? 0 : 1],
106
+ bg: _color(context, config?.color?.kbd?.bg || DEFAULT_COLOR_TOKEN_VALUE),
107
+ fg: _color(context, config?.color?.kbd?.fg || DEFAULT_COLOR_TOKEN_VALUE),
108
+ border: _color(context, config?.color?.kbd?.border || DEFAULT_COLOR_TOKEN_VALUE),
109
+ },
110
+ spot: buildSpotColorTheme({scheme}, config),
111
+ syntax: buildSyntaxColorTheme({scheme}, config),
112
+ solid: {
113
+ ...button.default,
114
+ transparent: button.default.default,
115
+ },
116
+ muted: {
117
+ ...button.bleed,
118
+ transparent: button.bleed.default,
119
+ },
120
+ selectable,
121
+
122
+ dark: _dark, // deprecated
123
+ }
124
+ }
125
+
126
+ function buildAvatarColorTheme(
127
+ options: {scheme: 'light' | 'dark'},
128
+ config?: ThemeConfig,
129
+ ): ThemeColorAvatar {
130
+ const {scheme} = options
131
+
132
+ return {
133
+ gray: _buildAvatarColorTheme({color: 'gray', scheme}, config),
134
+ blue: _buildAvatarColorTheme({color: 'blue', scheme}, config),
135
+ purple: _buildAvatarColorTheme({color: 'purple', scheme}, config),
136
+ magenta: _buildAvatarColorTheme({color: 'magenta', scheme}, config),
137
+ red: _buildAvatarColorTheme({color: 'red', scheme}, config),
138
+ orange: _buildAvatarColorTheme({color: 'orange', scheme}, config),
139
+ yellow: _buildAvatarColorTheme({color: 'yellow', scheme}, config),
140
+ green: _buildAvatarColorTheme({color: 'green', scheme}, config),
141
+ cyan: _buildAvatarColorTheme({color: 'cyan', scheme}, config),
142
+ }
143
+ }
144
+
145
+ function _buildAvatarColorTheme(
146
+ options: {color: ThemeColorAvatarColorKey; scheme: 'light' | 'dark'},
147
+ config?: ThemeConfig,
148
+ ): ThemeColorAvatar['gray'] {
149
+ const {color, scheme} = options
150
+ const tokens = config?.color?.avatar?.[color]
151
+ const context: ColorTokenContext = {hue: tokens?._hue || 'gray', scheme}
152
+ const blendMode = tokens?._blend || ['multiply', 'screen']
153
+
154
+ return {
155
+ _blend: blendMode[scheme === 'light' ? 0 : 1],
156
+ bg: _color(context, tokens?.bg || DEFAULT_COLOR_TOKEN_VALUE),
157
+ fg: _color(context, tokens?.fg || DEFAULT_COLOR_TOKEN_VALUE),
158
+ }
159
+ }
160
+
161
+ function buildBadgeColorTheme(
162
+ options: {scheme: 'light' | 'dark'},
163
+ config?: ThemeConfig,
164
+ ): ThemeColorBadge {
165
+ const {scheme} = options
166
+
167
+ return {
168
+ default: _buildBadgeColorTheme({scheme, tone: 'default'}, config),
169
+ primary: _buildBadgeColorTheme({scheme, tone: 'primary'}, config),
170
+ positive: _buildBadgeColorTheme({scheme, tone: 'positive'}, config),
171
+ caution: _buildBadgeColorTheme({scheme, tone: 'caution'}, config),
172
+ critical: _buildBadgeColorTheme({scheme, tone: 'critical'}, config),
173
+ }
174
+ }
175
+
176
+ function _buildBadgeColorTheme(
177
+ options: {scheme: 'light' | 'dark'; tone: ThemeColorStateToneKey},
178
+ config?: ThemeConfig,
179
+ ): ThemeColorBadge['default'] {
180
+ const {scheme, tone} = options
181
+ const tokens = config?.color?.badge?.[tone]
182
+ const hue = tokens?._hue || config?.color?.base?.[tone]?._hue || 'gray'
183
+ const context: ColorTokenContext = {hue, scheme}
184
+ const blendMode = tokens?._blend || ['multiply', 'screen']
185
+
186
+ return {
187
+ _blend: blendMode[scheme === 'light' ? 0 : 1],
188
+ bg: _color(context, tokens?.bg || DEFAULT_COLOR_TOKEN_VALUE),
189
+ fg: _color(context, tokens?.fg || DEFAULT_COLOR_TOKEN_VALUE),
190
+ }
191
+ }
192
+
193
+ function buildButtonColorTheme(
194
+ options: {scheme: 'light' | 'dark'},
195
+ config?: ThemeConfig,
196
+ ): ThemeColorButton {
197
+ const {scheme} = options
198
+
199
+ const modes: Partial<ThemeColorButton> = {}
200
+
201
+ for (const mode of THEME_COLOR_BUTTON_MODES) {
202
+ modes[mode] = buildButtonTonesColorTheme({scheme, mode}, config)
203
+ }
204
+
205
+ return modes as ThemeColorButton
206
+ }
207
+
208
+ function buildButtonTonesColorTheme(
209
+ options: {
210
+ scheme: 'light' | 'dark'
211
+ mode: ThemeColorButtonModeKey
212
+ },
213
+ config?: ThemeConfig,
214
+ ): ThemeColorButtonTones {
215
+ const {mode, scheme} = options
216
+
217
+ const tones: Partial<ThemeColorButtonTones> = {}
218
+
219
+ for (const tone of THEME_COLOR_STATE_TONES) {
220
+ tones[tone] = buildButtonStatesColorTheme({mode, scheme, tone}, config)
221
+ }
222
+
223
+ return tones as ThemeColorButtonTones
224
+ }
225
+
226
+ function buildButtonStatesColorTheme(
227
+ options: {
228
+ mode: ThemeColorButtonModeKey
229
+ scheme: 'light' | 'dark'
230
+ tone: ThemeColorStateToneKey
231
+ },
232
+ config?: ThemeConfig,
233
+ ): ThemeColorButtonStates {
234
+ const {mode, scheme, tone} = options
235
+
236
+ const states: Partial<ThemeColorButtonStates> = {}
237
+
238
+ for (const state of THEME_COLOR_STATES) {
239
+ states[state] = buildButtonStateColorTheme({mode, tone, scheme, state}, config)
240
+ }
241
+
242
+ return states as ThemeColorButtonStates
243
+ }
244
+
245
+ function buildButtonStateColorTheme(
246
+ options: {
247
+ mode: ThemeColorButtonModeKey
248
+ tone: ThemeColorStateToneKey
249
+ scheme: 'light' | 'dark'
250
+ state: ThemeColorStateKey
251
+ },
252
+ config?: ThemeConfig,
253
+ ): ThemeColorGenericState {
254
+ const {mode, tone, scheme, state} = options
255
+ const tokens = config?.color?.button?.[mode]?.[tone]?.[state]
256
+ const hue = tokens?._hue || 'gray'
257
+ const blendMode = tokens?._blend || ['screen', 'multiply']
258
+ const context: ColorTokenContext = {hue, scheme}
259
+
260
+ return {
261
+ _blend: blendMode[scheme === 'light' ? 0 : 1],
262
+ bg: _color(context, tokens?.bg || DEFAULT_COLOR_TOKEN_VALUE),
263
+ bg2: _color(context, tokens?.bg2 || DEFAULT_COLOR_TOKEN_VALUE),
264
+ fg: _color(context, tokens?.fg || DEFAULT_COLOR_TOKEN_VALUE),
265
+ border: _color(context, tokens?.border || DEFAULT_COLOR_TOKEN_VALUE),
266
+ icon: _color(context, tokens?.icon || DEFAULT_COLOR_TOKEN_VALUE),
267
+ muted: {
268
+ fg: _color(context, tokens?.muted?.fg || DEFAULT_COLOR_TOKEN_VALUE),
269
+ },
270
+ accent: {
271
+ fg: _color(context, tokens?.accent?.fg || DEFAULT_COLOR_TOKEN_VALUE),
272
+ },
273
+ link: {
274
+ fg: _color(context, tokens?.link?.fg || DEFAULT_COLOR_TOKEN_VALUE),
275
+ },
276
+ code: {
277
+ bg: _color(context, tokens?.code?.bg || DEFAULT_COLOR_TOKEN_VALUE),
278
+ fg: _color(context, tokens?.code?.fg || DEFAULT_COLOR_TOKEN_VALUE),
279
+ },
280
+ skeleton: {
281
+ from: _color(context, tokens?.skeleton?.from || DEFAULT_COLOR_TOKEN_VALUE),
282
+ to: _color(context, tokens?.skeleton?.to || DEFAULT_COLOR_TOKEN_VALUE),
283
+ },
284
+ }
285
+ }
286
+
287
+ // function buildCardColorTheme(
288
+ // options: {scheme: 'light' | 'dark'; baseTone: ColorBaseTone},
289
+ // config?: ThemeConfig,
290
+ // ): ThemeColorCard {
291
+ // const {scheme, baseTone} = options
292
+
293
+ // const states: Partial<ThemeColorCard> = {}
294
+
295
+ // for (const state of COLOR_STATES) {
296
+ // states[state] = buildCardStateColorTheme({scheme, state, baseTone}, config)
297
+ // }
298
+
299
+ // return states as ThemeColorCard
300
+ // }
301
+
302
+ // function buildCardStateColorTheme(
303
+ // options: {scheme: 'light' | 'dark'; state: ColorState; baseTone: ColorBaseTone},
304
+ // config?: ThemeConfig,
305
+ // ): ThemeColorGenericState {
306
+ // const {scheme, state, baseTone} = options
307
+ // const tokens = config?.color?.card?.[state]
308
+ // const hue = tokens?._hue || config?.color?.base?.[baseTone]?._hue || 'gray'
309
+ // const blendMode = tokens?._blend || ['screen', 'multiply']
310
+ // const context: ColorTokenContext = {hue, scheme}
311
+
312
+ // return {
313
+ // _blend: blendMode[scheme === 'light' ? 0 : 1],
314
+ // bg: _color(context, tokens?.bg || ['50', '950']),
315
+ // bg2: _color(context, tokens?.bg2 || ['50', '950']),
316
+ // fg: _color(context, tokens?.fg || ['black', 'white']),
317
+ // border: _color(context, tokens?.border || ['200', '800']),
318
+ // icon: _color(context, tokens?.icon || ['500', '400']),
319
+ // muted: {
320
+ // fg: _color(context, tokens?.muted?.fg || ['600', '400']),
321
+ // },
322
+ // accent: {
323
+ // fg: _color(context, tokens?.accent?.fg || ['600', '400']),
324
+ // },
325
+ // link: {
326
+ // fg: _color(context, tokens?.link?.fg || ['600', '400']),
327
+ // },
328
+ // code: {
329
+ // bg: _color(context, tokens?.code?.bg || ['600', '400']),
330
+ // fg: _color(context, tokens?.code?.fg || ['600', '400']),
331
+ // },
332
+ // skeleton: {
333
+ // from: _color(context, tokens?.skeleton?.from || ['100', '900']),
334
+ // to: _color(context, tokens?.skeleton?.to || ['100/0.5', '900/0.5']),
335
+ // },
336
+ // }
337
+ // }
338
+
339
+ function buildInputColorTheme(
340
+ options: {scheme: 'light' | 'dark'; tone: ThemeColorBaseToneKey},
341
+ config?: ThemeConfig,
342
+ ): ThemeColorInput {
343
+ const {scheme, tone} = options
344
+
345
+ return {
346
+ default: buildInputStatesColorTheme({mode: 'default', scheme, tone}, config),
347
+ invalid: buildInputStatesColorTheme({mode: 'invalid', scheme, tone}, config),
348
+ }
349
+ }
350
+
351
+ function buildInputStatesColorTheme(
352
+ options: {
353
+ mode: 'default' | 'invalid'
354
+ scheme: 'light' | 'dark'
355
+ tone: ThemeColorBaseToneKey
356
+ },
357
+ config?: ThemeConfig,
358
+ ): ThemeColorInputStates {
359
+ const {mode, scheme, tone} = options
360
+
361
+ return {
362
+ enabled: buildInputStateColorTheme({mode, scheme, state: 'enabled', tone}, config),
363
+ hovered: buildInputStateColorTheme({mode, scheme, state: 'hovered', tone}, config),
364
+ readOnly: buildInputStateColorTheme({mode, scheme, state: 'readOnly', tone}, config),
365
+ disabled: buildInputStateColorTheme({mode, scheme, state: 'disabled', tone}, config),
366
+ }
367
+ }
368
+
369
+ function buildInputStateColorTheme(
370
+ options: {
371
+ mode: 'default' | 'invalid'
372
+ scheme: 'light' | 'dark'
373
+ state: 'enabled' | 'hovered' | 'readOnly' | 'disabled'
374
+ tone: ThemeColorBaseToneKey
375
+ },
376
+ config?: ThemeConfig,
377
+ ): ThemeColorInputState {
378
+ const {mode, tone, scheme, state} = options
379
+ const tokens = config?.color?.input?.[mode]?.[state]
380
+ const hue = tokens?._hue || config?.color?.base?.[tone]?._hue || 'gray'
381
+ const blendMode = tokens?._blend || ['screen', 'multiply']
382
+ const context: ColorTokenContext = {hue, scheme}
383
+
384
+ return {
385
+ _blend: blendMode[scheme === 'light' ? 0 : 1],
386
+ bg: _color(context, tokens?.bg || DEFAULT_COLOR_TOKEN_VALUE),
387
+ bg2: _color(context, tokens?.bg2 || DEFAULT_COLOR_TOKEN_VALUE),
388
+ fg: _color(context, tokens?.fg || DEFAULT_COLOR_TOKEN_VALUE),
389
+ border: _color(context, tokens?.border || DEFAULT_COLOR_TOKEN_VALUE),
390
+ placeholder: _color(context, tokens?.placeholder || DEFAULT_COLOR_TOKEN_VALUE),
391
+ }
392
+ }
393
+
394
+ function buildSelectableColorTheme(
395
+ options: {
396
+ scheme: 'light' | 'dark'
397
+ },
398
+ config?: ThemeConfig,
399
+ ): ThemeColorButtonTones {
400
+ const {scheme} = options
401
+
402
+ const tones: Partial<ThemeColorButtonTones> = {}
403
+
404
+ for (const tone of THEME_COLOR_STATE_TONES) {
405
+ tones[tone] = buildSelectableStatesColorTheme({scheme, tone}, config)
406
+ }
407
+
408
+ return tones as ThemeColorButtonTones
409
+ }
410
+
411
+ function buildSelectableStatesColorTheme(
412
+ options: {
413
+ scheme: 'light' | 'dark'
414
+ tone: ThemeColorStateToneKey
415
+ },
416
+ config?: ThemeConfig,
417
+ ): ThemeColorButtonStates {
418
+ const {scheme, tone} = options
419
+
420
+ const states: Partial<ThemeColorButtonStates> = {}
421
+
422
+ for (const state of THEME_COLOR_STATES) {
423
+ states[state] = buildSelectableStateColorTheme({tone, scheme, state}, config)
424
+ }
425
+
426
+ return states as ThemeColorButtonStates
427
+ }
428
+
429
+ function buildSelectableStateColorTheme(
430
+ options: {
431
+ scheme: 'light' | 'dark'
432
+ state: ThemeColorStateKey
433
+ tone: ThemeColorStateToneKey
434
+ },
435
+ config?: ThemeConfig,
436
+ ): ThemeColorGenericState {
437
+ const {scheme, state, tone} = options
438
+ const tokens = config?.color?.selectable?.[tone]?.[state]
439
+ const hue = tokens?._hue || 'gray'
440
+ const blendMode = tokens?._blend || ['screen', 'multiply']
441
+ const context: ColorTokenContext = {hue, scheme}
442
+
443
+ return {
444
+ _blend: blendMode[scheme === 'light' ? 0 : 1],
445
+ bg: _color(context, tokens?.bg || DEFAULT_COLOR_TOKEN_VALUE),
446
+ bg2: _color(context, tokens?.bg2 || DEFAULT_COLOR_TOKEN_VALUE),
447
+ fg: _color(context, tokens?.fg || DEFAULT_COLOR_TOKEN_VALUE),
448
+ border: _color(context, tokens?.border || DEFAULT_COLOR_TOKEN_VALUE),
449
+ icon: _color(context, tokens?.icon || DEFAULT_COLOR_TOKEN_VALUE),
450
+ muted: {
451
+ fg: _color(context, tokens?.muted?.fg || DEFAULT_COLOR_TOKEN_VALUE),
452
+ },
453
+ accent: {
454
+ fg: _color(context, tokens?.accent?.fg || DEFAULT_COLOR_TOKEN_VALUE),
455
+ },
456
+ link: {
457
+ fg: _color(context, tokens?.link?.fg || DEFAULT_COLOR_TOKEN_VALUE),
458
+ },
459
+ code: {
460
+ bg: _color(context, tokens?.code?.bg || DEFAULT_COLOR_TOKEN_VALUE),
461
+ fg: _color(context, tokens?.code?.fg || DEFAULT_COLOR_TOKEN_VALUE),
462
+ },
463
+ skeleton: {
464
+ from: _color(context, tokens?.skeleton?.from || DEFAULT_COLOR_TOKEN_VALUE),
465
+ to: _color(context, tokens?.skeleton?.to || DEFAULT_COLOR_TOKEN_VALUE),
466
+ },
467
+ }
468
+ }
469
+
470
+ function buildSpotColorTheme(
471
+ options: {scheme: 'light' | 'dark'},
472
+ config?: ThemeConfig,
473
+ ): ThemeColorSpot {
474
+ const {scheme} = options
475
+ const tokens = config?.color?.avatar
476
+ const context: ColorTokenContext = {hue: 'gray', scheme}
477
+
478
+ return {
479
+ gray: _color(context, tokens?.gray?.bg || DEFAULT_COLOR_TOKEN_VALUE),
480
+ cyan: _color(context, tokens?.cyan?.bg || DEFAULT_COLOR_TOKEN_VALUE),
481
+ blue: _color(context, tokens?.blue?.bg || DEFAULT_COLOR_TOKEN_VALUE),
482
+ purple: _color(context, tokens?.purple?.bg || DEFAULT_COLOR_TOKEN_VALUE),
483
+ magenta: _color(context, tokens?.magenta?.bg || DEFAULT_COLOR_TOKEN_VALUE),
484
+ red: _color(context, tokens?.red?.bg || DEFAULT_COLOR_TOKEN_VALUE),
485
+ orange: _color(context, tokens?.orange?.bg || DEFAULT_COLOR_TOKEN_VALUE),
486
+ yellow: _color(context, tokens?.yellow?.bg || DEFAULT_COLOR_TOKEN_VALUE),
487
+ green: _color(context, tokens?.green?.bg || DEFAULT_COLOR_TOKEN_VALUE),
488
+ }
489
+ }
490
+
491
+ function buildSyntaxColorTheme(
492
+ options: {scheme: 'light' | 'dark'},
493
+ config?: ThemeConfig,
494
+ ): ThemeColorSyntax {
495
+ const {scheme} = options
496
+ const tokens = config?.color?.syntax
497
+ const context: ColorTokenContext = {hue: 'gray', scheme}
498
+
499
+ return {
500
+ atrule: _color(context, tokens?.atrule || DEFAULT_COLOR_TOKEN_VALUE),
501
+ attrName: _color(context, tokens?.attrName || DEFAULT_COLOR_TOKEN_VALUE),
502
+ attrValue: _color(context, tokens?.attrValue || DEFAULT_COLOR_TOKEN_VALUE),
503
+ attribute: _color(context, tokens?.attribute || DEFAULT_COLOR_TOKEN_VALUE),
504
+ boolean: _color(context, tokens?.boolean || DEFAULT_COLOR_TOKEN_VALUE),
505
+ builtin: _color(context, tokens?.builtin || DEFAULT_COLOR_TOKEN_VALUE),
506
+ cdata: _color(context, tokens?.cdata || DEFAULT_COLOR_TOKEN_VALUE),
507
+ char: _color(context, tokens?.char || DEFAULT_COLOR_TOKEN_VALUE),
508
+ class: _color(context, tokens?.class || DEFAULT_COLOR_TOKEN_VALUE),
509
+ className: _color(context, tokens?.className || DEFAULT_COLOR_TOKEN_VALUE),
510
+ comment: _color(context, tokens?.comment || DEFAULT_COLOR_TOKEN_VALUE),
511
+ constant: _color(context, tokens?.constant || DEFAULT_COLOR_TOKEN_VALUE),
512
+ deleted: _color(context, tokens?.deleted || DEFAULT_COLOR_TOKEN_VALUE),
513
+ doctype: _color(context, tokens?.doctype || DEFAULT_COLOR_TOKEN_VALUE),
514
+ entity: _color(context, tokens?.entity || DEFAULT_COLOR_TOKEN_VALUE),
515
+ function: _color(context, tokens?.function || DEFAULT_COLOR_TOKEN_VALUE),
516
+ hexcode: _color(context, tokens?.hexcode || DEFAULT_COLOR_TOKEN_VALUE),
517
+ id: _color(context, tokens?.id || DEFAULT_COLOR_TOKEN_VALUE),
518
+ important: _color(context, tokens?.important || DEFAULT_COLOR_TOKEN_VALUE),
519
+ inserted: _color(context, tokens?.inserted || DEFAULT_COLOR_TOKEN_VALUE),
520
+ keyword: _color(context, tokens?.keyword || DEFAULT_COLOR_TOKEN_VALUE),
521
+ number: _color(context, tokens?.number || DEFAULT_COLOR_TOKEN_VALUE),
522
+ operator: _color(context, tokens?.operator || DEFAULT_COLOR_TOKEN_VALUE),
523
+ prolog: _color(context, tokens?.prolog || DEFAULT_COLOR_TOKEN_VALUE),
524
+ property: _color(context, tokens?.property || DEFAULT_COLOR_TOKEN_VALUE),
525
+ pseudoClass: _color(context, tokens?.pseudoClass || DEFAULT_COLOR_TOKEN_VALUE),
526
+ pseudoElement: _color(context, tokens?.pseudoElement || DEFAULT_COLOR_TOKEN_VALUE),
527
+ punctuation: _color(context, tokens?.punctuation || DEFAULT_COLOR_TOKEN_VALUE),
528
+ regex: _color(context, tokens?.regex || DEFAULT_COLOR_TOKEN_VALUE),
529
+ selector: _color(context, tokens?.selector || DEFAULT_COLOR_TOKEN_VALUE),
530
+ string: _color(context, tokens?.string || DEFAULT_COLOR_TOKEN_VALUE),
531
+ symbol: _color(context, tokens?.symbol || DEFAULT_COLOR_TOKEN_VALUE),
532
+ tag: _color(context, tokens?.tag || DEFAULT_COLOR_TOKEN_VALUE),
533
+ unit: _color(context, tokens?.unit || DEFAULT_COLOR_TOKEN_VALUE),
534
+ url: _color(context, tokens?.url || DEFAULT_COLOR_TOKEN_VALUE),
535
+ variable: _color(context, tokens?.variable || DEFAULT_COLOR_TOKEN_VALUE),
536
+ }
537
+ }
@@ -0,0 +1,85 @@
1
+ import {buildTheme} from './buildTheme'
2
+ import {defaultColorPalette} from './defaults/colorPalette'
3
+
4
+ test('build theme', () => {
5
+ const {color} = buildTheme({
6
+ palette: {
7
+ ...defaultColorPalette,
8
+ black: '#000000',
9
+ white: '#ffffff',
10
+ },
11
+ color: {
12
+ base: {
13
+ default: {
14
+ bg: ['white/0', 'black/0'],
15
+ fg: ['black', 'white'],
16
+ },
17
+ },
18
+ button: {
19
+ ghost: {
20
+ default: {
21
+ '*': {
22
+ border: ['white/0', 'black/0'],
23
+ },
24
+ },
25
+ },
26
+ },
27
+ },
28
+ })
29
+
30
+ expect({
31
+ light: {
32
+ bg: color.light.default.base.bg,
33
+ fg: color.light.default.base.fg,
34
+ default: {
35
+ button: {
36
+ ghost: {
37
+ enabled: {
38
+ border: color.light.default.button.ghost.default.enabled.border,
39
+ },
40
+ },
41
+ },
42
+ },
43
+ },
44
+ dark: {
45
+ bg: color.dark.default.base.bg,
46
+ fg: color.dark.default.base.fg,
47
+ default: {
48
+ button: {
49
+ ghost: {
50
+ enabled: {
51
+ border: color.dark.default.button.ghost.default.enabled.border,
52
+ },
53
+ },
54
+ },
55
+ },
56
+ },
57
+ }).toEqual({
58
+ light: {
59
+ bg: 'rgba(255,255,255,0)',
60
+ fg: '#000000',
61
+ default: {
62
+ button: {
63
+ ghost: {
64
+ enabled: {
65
+ border: 'rgba(246,246,248,0)',
66
+ },
67
+ },
68
+ },
69
+ },
70
+ },
71
+ dark: {
72
+ bg: 'rgba(0,0,0,0)',
73
+ fg: '#ffffff',
74
+ default: {
75
+ button: {
76
+ ghost: {
77
+ enabled: {
78
+ border: 'rgba(19,19,27,0)',
79
+ },
80
+ },
81
+ },
82
+ },
83
+ },
84
+ })
85
+ })
@@ -0,0 +1,28 @@
1
+ import {ThemeConfig} from '../config'
2
+ import {RootTheme} from '../system'
3
+ import {buildColorTheme} from './buildColorTheme'
4
+ import {defaultThemeConfig} from './defaults/config'
5
+ import {defaultThemeFonts} from './defaults/fonts'
6
+ import {renderThemeColorSchemes} from './renderColorTheme'
7
+
8
+ /** @internal */
9
+ export function buildTheme(config?: ThemeConfig): RootTheme {
10
+ const colorTheme = buildColorTheme(config)
11
+
12
+ return {
13
+ avatar: config?.avatar ?? defaultThemeConfig.avatar,
14
+ button: config?.button ?? defaultThemeConfig.button,
15
+ card: config?.card ?? defaultThemeConfig.card,
16
+ color: renderThemeColorSchemes(colorTheme, config),
17
+ container: config?.container ?? defaultThemeConfig.container,
18
+ focusRing: config?.focusRing ?? defaultThemeConfig.focusRing,
19
+ fonts: config?.fonts ?? defaultThemeFonts,
20
+ input: config?.input ?? defaultThemeConfig.input,
21
+ media: config?.media ?? defaultThemeConfig.media,
22
+ radius: config?.radius ?? defaultThemeConfig.radius,
23
+ shadows: config?.shadows ?? defaultThemeConfig.shadows,
24
+ space: config?.space ?? defaultThemeConfig.space,
25
+
26
+ styles: config?.styles ?? defaultThemeConfig.styles,
27
+ }
28
+ }
@@ -0,0 +1,37 @@
1
+ import {ColorHueKey} from '@sanity/color'
2
+ import {ThemeColorTokenValue, parseTokenValue, TokenColorValueNode} from '../config'
3
+
4
+ export interface ColorTokenContext {
5
+ hue: ColorHueKey
6
+ scheme: 'light' | 'dark'
7
+ }
8
+
9
+ export function resolveColorTokenValue(
10
+ context: ColorTokenContext,
11
+ value: ThemeColorTokenValue,
12
+ ): string {
13
+ const {hue, scheme} = context
14
+ const node = parseTokenValue(value[scheme === 'light' ? 0 : 1])
15
+
16
+ if (!node || node.type !== 'color') {
17
+ throw new Error(`Invalid color token: ${value[0]}`)
18
+ }
19
+
20
+ return compileColorTokenValue({...node, hue: node.hue || hue})
21
+ }
22
+
23
+ export function compileColorTokenValue(node: TokenColorValueNode): string {
24
+ let key = ''
25
+
26
+ if (node.key === 'black' || node.key === 'white') {
27
+ key = node.key
28
+ } else {
29
+ key = `${node.hue}/${node.tint}`
30
+ }
31
+
32
+ if (node.opacity !== undefined) {
33
+ key += `/${node.opacity}`
34
+ }
35
+
36
+ return key
37
+ }
@@ -0,0 +1,5 @@
1
+ import {color} from '@sanity/color'
2
+
3
+ import {ThemeColorPalette} from '../../config'
4
+
5
+ export const defaultColorPalette: ThemeColorPalette = color