@sanity/ui 3.0.0-static.10 → 3.0.0-static.12

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 (275) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +1300 -1269
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-cjs/buildCommand.js +28 -10
  4. package/dist/_chunks-cjs/buildCommand.js.map +1 -1
  5. package/dist/_chunks-es/_visual-editing.mjs +1298 -1263
  6. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  7. package/dist/_visual-editing.d.mts +516 -360
  8. package/dist/_visual-editing.d.ts +516 -360
  9. package/dist/cli.js +1 -1
  10. package/dist/css.d.mts +258 -75
  11. package/dist/css.d.ts +258 -75
  12. package/dist/css.js +746 -752
  13. package/dist/css.js.map +1 -1
  14. package/dist/css.mjs +748 -754
  15. package/dist/css.mjs.map +1 -1
  16. package/dist/index.d.mts +1342 -871
  17. package/dist/index.d.ts +1342 -871
  18. package/dist/index.js +433 -325
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.mjs +429 -321
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/sanity-palette.css +105 -1
  23. package/dist/sanity-palette.min.css +1 -0
  24. package/dist/sanity-theme.css +4571 -1
  25. package/dist/sanity-theme.min.css +1 -0
  26. package/dist/system.css +22053 -21710
  27. package/dist/system.min.css +1 -0
  28. package/dist/theme.d.mts +51 -106
  29. package/dist/theme.d.ts +51 -106
  30. package/dist/theme.js +19 -20
  31. package/dist/theme.js.map +1 -1
  32. package/dist/theme.mjs +19 -20
  33. package/dist/theme.mjs.map +1 -1
  34. package/package.json +10 -5
  35. package/src/cli/buildCommand.ts +46 -19
  36. package/src/css/_comp.ts +2 -2
  37. package/src/css/{compile/compileStyle.ts → _compileStyle.ts} +7 -7
  38. package/src/css/_resp.ts +0 -1
  39. package/src/css/{system.style.ts → _system.style.ts} +3 -2
  40. package/src/css/aspects/display/display.ts +1 -0
  41. package/src/css/aspects/display/types.ts +2 -3
  42. package/src/css/aspects/flex/types.ts +4 -12
  43. package/src/css/aspects/flexItem/types.ts +1 -3
  44. package/src/css/aspects/font/font.style.ts +7 -66
  45. package/src/css/aspects/font/types.ts +1 -3
  46. package/src/css/aspects/grid/grid.ts +1 -0
  47. package/src/css/aspects/grid/types.ts +5 -9
  48. package/src/css/aspects/gridItem/gridItem.ts +1 -1
  49. package/src/css/aspects/gridItem/types.ts +7 -18
  50. package/src/css/aspects/height/height.ts +3 -4
  51. package/src/css/aspects/inset/inset.ts +1 -0
  52. package/src/css/aspects/margin/margin.ts +1 -0
  53. package/src/css/aspects/margin/types.ts +1 -0
  54. package/src/css/aspects/maxWidth/maxWidth.ts +1 -0
  55. package/src/css/aspects/maxWidth/types.ts +1 -0
  56. package/src/css/aspects/minWidth/minWidth.ts +1 -0
  57. package/src/css/aspects/minWidth/types.ts +2 -0
  58. package/src/css/aspects/overflow/overflow.ts +1 -0
  59. package/src/css/aspects/padding/padding.ts +1 -0
  60. package/src/css/aspects/pointerEvents/pointerEvents.ts +1 -0
  61. package/src/css/aspects/position/position.ts +1 -0
  62. package/src/css/aspects/shadow/shadow.style.ts +16 -41
  63. package/src/css/aspects/shadow/shadow.ts +1 -0
  64. package/src/css/aspects/textOverflow/textOverflow.ts +1 -0
  65. package/src/css/aspects/textOverflow/types.ts +1 -0
  66. package/src/css/aspects/width/types.ts +2 -0
  67. package/src/css/aspects/width/width.ts +1 -0
  68. package/src/css/compilePalette.ts +32 -0
  69. package/src/css/compileSystem.ts +7 -0
  70. package/src/css/{compile/compileTheme.ts → compileTheme.ts} +1 -0
  71. package/src/css/compileTheme_v3.ts +434 -0
  72. package/src/css/components/breadcrumbs/breadcrumbs.ts +1 -0
  73. package/src/css/components/dialog/dialog.ts +7 -0
  74. package/src/css/components/menu/menu.ts +2 -0
  75. package/src/css/components/skeleton/skeleton.style.ts +8 -4
  76. package/src/css/components/skeleton/skeleton.ts +4 -0
  77. package/src/css/components/skeleton/types.ts +4 -0
  78. package/src/css/components/toast/toast.ts +5 -0
  79. package/src/css/components/tree/tree.ts +1 -0
  80. package/src/css/composeClassNames.ts +4 -2
  81. package/src/css/constants.ts +11 -0
  82. package/src/css/index.ts +4 -3
  83. package/src/css/primitives/_arrow/_arrow.style.ts +6 -8
  84. package/src/css/primitives/_arrow/_arrow.ts +7 -0
  85. package/src/css/primitives/_input/input.ts +2 -0
  86. package/src/css/primitives/_selectable/_selectable.style.ts +24 -25
  87. package/src/css/primitives/_selectable/selectable.ts +1 -2
  88. package/src/css/primitives/avatar/avatar.style.ts +5 -8
  89. package/src/css/primitives/avatar/avatar.ts +6 -0
  90. package/src/css/primitives/avatar/types.ts +1 -0
  91. package/src/css/primitives/box/types.ts +1 -3
  92. package/src/css/primitives/button/button.style.ts +48 -15
  93. package/src/css/primitives/button/button.ts +4 -21
  94. package/src/css/primitives/button/index.ts +1 -0
  95. package/src/css/primitives/button/types.ts +18 -0
  96. package/src/css/primitives/card/card.style.ts +4 -7
  97. package/src/css/primitives/card/card.ts +2 -2
  98. package/src/css/primitives/card/types.ts +2 -2
  99. package/src/css/primitives/checkbox/checkbox.ts +2 -0
  100. package/src/css/primitives/container/container.ts +1 -0
  101. package/src/css/primitives/container/types.ts +1 -0
  102. package/src/css/primitives/kbd/kbd.ts +1 -0
  103. package/src/css/primitives/label/types.ts +7 -2
  104. package/src/css/primitives/popover/popover.ts +2 -0
  105. package/src/css/primitives/radio/radio.ts +1 -0
  106. package/src/css/primitives/select/select.ts +2 -0
  107. package/src/css/primitives/spinner/spinner.ts +2 -0
  108. package/src/css/primitives/switch/switch.ts +5 -0
  109. package/src/css/primitives/text/types.ts +4 -0
  110. package/src/css/primitives/textArea/textArea.ts +1 -0
  111. package/src/css/primitives/textInput/textInput.ts +1 -0
  112. package/src/css/primitives/token/token.style.ts +37 -36
  113. package/src/css/primitives/tooltip/tooltip.ts +2 -0
  114. package/src/css/responsiveRules.ts +12 -19
  115. package/src/css/scopeClassName.ts +1 -0
  116. package/src/css/types.ts +115 -15
  117. package/src/css/util.ts +5 -0
  118. package/src/css/utils/srOnly/srOnly.ts +1 -0
  119. package/src/css/varNames.ts +230 -143
  120. package/src/css/vars.ts +53 -22
  121. package/src/theme/palette/constants.ts +2 -0
  122. package/src/theme/palette/types.ts +3 -0
  123. package/src/theme/types.ts +2 -6
  124. package/src/theme/v0/focusRing.ts +1 -3
  125. package/src/theme/v0/font.ts +6 -18
  126. package/src/theme/v0/layer.ts +1 -3
  127. package/src/theme/v0/shadow.ts +2 -6
  128. package/src/theme/v2/avatar.ts +1 -3
  129. package/src/theme/v2/color/_system.ts +1 -3
  130. package/src/theme/v2/color/avatar.ts +2 -6
  131. package/src/theme/v2/color/badge.ts +2 -6
  132. package/src/theme/v2/color/button.ts +3 -9
  133. package/src/theme/v2/color/color.ts +3 -9
  134. package/src/theme/v2/color/input.ts +3 -9
  135. package/src/theme/v2/color/kbd.ts +1 -3
  136. package/src/theme/v2/color/selectable.ts +2 -6
  137. package/src/theme/v2/color/state.ts +1 -3
  138. package/src/theme/v2/color/syntax.ts +1 -3
  139. package/src/theme/v2/input.ts +1 -3
  140. package/src/theme/v2/theme.ts +2 -6
  141. package/src/theme/v3/buildTheme_v3.ts +2 -1
  142. package/src/theme/v3/color/color.ts +6 -4
  143. package/src/theme/v3/color/renderColor.ts +4 -1
  144. package/src/theme/v3/{defaults.ts → defaultTokens.ts} +2 -2
  145. package/src/theme/v3/index.ts +1 -1
  146. package/src/theme/v3/resolveTokens.ts +18 -18
  147. package/src/ui/RootClassNames.tsx +44 -0
  148. package/src/ui/StyleTags.tsx +3 -1
  149. package/src/ui/_compat/helpers.ts +72 -0
  150. package/src/ui/_compat/index.ts +2 -6
  151. package/src/ui/_compat/studioTheme.ts +7 -0
  152. package/src/ui/_compat/theme/themeColorProvider.tsx +2 -6
  153. package/src/ui/_compat/theme/themeProvider.tsx +2 -6
  154. package/src/ui/_compat/theme/types.ts +1 -3
  155. package/src/ui/_compat/theme/useRootTheme.ts +1 -3
  156. package/src/ui/_compat/theme/useTheme.ts +2 -6
  157. package/src/ui/_compat/types.ts +0 -83
  158. package/src/ui/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
  159. package/src/ui/components/autocomplete/autocomplete.tsx +86 -114
  160. package/src/ui/components/autocomplete/autocompleteOption.tsx +2 -0
  161. package/src/ui/components/autocomplete/types.ts +3 -8
  162. package/src/ui/components/breadcrumbs/breadcrumbs.tsx +27 -21
  163. package/src/ui/components/dialog/dialog.tsx +89 -291
  164. package/src/ui/components/dialog/dialogCard.tsx +183 -0
  165. package/src/ui/components/dialog/isTargetWithinScope.ts +14 -0
  166. package/src/ui/components/hotkeys/hotkeys.tsx +33 -15
  167. package/src/ui/components/menu/__workshop__/asComponent.tsx +6 -6
  168. package/src/ui/components/menu/menu.tsx +27 -33
  169. package/src/ui/components/menu/menuButton.tsx +10 -14
  170. package/src/ui/components/menu/menuDivider.tsx +25 -13
  171. package/src/ui/components/menu/menuGroup.tsx +34 -26
  172. package/src/ui/components/menu/menuItem.tsx +51 -40
  173. package/src/ui/components/skeleton/codeSkeleton.tsx +53 -0
  174. package/src/ui/components/skeleton/headingSkeleton.tsx +52 -0
  175. package/src/ui/components/skeleton/index.ts +3 -0
  176. package/src/ui/components/skeleton/labelSkeleton.tsx +51 -0
  177. package/src/ui/components/skeleton/skeleton.tsx +39 -16
  178. package/src/ui/components/skeleton/textSkeleton.tsx +31 -110
  179. package/src/ui/components/tab/tab.tsx +23 -19
  180. package/src/ui/components/tab/tabList.tsx +34 -33
  181. package/src/ui/components/tab/tabPanel.tsx +25 -19
  182. package/src/ui/components/toast/toast.tsx +21 -16
  183. package/src/ui/components/toast/toastLayer.tsx +28 -10
  184. package/src/ui/components/toast/toastProvider.tsx +2 -6
  185. package/src/ui/components/toast/types.ts +2 -6
  186. package/src/ui/components/toast/useToast.ts +1 -3
  187. package/src/ui/components/tree/tree.tsx +194 -187
  188. package/src/ui/components/tree/treeGroup.tsx +25 -5
  189. package/src/ui/components/tree/treeItem.tsx +35 -23
  190. package/src/ui/hooks/useClickOutside.ts +2 -6
  191. package/src/ui/hooks/useClickOutsideEvent.ts +3 -9
  192. package/src/ui/index.ts +1 -0
  193. package/src/ui/primitives/_selectable/selectable.tsx +33 -20
  194. package/src/ui/primitives/avatar/avatar.tsx +28 -31
  195. package/src/ui/primitives/avatar/avatarCounter.tsx +33 -25
  196. package/src/ui/primitives/avatar/avatarStack.tsx +31 -24
  197. package/src/ui/primitives/avatar/types.ts +2 -0
  198. package/src/ui/primitives/badge/__workshop__/props.tsx +1 -9
  199. package/src/ui/primitives/badge/__workshop__/tones.tsx +1 -6
  200. package/src/ui/primitives/badge/badge.tsx +33 -32
  201. package/src/ui/primitives/badge/types.ts +2 -1
  202. package/src/ui/primitives/box/box.tsx +59 -29
  203. package/src/ui/primitives/button/__workshop__/sanityUploadButton.tsx +3 -3
  204. package/src/ui/primitives/button/__workshop__/uploadButton.tsx +2 -1
  205. package/src/ui/primitives/button/button.test.tsx +1 -15
  206. package/src/ui/primitives/button/button.tsx +63 -70
  207. package/src/ui/primitives/card/__workshop__/asComponent.tsx +3 -3
  208. package/src/ui/primitives/card/card.tsx +22 -22
  209. package/src/ui/primitives/card/cardProvider.tsx +2 -0
  210. package/src/ui/primitives/checkbox/checkbox.tsx +26 -15
  211. package/src/ui/primitives/code/code.tsx +24 -22
  212. package/src/ui/primitives/container/container.tsx +26 -15
  213. package/src/ui/primitives/flex/flex.tsx +21 -19
  214. package/src/ui/primitives/grid/grid.tsx +21 -16
  215. package/src/ui/primitives/heading/heading.tsx +42 -19
  216. package/src/ui/primitives/inline/inline.tsx +26 -23
  217. package/src/ui/primitives/kbd/kbd.tsx +25 -23
  218. package/src/ui/primitives/label/label.tsx +29 -26
  219. package/src/ui/primitives/popover/popover.tsx +293 -271
  220. package/src/ui/primitives/popover/popoverCard.tsx +122 -120
  221. package/src/ui/primitives/radio/radio.tsx +30 -14
  222. package/src/ui/primitives/select/select.tsx +24 -16
  223. package/src/ui/primitives/spinner/animatedSpinnerIcon.tsx +4 -2
  224. package/src/ui/primitives/spinner/spinner.tsx +24 -12
  225. package/src/ui/primitives/stack/stack.tsx +27 -18
  226. package/src/ui/primitives/switch/switch.tsx +31 -14
  227. package/src/ui/primitives/text/text.tsx +30 -24
  228. package/src/ui/primitives/textArea/textArea.tsx +33 -18
  229. package/src/ui/primitives/textInput/textInput.tsx +28 -40
  230. package/src/ui/primitives/tooltip/constants.ts +1 -1
  231. package/src/ui/primitives/tooltip/tooltip.tsx +85 -61
  232. package/src/ui/primitives/tooltip/tooltipCard.tsx +89 -82
  233. package/src/ui/primitives/types.ts +1 -3
  234. package/src/ui/types/avatar.ts +3 -6
  235. package/src/ui/types/badge.ts +1 -3
  236. package/src/ui/types/button.ts +1 -3
  237. package/src/ui/types/card.ts +1 -3
  238. package/src/ui/types/dialog.ts +1 -3
  239. package/src/ui/types/props.ts +20 -10
  240. package/src/ui/utils/arrow/arrow.tsx +43 -25
  241. package/src/ui/utils/boundaryElement/boundaryElementProvider.tsx +2 -6
  242. package/src/ui/utils/boundaryElement/types.ts +1 -3
  243. package/src/ui/utils/boundaryElement/useBoundaryElement.ts +1 -3
  244. package/src/ui/utils/elementQuery/elementQuery.tsx +43 -19
  245. package/src/ui/utils/errorBoundary.tsx +2 -0
  246. package/src/ui/utils/index.ts +0 -1
  247. package/src/ui/utils/layer/layer.tsx +23 -93
  248. package/src/ui/utils/layer/layerCard.tsx +92 -0
  249. package/src/ui/utils/layer/layerProvider.tsx +2 -6
  250. package/src/ui/utils/layer/useLayer.ts +1 -3
  251. package/src/ui/utils/portal/portal.ts +2 -6
  252. package/src/ui/utils/portal/portalProvider.tsx +2 -6
  253. package/src/ui/utils/portal/types.ts +1 -3
  254. package/src/ui/utils/portal/usePortal.ts +1 -3
  255. package/src/ui/utils/srOnly/srOnly.tsx +25 -20
  256. package/src/ui/utils/virtualList/virtualList.tsx +69 -50
  257. package/src/css/compile/compilePalette.ts +0 -27
  258. package/src/css/compile/compileRule.ts +0 -97
  259. package/src/css/compile/compileRules.test.ts +0 -36
  260. package/src/css/compile/compileRules.ts +0 -43
  261. package/src/css/compile/compileSystem.ts +0 -10
  262. package/src/css/compile/compileTheme_v3.ts +0 -401
  263. package/src/css/compile/types.ts +0 -6
  264. package/src/css/components/breadcrumbs/rules.ts +0 -25
  265. package/src/css/components/dialog/rules.ts +0 -78
  266. package/src/css/components/skeleton/rules.ts +0 -113
  267. package/src/css/components/toast/rules.ts +0 -18
  268. package/src/css/components/tree/rules.ts +0 -168
  269. package/src/css/primitives/_selectable/_contants.ts +0 -11
  270. package/src/css/primitives/card/_constants.ts +0 -13
  271. package/src/css/primitives/popover/rules.ts +0 -5
  272. package/src/css/primitives/spinner/rules.ts +0 -21
  273. package/src/css/primitives/token/rules.ts +0 -45
  274. package/src/ui/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
  275. package/src/ui/utils/conditionalWrapper/index.ts +0 -1
@@ -1,21 +1,26 @@
1
1
  import {_comp} from '../../_comp'
2
2
 
3
+ /** @public */
3
4
  export function toastLayer() {
4
5
  return _comp('toast-layer')
5
6
  }
6
7
 
8
+ /** @public */
7
9
  export function toast() {
8
10
  return _comp('toast')
9
11
  }
10
12
 
13
+ /** @public */
11
14
  export function toastLoadingBar() {
12
15
  return _comp('toast-loading-bar')
13
16
  }
14
17
 
18
+ /** @public */
15
19
  export function toastLoadingBarProgress() {
16
20
  return _comp('toast-loading-bar-progress')
17
21
  }
18
22
 
23
+ /** @public */
19
24
  export function toastLoadingBarMask() {
20
25
  return _comp('toast-loading-bar-mask')
21
26
  }
@@ -1,5 +1,6 @@
1
1
  import {_comp} from '../../_comp'
2
2
 
3
+ /** @beta */
3
4
  export function treeItem(): string | undefined {
4
5
  return _comp('tree-item')
5
6
  }
@@ -1,4 +1,5 @@
1
- export function getClassNames(...classNames: Array<string | false | undefined>): string[] {
1
+ /** @internal */
2
+ export function _getClassNames(...classNames: Array<string | false | undefined>): string[] {
2
3
  return classNames
3
4
  .map((n) => typeof n === 'string' && n.trim())
4
5
  .filter(Boolean)
@@ -6,10 +7,11 @@ export function getClassNames(...classNames: Array<string | false | undefined>):
6
7
  .split(' ')
7
8
  }
8
9
 
10
+ /** @public */
9
11
  export function composeClassNames(
10
12
  ...classNames: Array<string | false | undefined>
11
13
  ): string | undefined {
12
- return unique(getClassNames(...classNames)).join(' ') || undefined
14
+ return unique(_getClassNames(...classNames)).join(' ') || undefined
13
15
  }
14
16
 
15
17
  function unique<T>(array: T[]): T[] {
@@ -1 +1,12 @@
1
+ /** @public */
2
+ export const BREAKPOINTS = {
3
+ 1: 360,
4
+ 2: 600,
5
+ 3: 900,
6
+ 4: 1200,
7
+ 5: 1800,
8
+ 6: 2400,
9
+ }
10
+
11
+ /** @public */
1
12
  export const PREFIX = 's-'
package/src/css/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export * from './aspects'
2
- export * from './compile/compilePalette'
3
- export * from './compile/compileSystem'
4
- export * from './compile/compileTheme'
2
+ export * from './compilePalette'
3
+ export * from './compileSystem'
4
+ export * from './compileTheme'
5
5
  export * from './components/breadcrumbs'
6
6
  export * from './components/dialog'
7
7
  export * from './components/menu'
@@ -9,6 +9,7 @@ export * from './components/skeleton'
9
9
  export * from './components/toast'
10
10
  export * from './components/tree'
11
11
  export * from './composeClassNames'
12
+ export * from './constants'
12
13
  export * from './primitives/_arrow'
13
14
  export * from './primitives/_input'
14
15
  export * from './primitives/_selectable'
@@ -20,49 +20,47 @@ const primitive: StyleRules = {
20
20
  },
21
21
 
22
22
  // top
23
-
24
23
  '[data-placement^="top"] > &': {
25
24
  bottom: 'calc(0px - var(--arrow-size))',
26
25
  },
27
-
28
26
  '[data-placement^="top"] > & svg': {
29
27
  transform: 'rotate(0deg)',
30
28
  },
31
29
 
32
30
  // right
33
-
34
31
  '[data-placement^="right"] > &': {
35
32
  left: 'calc(0px - var(--arrow-size))',
36
33
  },
37
-
38
34
  '[data-placement^="right"] > & svg': {
39
35
  transform: 'rotate(90deg)',
40
36
  },
41
37
 
42
38
  // left
43
-
44
39
  '[data-placement^="left"] > &': {
45
40
  right: 'calc(0px - var(--arrow-size))',
46
41
  },
47
-
48
42
  '[data-placement^="left"] > & svg': {
49
43
  transform: 'rotate(-90deg)',
50
44
  },
51
45
 
52
46
  // bottom
53
-
54
47
  '[data-placement^="bottom"] > &': {
55
48
  top: 'calc(0px - var(--arrow-size))',
56
49
  },
57
-
58
50
  '[data-placement^="bottom"] > & svg': {
59
51
  transform: 'rotate(180deg)',
60
52
  },
61
53
  },
62
54
  },
63
55
 
56
+ '.arrow-stroke-mask': {
57
+ // @ts-expect-error `y` is not a valid property in 'csstype'
58
+ y: vars.shadow.outline,
59
+ },
60
+
64
61
  '.arrow-stroke': {
65
62
  stroke: vars.color.shadow.outline,
63
+ strokeWidth: `calc(${vars.card.shadow.outline} * 2)`,
66
64
  },
67
65
 
68
66
  '.arrow-shape': {
@@ -5,10 +5,17 @@ export function _arrow(): string | undefined {
5
5
  return _comp('arrow')
6
6
  }
7
7
 
8
+ /** @internal */
8
9
  export function _arrowStroke(): string | undefined {
9
10
  return _comp('arrow-stroke')
10
11
  }
11
12
 
13
+ /** @internal */
14
+ export function _arrowStrokeMask(): string | undefined {
15
+ return _comp('arrow-stroke-mask')
16
+ }
17
+
18
+ /** @internal */
12
19
  export function _arrowShape(): string | undefined {
13
20
  return _comp('arrow-shape')
14
21
  }
@@ -16,10 +16,12 @@ export function _input(props: InputStyleProps): string | undefined {
16
16
  )
17
17
  }
18
18
 
19
+ /** @internal */
19
20
  export function _inputElement(): string | undefined {
20
21
  return _comp('input-element')
21
22
  }
22
23
 
24
+ /** @internal */
23
25
  export function _inputPresentation(): string | undefined {
24
26
  return _comp('input-presentation')
25
27
  }
@@ -3,16 +3,15 @@ import {THEME_COLOR_STATE_TONES} from '@sanity/ui/theme'
3
3
  import {Properties, Style, StyleRules} from '../../types'
4
4
  import {varNames} from '../../varNames'
5
5
  import {vars} from '../../vars'
6
- import {toneMap} from './_contants'
7
6
 
8
7
  const primitive: StyleRules = {
9
8
  '.selectable': {
10
9
  'backgroundColor': vars.color.bg,
11
10
  'color': vars.color.fg,
12
11
 
13
- '--color-bg': vars.color.tinted.bg[0],
14
- '--color-border': vars.color.tinted.border[2],
15
- '--color-fg': vars.color.tinted.fg[2],
12
+ [varNames.color.bg]: vars.color.tinted.bg[0],
13
+ [varNames.color.border]: vars.color.tinted.border[2],
14
+ [varNames.color.fg]: vars.color.tinted.fg[2],
16
15
 
17
16
  '@nest': {
18
17
  '&:is(button)': {
@@ -43,36 +42,36 @@ const primitive: StyleRules = {
43
42
  },
44
43
 
45
44
  '&:not([data-disabled]):hover': {
46
- '--color-bg': vars.color.tinted.bg[1],
47
- '--color-border': vars.color.tinted.border[3],
48
- '--color-fg': vars.color.tinted.fg[1],
49
- '--color-muted-bg': vars.color.tinted.bg[2],
50
- '--color-muted-fg': vars.color.tinted.fg[4],
45
+ [varNames.color.bg]: vars.color.tinted.bg[1],
46
+ [varNames.color.border]: vars.color.tinted.border[3],
47
+ [varNames.color.fg]: vars.color.tinted.fg[1],
48
+ [varNames.color.muted.bg]: vars.color.tinted.bg[2],
49
+ [varNames.color.muted.fg]: vars.color.tinted.fg[4],
51
50
  },
52
51
 
53
52
  '&:not([data-disabled]):active, &:not([data-disabled])[aria-pressed="true"], &:not([data-disabled])[data-pressed]':
54
53
  {
55
- '--color-bg': vars.color.tinted.bg[2],
56
- '--color-border': vars.color.tinted.border[4],
57
- '--color-fg': vars.color.tinted.fg[0],
58
- '--color-muted-bg': vars.color.tinted.bg[3],
59
- '--color-muted-fg': vars.color.tinted.fg[4],
54
+ [varNames.color.bg]: vars.color.tinted.bg[2],
55
+ [varNames.color.border]: vars.color.tinted.border[4],
56
+ [varNames.color.fg]: vars.color.tinted.fg[0],
57
+ [varNames.color.muted.bg]: vars.color.tinted.bg[3],
58
+ [varNames.color.muted.fg]: vars.color.tinted.fg[4],
60
59
  },
61
60
 
62
61
  '&:not([data-disabled]):focus': {
63
- '--color-bg': vars.color.solid.bg[0],
64
- '--color-border': vars.color.solid.border[1],
65
- '--color-fg': vars.color.solid.fg[1],
66
- '--color-muted-bg': vars.color.solid.bg[1],
67
- '--color-muted-fg': vars.color.solid.fg[3],
62
+ [varNames.color.bg]: vars.color.solid.primary.bg[0],
63
+ [varNames.color.border]: vars.color.solid.primary.border[1],
64
+ [varNames.color.fg]: vars.color.solid.primary.fg[0],
65
+ [varNames.color.muted.bg]: vars.color.solid.primary.bg[1],
66
+ [varNames.color.muted.fg]: vars.color.solid.primary.fg[3],
68
67
  },
69
68
 
70
69
  '&[data-disabled]': {
71
- '--color-bg': vars.color.tinted.bg[0],
72
- '--color-border': vars.color.tinted.border[1],
73
- '--color-fg': vars.color.tinted.border[4],
74
- '--color-muted-bg': vars.color.tinted.bg[1],
75
- '--color-muted-fg': vars.color.tinted.border[4],
70
+ [varNames.color.bg]: vars.color.tinted.bg[0],
71
+ [varNames.color.border]: vars.color.tinted.border[1],
72
+ [varNames.color.fg]: vars.color.tinted.border[4],
73
+ [varNames.color.muted.bg]: vars.color.tinted.bg[1],
74
+ [varNames.color.muted.fg]: vars.color.tinted.border[4],
76
75
  },
77
76
  },
78
77
  },
@@ -89,7 +88,7 @@ function buildSelectableTones(): Record<string, Properties> {
89
88
  const target = varNames.color
90
89
  const source = vars.color
91
90
 
92
- rules[`&.${toneMap[tone]}`] = {
91
+ rules[`&.${tone}`] = {
93
92
  [target.tinted.bg[0]]: source.tinted[tone].bg[0],
94
93
  [target.tinted.bg[1]]: source.tinted[tone].bg[1],
95
94
  [target.tinted.bg[2]]: source.tinted[tone].bg[2],
@@ -1,9 +1,8 @@
1
1
  import {_comp} from '../../_comp'
2
2
  import {radius} from '../../aspects'
3
- import {toneMap} from './_contants'
4
3
  import {SelectableStyleProps} from './types'
5
4
 
6
5
  /** @internal */
7
6
  export function _selectable(props: SelectableStyleProps): string | undefined {
8
- return _comp('selectable', toneMap[props.tone ?? 'default'], radius(props))
7
+ return _comp('selectable', props.tone ?? 'default', radius(props))
9
8
  }
@@ -7,6 +7,8 @@ import {vars} from '../../vars'
7
7
 
8
8
  const primitive: StyleRules = {
9
9
  '.avatar': {
10
+ [varNames.color.fg]: vars.color.avatar.fg,
11
+
10
12
  'backgroundColor': vars.color.avatar.bg,
11
13
  'position': 'relative',
12
14
  'boxSizing': 'border-box',
@@ -19,12 +21,7 @@ const primitive: StyleRules = {
19
21
  'borderRadius': vars.avatar.size,
20
22
 
21
23
  '@nest': {
22
- '&[data-status="inactive"]': {
23
- opacity: 0.5,
24
- },
25
-
26
- // &:is(button)
27
- '&:is(button)': {
24
+ 'button&': {
28
25
  WebkitFontSmoothing: 'inherit',
29
26
  appearance: 'none',
30
27
  margin: 0,
@@ -35,12 +32,12 @@ const primitive: StyleRules = {
35
32
  outline: 'none',
36
33
  },
37
34
 
38
- '&:is(button):focus': {
35
+ 'button&:focus': {
39
36
  outline: 'var(--avatar-focus-ring-width) solid var(--color-focus-ring)',
40
37
  outlineOffset: 'var(--avatar-focus-ring-offset)',
41
38
  },
42
39
 
43
- '&:is(button):focus:not(:focus-visible)': {
40
+ 'button&:focus:not(:focus-visible)': {
44
41
  boxShadow: 'none',
45
42
  },
46
43
 
@@ -2,26 +2,32 @@ import {_comp} from '../../_comp'
2
2
  import {_resp} from '../../_resp'
3
3
  import {AvatarStyleProps} from './types'
4
4
 
5
+ /** @public */
5
6
  export function avatar(props: AvatarStyleProps): string | undefined {
6
7
  return _comp('avatar', props.color || 'gray', _resp('avatar', props.size))
7
8
  }
8
9
 
10
+ /** @public */
9
11
  export function avatarArrow(): string | undefined {
10
12
  return _comp('avatar-arrow')
11
13
  }
12
14
 
15
+ /** @public */
13
16
  export function avatarInitials(): string | undefined {
14
17
  return _comp('avatar-initials')
15
18
  }
16
19
 
20
+ /** @public */
17
21
  export function avatarImage(): string | undefined {
18
22
  return _comp('avatar-image')
19
23
  }
20
24
 
25
+ /** @public */
21
26
  export function avatarCounter(props: {size?: AvatarStyleProps['size']}): string | undefined {
22
27
  return _comp('avatar-counter', _resp('avatar', props.size))
23
28
  }
24
29
 
30
+ /** @public */
25
31
  export function avatarStack(props: {size?: AvatarStyleProps['size']}): string | undefined {
26
32
  return _comp('avatar-stack', _resp('avatar', props.size))
27
33
  }
@@ -2,6 +2,7 @@ import {AvatarSize, ThemeColorAvatarColorKey} from '@sanity/ui/theme'
2
2
 
3
3
  import {ResponsiveProp} from '../../types'
4
4
 
5
+ /** @public */
5
6
  export interface AvatarStyleProps {
6
7
  color: ThemeColorAvatarColorKey
7
8
  size: ResponsiveProp<AvatarSize>
@@ -20,9 +20,7 @@ import {
20
20
  } from '../../aspects'
21
21
  import {ResponsiveProp} from '../../types'
22
22
 
23
- /**
24
- * @public
25
- */
23
+ /** @public */
26
24
  export type BoxSizing = 'content' | 'border'
27
25
 
28
26
  /** @public */
@@ -96,11 +96,22 @@ for (const tone of THEME_COLOR_STATE_TONES) {
96
96
  },
97
97
 
98
98
  '&[data-disabled]': {
99
- [varNames.color.bg]: vars.color.default.tinted.bg[1],
100
- [varNames.color.border]: vars.color.default.tinted.border[0],
101
- [varNames.color.fg]: vars.color.default.tinted.fg[2],
102
- [varNames.color.muted.bg]: vars.color.default.tinted.bg[2],
103
- [varNames.color.muted.fg]: vars.color.default.tinted.fg[1],
99
+ [varNames.color.avatar.gray.bg]: vars.color.tinted.default.bg[3],
100
+ [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[3],
101
+ [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[3],
102
+ [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[3],
103
+ [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[3],
104
+ [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[3],
105
+ [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[3],
106
+ [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[3],
107
+ [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[3],
108
+ [varNames.color.bg]: vars.color.tinted.default.bg[1],
109
+ [varNames.color.border]: vars.color.tinted.default.border[1],
110
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[2],
111
+ [varNames.color.code.fg]: vars.color.tinted.default.border[4],
112
+ [varNames.color.fg]: vars.color.tinted.default.border[4],
113
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[2],
114
+ [varNames.color.muted.fg]: vars.color.tinted.default.border[4],
104
115
  },
105
116
  },
106
117
  }
@@ -143,11 +154,22 @@ for (const tone of THEME_COLOR_STATE_TONES) {
143
154
  },
144
155
 
145
156
  '&[data-disabled]': {
146
- [varNames.color.bg]: vars.color.default.tinted.bg[1],
147
- [varNames.color.border]: vars.color.default.tinted.border[0],
148
- [varNames.color.fg]: vars.color.default.tinted.fg[2],
149
- [varNames.color.muted.bg]: vars.color.default.tinted.bg[2],
150
- [varNames.color.muted.fg]: vars.color.default.tinted.fg[1],
157
+ [varNames.color.avatar.gray.bg]: vars.color.tinted.default.bg[2],
158
+ [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[2],
159
+ [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[2],
160
+ [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[2],
161
+ [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[2],
162
+ [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[2],
163
+ [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[2],
164
+ [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[2],
165
+ [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[2],
166
+ [varNames.color.bg]: vars.color.tinted.default.bg[0],
167
+ [varNames.color.border]: vars.color.tinted.default.border[0],
168
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[1],
169
+ [varNames.color.code.fg]: vars.color.tinted.default.border[3],
170
+ [varNames.color.fg]: vars.color.tinted.default.border[4],
171
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
172
+ [varNames.color.muted.fg]: vars.color.tinted.default.border[3],
151
173
  },
152
174
  },
153
175
  }
@@ -188,11 +210,22 @@ for (const tone of THEME_COLOR_STATE_TONES) {
188
210
  },
189
211
 
190
212
  '&[data-disabled]': {
191
- [varNames.color.bg]: vars.color.default.tinted.bg[0],
192
- [varNames.color.border]: vars.color.default.tinted.border[0],
193
- [varNames.color.fg]: vars.color.default.tinted.fg[2],
194
- [varNames.color.muted.bg]: vars.color.default.tinted.bg[1],
195
- [varNames.color.muted.fg]: vars.color.default.tinted.fg[1],
213
+ [varNames.color.avatar.gray.bg]: vars.color.tinted.default.bg[2],
214
+ [varNames.color.avatar.blue.bg]: vars.color.tinted.default.bg[2],
215
+ [varNames.color.avatar.purple.bg]: vars.color.tinted.default.bg[2],
216
+ [varNames.color.avatar.magenta.bg]: vars.color.tinted.default.bg[2],
217
+ [varNames.color.avatar.red.bg]: vars.color.tinted.default.bg[2],
218
+ [varNames.color.avatar.orange.bg]: vars.color.tinted.default.bg[2],
219
+ [varNames.color.avatar.yellow.bg]: vars.color.tinted.default.bg[2],
220
+ [varNames.color.avatar.green.bg]: vars.color.tinted.default.bg[2],
221
+ [varNames.color.avatar.cyan.bg]: vars.color.tinted.default.bg[2],
222
+ [varNames.color.bg]: vars.color.tinted.default.bg[0],
223
+ [varNames.color.border]: vars.color.tinted.default.border[0],
224
+ [varNames.color.code.bg]: vars.color.tinted.default.bg[1],
225
+ [varNames.color.code.fg]: vars.color.tinted.default.border[3],
226
+ [varNames.color.fg]: vars.color.tinted.default.border[4],
227
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
228
+ [varNames.color.muted.fg]: vars.color.tinted.default.border[3],
196
229
  },
197
230
  },
198
231
  }
@@ -1,27 +1,9 @@
1
- import {ThemeColorButtonModeKey, ThemeColorStateToneKey} from '@sanity/ui/theme'
2
-
3
1
  import {_comp} from '../../_comp'
4
- import {
5
- display,
6
- DisplayStyleProps,
7
- flexItem,
8
- FlexItemStyleProps,
9
- radius,
10
- RadiusStyleProps,
11
- width,
12
- WidthStyleProps,
13
- } from '../../aspects'
2
+ import {display, flexItem, radius, width} from '../../aspects'
14
3
  import {toneMap, variantMap} from './_constants'
4
+ import {ButtonStyleProps} from './types'
15
5
 
16
- export interface ButtonStyleProps
17
- extends DisplayStyleProps,
18
- FlexItemStyleProps,
19
- RadiusStyleProps,
20
- WidthStyleProps {
21
- mode?: ThemeColorButtonModeKey
22
- tone?: ThemeColorStateToneKey
23
- }
24
-
6
+ /** @public */
25
7
  export function button(props: ButtonStyleProps): string | undefined {
26
8
  const {mode, tone} = props
27
9
 
@@ -36,6 +18,7 @@ export function button(props: ButtonStyleProps): string | undefined {
36
18
  )
37
19
  }
38
20
 
21
+ /** @public */
39
22
  export function buttonLoadingBox(): string | undefined {
40
23
  return 'button-loading-box'
41
24
  }
@@ -1 +1,2 @@
1
1
  export * from './button'
2
+ export * from './types'
@@ -0,0 +1,18 @@
1
+ import {ThemeColorButtonModeKey, ThemeColorStateToneKey} from '@sanity/ui/theme'
2
+
3
+ import {
4
+ DisplayStyleProps,
5
+ FlexItemStyleProps,
6
+ RadiusStyleProps,
7
+ WidthStyleProps,
8
+ } from '../../aspects'
9
+
10
+ /** @public */
11
+ export interface ButtonStyleProps
12
+ extends DisplayStyleProps,
13
+ FlexItemStyleProps,
14
+ RadiusStyleProps,
15
+ WidthStyleProps {
16
+ mode?: ThemeColorButtonModeKey
17
+ tone?: ThemeColorStateToneKey
18
+ }
@@ -8,7 +8,6 @@ import {
8
8
  import {ColorCardVarNames, ColorCardVars, Properties, Style, StyleRules} from '../../types'
9
9
  import {varNames} from '../../varNames'
10
10
  import {vars} from '../../vars'
11
- import {toneMap} from './_constants'
12
11
 
13
12
  const primitive: StyleRules = {
14
13
  '.card': {
@@ -96,7 +95,7 @@ const primitive: StyleRules = {
96
95
  // '--color-muted-fg': vars.color.solid.fg[3],
97
96
  // },
98
97
 
99
- 'a&[data-disabled]), button&[data-disabled]': {
98
+ 'a&[data-disabled], button&[data-disabled]': {
100
99
  [varNames.color.bg]: vars.color.tinted.default.bg[2],
101
100
  [varNames.color.border]: vars.color.tinted.default.border[4],
102
101
  [varNames.color.fg]: vars.color.tinted.default.fg[0],
@@ -165,11 +164,13 @@ for (const tone of THEME_COLOR_CARD_TONES) {
165
164
  '--card-shadow-umbra-color': vars.color.shadow.umbra,
166
165
  '--card-shadow-penumbra-color': vars.color.shadow.penumbra,
167
166
  '--card-shadow-ambient-color': vars.color.shadow.ambient,
167
+
168
+ // todo
168
169
  // '--card-skeleton-from-color': 'var(--color-skeleton-from)',
169
170
  // '--card-skeleton-to-color': 'var(--color-skeleton-to)',
170
171
  })
171
172
 
172
- primitive[`.card.${toneMap[tone]}`] = toneProps
173
+ primitive[`.card.${tone}`] = toneProps
173
174
  }
174
175
 
175
176
  export const cardStyle: Style = {layers: {primitive}}
@@ -179,10 +180,6 @@ function _assignToneProps(
179
180
  _varNames: ColorCardVarNames,
180
181
  _vars: ColorCardVars,
181
182
  ) {
182
- Object.assign(toneProps, {
183
- [_varNames.accent.fg]: _vars.accent.fg,
184
- })
185
-
186
183
  for (const hue of THEME_COLOR_AVATAR_COLORS) {
187
184
  toneProps[`${_varNames.avatar[hue].bg}`] = _vars.avatar[hue].bg
188
185
  toneProps[`${_varNames.avatar[hue].fg}`] = _vars.avatar[hue].fg
@@ -1,12 +1,12 @@
1
1
  import {_comp} from '../../_comp'
2
2
  import {shadow} from '../../aspects'
3
- import {toneMap} from './_constants'
4
3
  import {CardStyleProps} from './types'
5
4
 
5
+ /** @public */
6
6
  export function card(props: CardStyleProps): string | undefined {
7
7
  return _comp(
8
8
  props.scheme,
9
- toneMap[props.tone ?? 'default'],
9
+ props.tone ?? 'default',
10
10
  'card',
11
11
  props.checkered && 'card-checkered',
12
12
  shadow(props),
@@ -1,9 +1,9 @@
1
1
  import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'
2
2
 
3
3
  import {ShadowStyleProps} from '../../aspects'
4
- import {BoxStyleProps} from '../box'
5
4
 
6
- export interface CardStyleProps extends BoxStyleProps, ShadowStyleProps {
5
+ /** @public */
6
+ export interface CardStyleProps extends ShadowStyleProps {
7
7
  checkered?: boolean
8
8
  scheme?: ThemeColorSchemeKey
9
9
  tone?: ThemeColorCardToneKey | 'inherit'
@@ -1,9 +1,11 @@
1
1
  import {_comp} from '../../_comp'
2
2
 
3
+ /** @public */
3
4
  export function checkbox(): string | undefined {
4
5
  return _comp('checkbox')
5
6
  }
6
7
 
8
+ /** @public */
7
9
  export function checkboxInput(): string | undefined {
8
10
  return _comp('checkbox-input')
9
11
  }
@@ -2,6 +2,7 @@ import {_comp} from '../../_comp'
2
2
  import {maxWidth} from '../../aspects'
3
3
  import {ContainerStyleProps} from './types'
4
4
 
5
+ /** @public */
5
6
  export function container(props: ContainerStyleProps): string | undefined {
6
7
  return _comp('container', maxWidth({maxWidth: props.width}))
7
8
  }
@@ -2,6 +2,7 @@ import {ContainerWidth} from '@sanity/ui/theme'
2
2
 
3
3
  import {ResponsiveProp} from '../../types'
4
4
 
5
+ /** @public */
5
6
  export interface ContainerStyleProps {
6
7
  width?: ResponsiveProp<ContainerWidth>
7
8
  }
@@ -2,6 +2,7 @@ import {_comp} from '../../_comp'
2
2
  import {radius} from '../../aspects'
3
3
  import {KBDStyleProps} from './types'
4
4
 
5
+ /** @public */
5
6
  export function kbd(props: KBDStyleProps): string | undefined {
6
7
  return _comp('kbd', radius(props))
7
8
  }
@@ -1,12 +1,17 @@
1
+ import {FontLabelSize} from '@sanity/ui/theme'
2
+
1
3
  import {FontStyleProps} from '../../aspects'
2
4
  import {ResponsiveProp} from '../../types'
3
5
 
4
- /** @public */
6
+ /**
7
+ * @public
8
+ * @deprecated Use `FontLabelSize` from `@sanity/ui/theme` instead
9
+ */
5
10
  export type LabelSize = number
6
11
 
7
12
  /** @public */
8
13
  export interface LabelStyleProps extends FontStyleProps {
9
14
  accent?: boolean
10
15
  muted?: boolean
11
- size?: ResponsiveProp<LabelSize>
16
+ size?: ResponsiveProp<FontLabelSize>
12
17
  }