@sanity/ui 3.0.0-static.17 → 3.0.0-static.19

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 (542) hide show
  1. package/dist/_chunks-cjs/_visual-editing.cjs +138 -137
  2. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
  3. package/dist/_chunks-cjs/buildCommand.cjs +21 -22
  4. package/dist/_chunks-cjs/buildCommand.cjs.map +1 -1
  5. package/dist/_chunks-es/_visual-editing.js +139 -138
  6. package/dist/_chunks-es/_visual-editing.js.map +1 -1
  7. package/dist/_visual-editing.d.cts +12 -22
  8. package/dist/_visual-editing.d.ts +12 -22
  9. package/dist/cli.cjs +1 -1
  10. package/dist/css.cjs +1589 -2016
  11. package/dist/css.cjs.map +1 -1
  12. package/dist/css.d.cts +9427 -874
  13. package/dist/css.d.ts +9427 -874
  14. package/dist/css.js +1591 -2018
  15. package/dist/css.js.map +1 -1
  16. package/dist/index.cjs +28 -40
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +26 -23
  19. package/dist/index.d.ts +26 -23
  20. package/dist/index.js +30 -42
  21. package/dist/index.js.map +1 -1
  22. package/dist/theme.cjs +2749 -2756
  23. package/dist/theme.cjs.map +1 -1
  24. package/dist/theme.d.cts +242 -161
  25. package/dist/theme.d.ts +242 -161
  26. package/dist/theme.js +2750 -2757
  27. package/dist/theme.js.map +1 -1
  28. package/dist/ui-system.css +15719 -16097
  29. package/dist/ui-system.min.css +1 -1
  30. package/dist/ui-theme.css +850 -4568
  31. package/dist/ui-theme.min.css +1 -1
  32. package/dist/ui.css +16569 -20772
  33. package/dist/ui.min.css +1 -1
  34. package/package.json +10 -15
  35. package/src/cli/buildCommand.ts +13 -30
  36. package/src/core/StyleTags.tsx +4 -12
  37. package/src/core/_compat/styles/_responsive.ts +1 -1
  38. package/src/core/_compat/theme/theme.test.tsx +4 -5
  39. package/src/core/_compat/theme/themeColorProvider.tsx +2 -2
  40. package/src/core/_compat/theme/themeContext.ts +2 -2
  41. package/src/core/_compat/theme/themeProvider.tsx +2 -2
  42. package/src/core/_compat/theme/types.ts +1 -1
  43. package/src/core/_compat/theme/useRootTheme.ts +1 -1
  44. package/src/core/_compat/theme/useTheme.ts +1 -1
  45. package/src/core/components/autocomplete/__workshop__/async.tsx +2 -2
  46. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
  47. package/src/core/components/autocomplete/__workshop__/custom.tsx +11 -11
  48. package/src/core/components/autocomplete/__workshop__/example.tsx +6 -7
  49. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +2 -2
  50. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -1
  51. package/src/core/components/autocomplete/autocomplete.tsx +5 -5
  52. package/src/core/components/autocomplete/autocompleteOption.tsx +1 -1
  53. package/src/core/components/autocomplete/autocompleteReducer.ts +1 -1
  54. package/src/core/components/autocomplete/constants.ts +1 -1
  55. package/src/core/components/autocomplete/types.ts +1 -1
  56. package/src/core/components/breadcrumbs/__workshop__/example.tsx +1 -1
  57. package/src/core/components/breadcrumbs/breadcrumbs.tsx +7 -7
  58. package/src/core/components/dialog/__workshop__/activate.tsx +4 -4
  59. package/src/core/components/dialog/__workshop__/position.tsx +1 -1
  60. package/src/core/components/dialog/__workshop__/props.tsx +1 -1
  61. package/src/core/components/dialog/__workshop__/wrapped.tsx +2 -2
  62. package/src/core/components/dialog/dialog.tsx +15 -8
  63. package/src/core/components/dialog/dialogCard.tsx +18 -3
  64. package/src/core/components/dialog/dialogContext.ts +1 -1
  65. package/src/core/components/dialog/dialogProvider.tsx +3 -3
  66. package/src/core/components/dialog/useDialog.ts +1 -1
  67. package/src/core/components/hotkeys/hotkeys.tsx +4 -4
  68. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +5 -4
  69. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +2 -2
  70. package/src/core/components/menu/__workshop__/customMenuItem.tsx +3 -3
  71. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  72. package/src/core/components/menu/__workshop__/groups.tsx +2 -2
  73. package/src/core/components/menu/__workshop__/menuButton.tsx +1 -1
  74. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  75. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  76. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +13 -4
  77. package/src/core/components/menu/__workshop__/selectedItem.tsx +2 -2
  78. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  79. package/src/core/components/menu/menu.test.tsx +6 -7
  80. package/src/core/components/menu/menu.tsx +2 -2
  81. package/src/core/components/menu/menuButton.tsx +9 -9
  82. package/src/core/components/menu/menuContext.ts +1 -1
  83. package/src/core/components/menu/menuDivider.tsx +3 -3
  84. package/src/core/components/menu/menuGroup.tsx +9 -9
  85. package/src/core/components/menu/menuItem.tsx +9 -6
  86. package/src/core/components/menu/useMenu.ts +1 -1
  87. package/src/core/components/menu/useMenuController.ts +4 -4
  88. package/src/core/components/skeleton/__workshop__/delay.tsx +1 -1
  89. package/src/core/components/skeleton/__workshop__/skeleton.tsx +2 -2
  90. package/src/core/components/skeleton/codeSkeleton.tsx +5 -5
  91. package/src/core/components/skeleton/headingSkeleton.tsx +5 -5
  92. package/src/core/components/skeleton/labelSkeleton.tsx +5 -5
  93. package/src/core/components/skeleton/skeleton.tsx +4 -4
  94. package/src/core/components/skeleton/textSkeleton.tsx +5 -5
  95. package/src/core/components/tab/__workshop__/example.tsx +1 -1
  96. package/src/core/components/tab/tab.tsx +7 -7
  97. package/src/core/components/tab/tabList.tsx +14 -7
  98. package/src/core/components/tab/tabPanel.tsx +10 -7
  99. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  100. package/src/core/components/toast/toast.test.tsx +5 -5
  101. package/src/core/components/toast/toast.tsx +6 -7
  102. package/src/core/components/toast/toastContext.ts +1 -1
  103. package/src/core/components/toast/toastLayer.tsx +2 -2
  104. package/src/core/components/toast/toastProvider.tsx +1 -1
  105. package/src/core/components/toast/types.ts +1 -1
  106. package/src/core/components/toast/useToast.ts +1 -1
  107. package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
  108. package/src/core/components/tree/__workshop__/basic.tsx +1 -1
  109. package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
  110. package/src/core/components/tree/helpers.ts +1 -1
  111. package/src/core/components/tree/tree.tsx +6 -6
  112. package/src/core/components/tree/treeContext.ts +1 -1
  113. package/src/core/components/tree/treeGroup.tsx +2 -2
  114. package/src/core/components/tree/treeItem.tsx +15 -15
  115. package/src/core/components/tree/types.ts +2 -2
  116. package/src/core/components/tree/useTree.ts +1 -1
  117. package/src/core/hooks/useClickOutside.test.tsx +15 -16
  118. package/src/core/hooks/useClickOutsideEvent.test.tsx +4 -5
  119. package/src/core/hooks/useDelayed.test.ts +6 -7
  120. package/src/core/hooks/useDelayedState.ts +1 -1
  121. package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -1
  122. package/src/core/hooks/useElementSize.ts +1 -1
  123. package/src/core/hooks/useForwardedRef.ts +1 -1
  124. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  125. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -18
  126. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +10 -10
  127. package/src/core/hooks/usePrefersDark.hydration.test.tsx +4 -4
  128. package/src/core/hooks/usePrefersDark.test.tsx +1 -0
  129. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +4 -4
  130. package/src/core/hooks/usePrefersReducedMotion.test.tsx +1 -0
  131. package/src/core/middleware/origin.ts +1 -1
  132. package/src/core/primitives/_selectable/selectable.tsx +3 -3
  133. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +1 -1
  134. package/src/core/primitives/avatar/avatar.tsx +6 -6
  135. package/src/core/primitives/avatar/avatarCounter.tsx +3 -3
  136. package/src/core/primitives/avatar/avatarStack.tsx +7 -7
  137. package/src/core/primitives/avatar/types.ts +1 -3
  138. package/src/core/primitives/badge/badge.test.tsx +2 -3
  139. package/src/core/primitives/badge/badge.tsx +3 -3
  140. package/src/core/primitives/box/__workshop__/responsive.tsx +2 -1
  141. package/src/core/primitives/box/box.tsx +4 -2
  142. package/src/core/primitives/button/__workshop__/custom.tsx +2 -2
  143. package/src/core/primitives/button/__workshop__/customIcons.tsx +3 -3
  144. package/src/core/primitives/button/__workshop__/disabled.tsx +9 -9
  145. package/src/core/primitives/button/__workshop__/props.tsx +3 -4
  146. package/src/core/primitives/button/__workshop__/stacked.tsx +4 -5
  147. package/src/core/primitives/button/button.test.tsx +2 -3
  148. package/src/core/primitives/button/button.tsx +11 -6
  149. package/src/core/primitives/card/__workshop__/asButton.tsx +16 -7
  150. package/src/core/primitives/card/__workshop__/checkered.tsx +1 -1
  151. package/src/core/primitives/card/__workshop__/index.ts +1 -1
  152. package/src/core/primitives/card/__workshop__/interactive.tsx +1 -1
  153. package/src/core/primitives/card/__workshop__/listNavigation.tsx +3 -3
  154. package/src/core/primitives/card/__workshop__/props.tsx +3 -3
  155. package/src/core/primitives/card/__workshop__/selected.tsx +2 -2
  156. package/src/core/primitives/card/__workshop__/{allTones.tsx → tones.tsx} +3 -3
  157. package/src/core/primitives/card/card.tsx +4 -4
  158. package/src/core/primitives/card/cardContext.ts +2 -2
  159. package/src/core/primitives/card/cardProvider.tsx +3 -3
  160. package/src/core/primitives/card/types.ts +2 -2
  161. package/src/core/primitives/card/useCard.ts +2 -1
  162. package/src/core/primitives/checkbox/__workshop__/props.tsx +2 -0
  163. package/src/core/primitives/checkbox/__workshop__/tones.tsx +11 -20
  164. package/src/core/primitives/checkbox/checkbox.tsx +5 -7
  165. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  166. package/src/core/primitives/code/code.tsx +3 -3
  167. package/src/core/primitives/container/container.tsx +4 -4
  168. package/src/core/primitives/flex/flex.tsx +2 -2
  169. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +1 -1
  170. package/src/core/primitives/heading/heading.tsx +2 -2
  171. package/src/core/primitives/inline/__workshop__/plain.tsx +1 -1
  172. package/src/core/primitives/inline/inline.tsx +2 -2
  173. package/src/core/primitives/inline/types.ts +1 -0
  174. package/src/core/primitives/kbd/kbd.tsx +5 -5
  175. package/src/core/primitives/label/label.tsx +5 -5
  176. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +2 -2
  177. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -4
  178. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +4 -4
  179. package/src/core/primitives/popover/__workshop__/TestStory.tsx +2 -3
  180. package/src/core/primitives/popover/constants.ts +1 -1
  181. package/src/core/primitives/popover/floating-ui/size.ts +2 -2
  182. package/src/core/primitives/popover/helpers.ts +1 -1
  183. package/src/core/primitives/popover/popover.tsx +1 -1
  184. package/src/core/primitives/popover/popoverLayer.tsx +4 -4
  185. package/src/core/primitives/popover/types.ts +3 -2
  186. package/src/core/primitives/radio/__workshop__/example.tsx +1 -1
  187. package/src/core/primitives/radio/radio.tsx +5 -5
  188. package/src/core/primitives/select/__workshop__/plain.tsx +15 -3
  189. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  190. package/src/core/primitives/select/select.tsx +4 -10
  191. package/src/core/primitives/spinner/__workshop__/Props.tsx +1 -2
  192. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +3 -3
  193. package/src/core/primitives/spinner/spinner.tsx +3 -3
  194. package/src/core/primitives/stack/__workshop__/plain.tsx +1 -1
  195. package/src/core/primitives/stack/stack.tsx +5 -5
  196. package/src/core/primitives/switch/switch.tsx +3 -3
  197. package/src/core/primitives/text/__workshop__/colored.tsx +5 -5
  198. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  199. package/src/core/primitives/text/text.tsx +6 -6
  200. package/src/core/primitives/textArea/__workshop__/plain.tsx +35 -23
  201. package/src/core/primitives/textArea/textArea.tsx +14 -5
  202. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +1 -1
  203. package/src/core/primitives/textInput/__workshop__/plain.tsx +9 -15
  204. package/src/core/primitives/textInput/__workshop__/states.tsx +4 -4
  205. package/src/core/primitives/textInput/__workshop__/tones.tsx +2 -2
  206. package/src/core/primitives/textInput/textInput.tsx +13 -11
  207. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +2 -2
  208. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +1 -1
  209. package/src/core/primitives/tooltip/__workshop__/props.tsx +5 -4
  210. package/src/core/primitives/tooltip/constants.ts +1 -1
  211. package/src/core/primitives/tooltip/tooltip.test.tsx +61 -60
  212. package/src/core/primitives/tooltip/tooltip.tsx +11 -6
  213. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +1 -1
  214. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +3 -3
  215. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -1
  216. package/src/core/primitives/tooltip/tooltipLayer.tsx +4 -4
  217. package/src/core/primitives/types.ts +15 -24
  218. package/src/core/types/badge.ts +1 -1
  219. package/src/core/types/button.ts +1 -1
  220. package/src/core/types/card.ts +1 -1
  221. package/src/core/types/selectable.ts +1 -1
  222. package/src/core/utils/arrow/arrow.tsx +5 -14
  223. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +5 -5
  224. package/src/core/utils/boundaryElement/boundaryElementContext.ts +1 -1
  225. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +2 -2
  226. package/src/core/utils/boundaryElement/useBoundaryElement.ts +1 -1
  227. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +15 -8
  228. package/src/core/utils/elementQuery/elementQuery.tsx +1 -1
  229. package/src/core/utils/errorBoundary.tsx +4 -4
  230. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +5 -5
  231. package/src/core/utils/layer/__workshop__/nested.tsx +3 -3
  232. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +9 -5
  233. package/src/core/utils/layer/getLayerContext.test.ts +3 -1
  234. package/src/core/utils/layer/getLayerContext.ts +1 -1
  235. package/src/core/utils/layer/layer.test.tsx +5 -5
  236. package/src/core/utils/layer/layer.tsx +2 -2
  237. package/src/core/utils/layer/layerCard.tsx +3 -3
  238. package/src/core/utils/layer/layerContext.ts +1 -1
  239. package/src/core/utils/layer/layerProvider.tsx +10 -2
  240. package/src/core/utils/layer/useLayer.ts +1 -1
  241. package/src/core/utils/portal/__workshop__/named.tsx +3 -3
  242. package/src/core/utils/portal/portal.test.tsx +5 -5
  243. package/src/core/utils/portal/portal.tsx +3 -2
  244. package/src/core/utils/portal/portalContext.ts +1 -1
  245. package/src/core/utils/portal/portalProvider.tsx +2 -2
  246. package/src/core/utils/portal/usePortal.ts +1 -1
  247. package/src/core/utils/srOnly/srOnly.tsx +3 -3
  248. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
  249. package/src/core/utils/virtualList/virtualList.tsx +3 -3
  250. package/src/css/_assign.ts +3 -0
  251. package/src/css/_compileStyle.ts +12 -4
  252. package/src/css/_compileTheme.ts +10 -13
  253. package/src/css/_composeClassNames.ts +12 -0
  254. package/src/css/_fromEntries.ts +3 -0
  255. package/src/css/_getClassNames.ts +9 -0
  256. package/src/css/_hash.ts +9 -0
  257. package/src/css/_mergeStyles.ts +1 -1
  258. package/src/css/_resp.ts +6 -12
  259. package/src/css/_scopeClassName.ts +9 -0
  260. package/src/css/_scopeClassNames.ts +12 -0
  261. package/src/css/_system.style.ts +2 -0
  262. package/src/css/aspects/border/border.style.ts +2 -2
  263. package/src/css/aspects/border/border.ts +3 -3
  264. package/src/css/aspects/border/types.ts +1 -1
  265. package/src/css/aspects/boxSizing/boxSizing.style.ts +10 -0
  266. package/src/css/aspects/boxSizing/boxSizing.ts +8 -0
  267. package/src/css/aspects/boxSizing/index.ts +2 -0
  268. package/src/css/aspects/boxSizing/types.ts +9 -0
  269. package/src/css/aspects/display/display.style.ts +8 -8
  270. package/src/css/aspects/display/display.ts +3 -3
  271. package/src/css/aspects/display/types.ts +1 -1
  272. package/src/css/aspects/flex/flex.ts +3 -3
  273. package/src/css/aspects/flex/types.ts +1 -1
  274. package/src/css/aspects/flexItem/flex.style.ts +1 -1
  275. package/src/css/aspects/flexItem/flexItem.ts +3 -3
  276. package/src/css/aspects/flexItem/types.ts +1 -1
  277. package/src/css/aspects/font/font.style.ts +33 -22
  278. package/src/css/aspects/font/font.ts +3 -3
  279. package/src/css/aspects/font/types.ts +1 -1
  280. package/src/css/aspects/gap/gap.style.ts +2 -2
  281. package/src/css/aspects/gap/gap.ts +3 -3
  282. package/src/css/aspects/gap/types.ts +2 -2
  283. package/src/css/aspects/grid/grid.ts +3 -3
  284. package/src/css/aspects/grid/types.ts +1 -1
  285. package/src/css/aspects/gridItem/gridItem.ts +3 -3
  286. package/src/css/aspects/gridItem/types.ts +1 -1
  287. package/src/css/aspects/height/height.ts +3 -3
  288. package/src/css/aspects/index.ts +1 -0
  289. package/src/css/aspects/inset/inset.ts +3 -3
  290. package/src/css/aspects/inset/types.ts +1 -1
  291. package/src/css/aspects/margin/margin.style.ts +10 -10
  292. package/src/css/aspects/margin/margin.ts +3 -3
  293. package/src/css/aspects/margin/types.ts +1 -1
  294. package/src/css/aspects/maxWidth/maxWidth.style.ts +1 -1
  295. package/src/css/aspects/maxWidth/maxWidth.ts +4 -3
  296. package/src/css/aspects/maxWidth/types.ts +2 -2
  297. package/src/css/aspects/minWidth/minWidth.ts +4 -3
  298. package/src/css/aspects/minWidth/types.ts +1 -1
  299. package/src/css/aspects/overflow/overflow.ts +3 -3
  300. package/src/css/aspects/overflow/types.ts +1 -1
  301. package/src/css/aspects/padding/padding.style.ts +2 -5
  302. package/src/css/aspects/padding/padding.ts +3 -3
  303. package/src/css/aspects/padding/types.ts +2 -2
  304. package/src/css/aspects/pointerEvents/pointerEvents.ts +3 -3
  305. package/src/css/aspects/position/position.ts +3 -3
  306. package/src/css/aspects/position/types.ts +1 -1
  307. package/src/css/aspects/radius/radius.style.ts +1 -1
  308. package/src/css/aspects/radius/radius.ts +3 -3
  309. package/src/css/aspects/radius/types.ts +2 -2
  310. package/src/css/aspects/shadow/shadow.style.ts +7 -7
  311. package/src/css/aspects/shadow/shadow.ts +3 -3
  312. package/src/css/aspects/shadow/types.ts +2 -2
  313. package/src/css/aspects/textAlign/textAlign.style.ts +1 -1
  314. package/src/css/aspects/textAlign/textAlign.ts +3 -3
  315. package/src/css/aspects/textOverflow/textOverflow.ts +3 -3
  316. package/src/css/aspects/width/types.ts +2 -2
  317. package/src/css/aspects/width/width.style.ts +1 -1
  318. package/src/css/aspects/width/width.ts +4 -3
  319. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +1 -1
  320. package/src/css/components/breadcrumbs/breadcrumbs.ts +2 -2
  321. package/src/css/components/dialog/dialog.style.ts +14 -16
  322. package/src/css/components/dialog/dialog.ts +9 -8
  323. package/src/css/components/menu/menu.style.ts +2 -2
  324. package/src/css/components/menu/menu.ts +3 -3
  325. package/src/css/components/skeleton/skeleton.style.ts +24 -17
  326. package/src/css/components/skeleton/skeleton.ts +8 -7
  327. package/src/css/components/skeleton/types.ts +4 -6
  328. package/src/css/components/toast/toast.style.ts +1 -1
  329. package/src/css/components/toast/toast.ts +6 -6
  330. package/src/css/components/tree/tree.style.ts +7 -23
  331. package/src/css/components/tree/tree.ts +2 -2
  332. package/src/css/constants.ts +1 -3
  333. package/src/css/index.ts +3 -5
  334. package/src/css/prefix/constants.ts +6 -0
  335. package/src/css/prefix/types.ts +1 -0
  336. package/src/css/primitives/_arrow/_arrow.style.ts +11 -13
  337. package/src/css/primitives/_arrow/_arrow.ts +5 -5
  338. package/src/css/primitives/_input/_input.style.ts +171 -75
  339. package/src/css/primitives/_input/input.ts +13 -10
  340. package/src/css/primitives/_input/types.ts +3 -3
  341. package/src/css/primitives/_selectable/_selectable.style.ts +5 -6
  342. package/src/css/primitives/_selectable/selectable.ts +4 -3
  343. package/src/css/primitives/_selectable/types.ts +2 -2
  344. package/src/css/primitives/avatar/avatar.style.ts +38 -39
  345. package/src/css/primitives/avatar/avatar.ts +8 -8
  346. package/src/css/primitives/avatar/types.ts +3 -3
  347. package/src/css/primitives/badge/badge.style.ts +2 -3
  348. package/src/css/primitives/badge/badge.ts +7 -3
  349. package/src/css/primitives/badge/types.ts +2 -2
  350. package/src/css/primitives/box/box.style.ts +5 -15
  351. package/src/css/primitives/box/box.ts +7 -9
  352. package/src/css/primitives/box/types.ts +3 -6
  353. package/src/css/primitives/button/button.style.ts +189 -162
  354. package/src/css/primitives/button/button.ts +11 -4
  355. package/src/css/primitives/button/types.ts +1 -1
  356. package/src/css/primitives/card/card.style.ts +102 -68
  357. package/src/css/primitives/card/card.ts +5 -7
  358. package/src/css/primitives/card/types.ts +2 -2
  359. package/src/css/primitives/checkbox/checkbox.style.ts +125 -101
  360. package/src/css/primitives/checkbox/checkbox.ts +3 -3
  361. package/src/css/primitives/code/code.style.ts +24 -26
  362. package/src/css/primitives/code/code.ts +7 -3
  363. package/src/css/primitives/code/types.ts +2 -2
  364. package/src/css/primitives/container/container.style.ts +1 -1
  365. package/src/css/primitives/container/container.ts +4 -3
  366. package/src/css/primitives/container/types.ts +2 -2
  367. package/src/css/primitives/heading/heading.style.ts +31 -23
  368. package/src/css/primitives/heading/heading.ts +10 -8
  369. package/src/css/primitives/heading/types.ts +3 -2
  370. package/src/css/primitives/kbd/kbd.style.ts +7 -7
  371. package/src/css/primitives/kbd/kbd.ts +4 -3
  372. package/src/css/primitives/kbd/types.ts +1 -1
  373. package/src/css/primitives/label/label.style.ts +27 -24
  374. package/src/css/primitives/label/label.ts +5 -8
  375. package/src/css/primitives/label/types.ts +4 -3
  376. package/src/css/primitives/popover/popover.style.ts +6 -2
  377. package/src/css/primitives/popover/popover.ts +3 -3
  378. package/src/css/primitives/radio/radio.style.ts +37 -76
  379. package/src/css/primitives/radio/radio.ts +2 -2
  380. package/src/css/primitives/select/select.style.ts +3 -3
  381. package/src/css/primitives/select/select.ts +5 -5
  382. package/src/css/primitives/select/types.ts +1 -1
  383. package/src/css/primitives/spinner/spinner.style.ts +1 -1
  384. package/src/css/primitives/spinner/spinner.ts +3 -3
  385. package/src/css/primitives/stack/stack.style.ts +6 -2
  386. package/src/css/primitives/stack/stack.ts +2 -2
  387. package/src/css/primitives/switch/switch.style.ts +47 -39
  388. package/src/css/primitives/switch/switch.ts +6 -6
  389. package/src/css/primitives/text/text.style.ts +28 -23
  390. package/src/css/primitives/text/text.ts +5 -8
  391. package/src/css/primitives/text/types.ts +2 -2
  392. package/src/css/primitives/textArea/textArea.style.ts +6 -2
  393. package/src/css/primitives/textArea/textArea.ts +4 -4
  394. package/src/css/primitives/textArea/types.ts +1 -1
  395. package/src/css/primitives/textInput/textInput.style.ts +23 -17
  396. package/src/css/primitives/textInput/textInput.ts +4 -4
  397. package/src/css/primitives/textInput/types.ts +2 -8
  398. package/src/css/primitives/token/token.style.ts +4 -4
  399. package/src/css/primitives/tooltip/tooltip.style.ts +5 -4
  400. package/src/css/primitives/tooltip/tooltip.ts +3 -3
  401. package/src/css/renderColor.ts +31 -0
  402. package/src/css/theme/index.ts +14 -0
  403. package/src/css/theme/lib/contract/buildVarContract.ts +76 -0
  404. package/src/css/theme/lib/contract/index.ts +2 -0
  405. package/src/css/theme/lib/contract/types.ts +15 -0
  406. package/src/css/theme/resolveTheme.ts +852 -0
  407. package/src/css/types.ts +26 -910
  408. package/src/css/utils/srOnly/srOnly.style.ts +1 -1
  409. package/src/css/utils/srOnly/srOnly.ts +3 -3
  410. package/src/theme/getScopedTheme.ts +4 -4
  411. package/src/theme/index.ts +0 -5
  412. package/src/theme/types.ts +4 -4
  413. package/src/theme/v0/color/_generic.ts +1 -1
  414. package/src/theme/v0/color/button.ts +1 -1
  415. package/src/theme/v0/color/card.ts +1 -1
  416. package/src/theme/v0/color/color.ts +11 -11
  417. package/src/theme/v0/color/input.ts +1 -1
  418. package/src/theme/v0/color/muted.ts +1 -1
  419. package/src/theme/v0/color/selectable.ts +1 -1
  420. package/src/theme/v0/color/solid.ts +1 -1
  421. package/src/theme/v0/color/spot.ts +1 -1
  422. package/src/theme/v0/styles.ts +1 -1
  423. package/src/theme/v0/theme.ts +7 -7
  424. package/src/theme/v2/avatar.ts +1 -1
  425. package/src/theme/{build → v2/build}/_deprecated/color/_selectable/createSelectableTones.ts +3 -3
  426. package/src/theme/{build → v2/build}/_deprecated/color/_solid/createSolidTones.ts +2 -2
  427. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonModes.ts +7 -2
  428. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonTones.ts +4 -4
  429. package/src/theme/{build → v2/build}/_deprecated/color/card/createCardStates.ts +3 -3
  430. package/src/theme/{build → v2/build}/_deprecated/color/color.test.ts +1 -1
  431. package/src/theme/{build → v2/build}/_deprecated/color/defaults.ts +1 -1
  432. package/src/theme/{build → v2/build}/_deprecated/color/factory.ts +3 -3
  433. package/src/theme/{build → v2/build}/_deprecated/color/input/createInputModes.ts +7 -2
  434. package/src/theme/{build → v2/build}/_deprecated/color/muted/createMuted.ts +2 -2
  435. package/src/theme/{build → v2/build}/_deprecated/color/spot/createSpot.ts +2 -2
  436. package/src/theme/{build → v2/build}/buildColorTheme.test.ts +3 -1
  437. package/src/theme/{build → v2/build}/buildColorTheme.ts +24 -24
  438. package/src/theme/{build → v2/build}/buildTheme.test.ts +10 -8
  439. package/src/theme/{build → v2/build}/buildTheme.ts +4 -4
  440. package/src/theme/{build → v2/build}/colorToken/colorToken.ts +2 -2
  441. package/src/theme/{build → v2/build}/colorToken/compileColorToken.ts +1 -1
  442. package/src/theme/{build → v2/build}/colorToken/types.ts +2 -2
  443. package/src/theme/{build → v2/build}/lib/color-fns/blend/mix.ts +1 -1
  444. package/src/theme/{build → v2/build}/lib/color-fns/blend/multiply.ts +1 -1
  445. package/src/theme/{build → v2/build}/lib/color-fns/blend/screen.ts +1 -1
  446. package/src/theme/{build → v2/build}/lib/color-fns/color-fns.test.ts +1 -1
  447. package/src/theme/{build → v2/build}/lib/color-fns/contrastRatio.ts +5 -2
  448. package/src/theme/{build → v2/build}/lib/color-fns/convert.ts +1 -1
  449. package/src/theme/{build → v2/build}/lib/color-fns/parse.ts +1 -1
  450. package/src/theme/{build → v2/build}/mixThemeColor.test.ts +2 -0
  451. package/src/theme/{build → v2/build}/mixThemeColor.ts +1 -1
  452. package/src/theme/{build → v2/build}/renderColorTheme.ts +27 -27
  453. package/src/theme/{build → v2/build}/renderColorValue.ts +3 -3
  454. package/src/theme/{build → v2/build}/resolveColorTokens.ts +13 -13
  455. package/src/theme/v2/color/_helpers.ts +2 -2
  456. package/src/theme/v2/color/_system.ts +1 -1
  457. package/src/theme/v2/color/avatar.ts +1 -1
  458. package/src/theme/v2/color/badge.ts +1 -1
  459. package/src/theme/v2/color/button.ts +2 -2
  460. package/src/theme/v2/color/color.ts +7 -7
  461. package/src/theme/v2/color/input.ts +5 -1
  462. package/src/theme/v2/color/selectable.ts +2 -2
  463. package/src/theme/v2/color/state.ts +4 -4
  464. package/src/theme/{config → v2/config}/helpers.ts +6 -13
  465. package/src/theme/{config → v2/config}/system.ts +11 -12
  466. package/src/theme/{config → v2/config}/tokens/color/types.ts +14 -10
  467. package/src/theme/{config → v2/config}/tokens/index.ts +0 -1
  468. package/src/theme/{config → v2/config}/tokens/parseTokenValue.test.ts +2 -0
  469. package/src/theme/{config → v2/config}/tokens/parseTokenValue.ts +2 -2
  470. package/src/theme/{config → v2/config}/tokens/types.ts +3 -3
  471. package/src/theme/{config → v2/config}/types.ts +8 -6
  472. package/src/theme/{defaults → v2/defaults}/colorPalette.ts +1 -1
  473. package/src/theme/{defaults → v2/defaults}/colorTokens.ts +1 -1
  474. package/src/theme/{defaults → v2/defaults}/config.ts +1 -1
  475. package/src/theme/{defaults → v2/defaults}/fonts.ts +1 -1
  476. package/src/theme/v2/index.ts +2 -0
  477. package/src/theme/v2/input.ts +1 -1
  478. package/src/theme/v2/theme.ts +8 -8
  479. package/src/theme/{_constants.ts → v3/_constants.ts} +6 -3
  480. package/src/theme/v3/_parseColorToken.ts +185 -0
  481. package/src/theme/v3/buildTheme_v3.ts +11 -7
  482. package/src/theme/v3/color/_constants.ts +15 -0
  483. package/src/theme/v3/color/avatar.ts +14 -0
  484. package/src/theme/v3/color/card.ts +53 -53
  485. package/src/theme/v3/color/color.ts +66 -68
  486. package/src/theme/v3/color/element.ts +8 -8
  487. package/src/theme/v3/color/index.ts +2 -2
  488. package/src/theme/v3/color/token.ts +18 -4
  489. package/src/theme/v3/color/tokens.ts +2 -2
  490. package/src/theme/v3/defaultTokens.ts +73 -85
  491. package/src/theme/v3/index.ts +3 -0
  492. package/src/theme/v3/palette/index.ts +2 -0
  493. package/src/theme/v3/resolveTokens.ts +65 -65
  494. package/src/theme/v3/tokens.ts +2 -2
  495. package/src/theme/v3/types.ts +61 -7
  496. package/src/theme/versioning/getTheme_v2.ts +3 -3
  497. package/src/theme/versioning/is_v0.ts +2 -2
  498. package/src/theme/versioning/is_v2.ts +2 -2
  499. package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
  500. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
  501. package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
  502. package/src/theme/versioning/v0_v2.ts +3 -3
  503. package/src/theme/versioning/v2_v0.ts +4 -4
  504. package/src/theme/versioning/v3_v2.ts +38 -38
  505. package/dist/ui-palette.css +0 -105
  506. package/dist/ui-palette.min.css +0 -1
  507. package/src/css/_comp.test.ts +0 -7
  508. package/src/css/_comp.ts +0 -11
  509. package/src/css/_compilePalette.ts +0 -32
  510. package/src/css/_compileTheme_v3.ts +0 -440
  511. package/src/css/aspects/flex/flex.style.ts +0 -30
  512. package/src/css/composeClassNames.ts +0 -19
  513. package/src/css/primitives/_selectable/__style.ts +0 -117
  514. package/src/css/primitives/checkbox/__styles.ts +0 -129
  515. package/src/css/scopeClassName.ts +0 -7
  516. package/src/css/varNames.ts +0 -607
  517. package/src/css/vars.ts +0 -520
  518. package/src/theme/_types.ts +0 -41
  519. package/src/theme/build/theme.test.ts +0 -27
  520. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  521. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  522. package/src/theme/v3/buildTheme_v3.test.ts +0 -40
  523. package/src/theme/v3/color/buildColor_v3.ts +0 -226
  524. package/src/theme/v3/color/parseColor.test.ts +0 -79
  525. package/src/theme/v3/color/parseColor.ts +0 -167
  526. package/src/theme/v3/color/renderColor.test.ts +0 -20
  527. package/src/theme/v3/color/renderColor.ts +0 -43
  528. /package/src/{theme/palette → css/prefix}/index.ts +0 -0
  529. /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
  530. /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
  531. /package/src/theme/{build → v2/build}/index.ts +0 -0
  532. /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
  533. /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
  534. /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
  535. /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
  536. /package/src/theme/{build → v2/build}/lib/isRecord.ts +0 -0
  537. /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
  538. /package/src/theme/{build → v2/build}/merge.ts +0 -0
  539. /package/src/theme/{config → v2/config}/index.ts +0 -0
  540. /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
  541. /package/src/theme/{palette → v3/palette}/constants.ts +0 -0
  542. /package/src/theme/{palette → v3/palette}/types.ts +0 -0
@@ -1,19 +1,19 @@
1
1
  import {CloseIcon} from '@sanity/icons'
2
2
  import {
3
+ _composeClassNames,
3
4
  _inputElement,
4
5
  _inputPresentation,
5
- composeClassNames,
6
- InputStyleProps,
7
- ResponsiveProp,
6
+ type InputStyleProps,
7
+ type ResponsiveProp,
8
8
  textInput,
9
9
  } from '@sanity/ui/css'
10
- import {Space, ThemeFontWeightKey} from '@sanity/ui/theme'
10
+ import type {Space, ThemeFontWeightKey} from '@sanity/ui/theme'
11
11
  import {
12
- CSSProperties,
13
- ElementType,
12
+ type CSSProperties,
13
+ type ElementType,
14
14
  isValidElement,
15
- MouseEvent,
16
- ReactNode,
15
+ type MouseEvent,
16
+ type ReactNode,
17
17
  useCallback,
18
18
  useImperativeHandle,
19
19
  useMemo,
@@ -24,9 +24,9 @@ import {isValidElementType} from 'react-is'
24
24
  import {EMPTY_RECORD} from '../../constants'
25
25
  import {useArrayProp, useCustomValidity} from '../../hooks'
26
26
  import {isRecord} from '../../lib/isRecord'
27
- import {ComponentType, Props} from '../../types'
27
+ import type {ComponentType, Props} from '../../types'
28
28
  import {Box} from '../box'
29
- import {Button, ButtonProps} from '../button'
29
+ import {Button, type ButtonProps} from '../button'
30
30
  import {Text} from '../text'
31
31
 
32
32
  /** @public */
@@ -177,7 +177,7 @@ export function TextInput<E extends TextInputElementType = typeof DEFAULT_TEXT_I
177
177
  <Box
178
178
  align="center"
179
179
  as="span"
180
- className={composeClassNames(
180
+ className={_composeClassNames(
181
181
  className,
182
182
  textInput({
183
183
  border,
@@ -190,7 +190,9 @@ export function TextInput<E extends TextInputElementType = typeof DEFAULT_TEXT_I
190
190
  )}
191
191
  data-icon-left={IconComponent ? '' : undefined}
192
192
  data-icon-right={IconRightComponent ? '' : undefined}
193
+ data-invalid={customValidity ? '' : undefined}
193
194
  data-prefix={prefix ? '' : undefined}
195
+ data-read-only={!disabled && readOnly ? '' : undefined}
194
196
  data-suffix={suffix ? '' : undefined}
195
197
  data-ui="TextInput"
196
198
  display="flex"
@@ -55,7 +55,7 @@ export default function CustomPortalStory() {
55
55
  <Text>Boundary element</Text>
56
56
  <Flex align="center" height="fill" justify="center">
57
57
  <Flex justify="center">
58
- <Stack space={2}>
58
+ <Stack gap={2}>
59
59
  <Tooltip
60
60
  boundaryElement={useBoundaryElement ? boundaryElement : null}
61
61
  content={<Text size={1}>{content}</Text>}
@@ -87,7 +87,7 @@ export default function CustomPortalStory() {
87
87
  />
88
88
 
89
89
  <Portal __unstable_name="portal1">
90
- <Stack space={4}>
90
+ <Stack gap={4}>
91
91
  <Text size={1} weight="medium">
92
92
  Portal 1 content
93
93
  </Text>
@@ -40,7 +40,7 @@ export default function OverflowingBoundaryStory() {
40
40
  >
41
41
  <Flex align="center" height="fill" justify="center">
42
42
  <Flex justify="center">
43
- <Stack space={2}>
43
+ <Stack gap={2}>
44
44
  <Code size={1}>Placement: {placement}</Code>
45
45
  <Button
46
46
  disabled={buttonsVisible}
@@ -1,4 +1,5 @@
1
1
  import {Button, Card, Flex, Stack, Text, Tooltip, TooltipDelayGroupProvider} from '@sanity/ui'
2
+ import {vars} from '@sanity/ui/css'
2
3
  import {useBoolean, useNumber, useSelect, useText} from '@sanity/ui-workshop'
3
4
 
4
5
  import {
@@ -29,9 +30,9 @@ export default function PropsStory() {
29
30
  gap={4}
30
31
  >
31
32
  <Stack
33
+ gap={4}
32
34
  padding={4}
33
- style={{outline: '1px solid var(--card-border-color)', width: '100%', maxWidth: '640px'}}
34
- space={4}
35
+ style={{outline: `1px solid ${vars.color.border}`, width: '100%', maxWidth: '640px'}}
35
36
  >
36
37
  <Text align="center" size={3}>
37
38
  Standalone tooltip
@@ -54,9 +55,9 @@ export default function PropsStory() {
54
55
  </Flex>
55
56
  </Stack>
56
57
  <Stack
58
+ gap={4}
57
59
  padding={4}
58
- style={{outline: '1px solid var(--card-border-color)', width: '100%', maxWidth: '640px'}}
59
- space={4}
60
+ style={{outline: `1px solid ${vars.color.border}`, width: '100%', maxWidth: '640px'}}
60
61
  >
61
62
  <Text align="center" size={3}>
62
63
  Grouped tooltips
@@ -1,4 +1,4 @@
1
- import {Placement} from '../../types'
1
+ import type {Placement} from '../../types'
2
2
 
3
3
  export const DEFAULT_TOOLTIP_ARROW_WIDTH = 15
4
4
  export const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6
@@ -1,23 +1,24 @@
1
- /** @jest-environment jsdom */
2
-
3
1
  import '../../../../test/mocks/resizeObserver.mock'
4
2
  import '../../../../test/mocks/matchMedia.mock'
5
3
 
6
4
  import {act, fireEvent, screen} from '@testing-library/react'
5
+ import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'
7
6
 
8
7
  import {render} from '../../../../test'
9
- import {Button, Text} from '..'
10
- import {Tooltip, TooltipDelayGroupProvider} from '.'
8
+ import {Button} from '../button'
9
+ import {Text} from '../text'
10
+ import {Tooltip} from './tooltip'
11
+ import {TooltipDelayGroupProvider} from './tooltipDelayGroup'
11
12
 
12
- // Fake timers using Jest
13
+ // Fake timers
13
14
  beforeEach(() => {
14
- jest.useFakeTimers()
15
+ vi.useFakeTimers()
15
16
  })
16
17
 
17
- // Running all pending timers and switching to real timers using Jest
18
+ // Running all pending timers and switching to real timers
18
19
  afterEach(() => {
19
- jest.runOnlyPendingTimers()
20
- jest.useRealTimers()
20
+ vi.runOnlyPendingTimers()
21
+ vi.useRealTimers()
21
22
  })
22
23
 
23
24
  describe('Tooltip', () => {
@@ -44,7 +45,7 @@ describe('Tooltip', () => {
44
45
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
45
46
  })
46
47
  it('should support delays to show and hide the tooltip.', () => {
47
- jest.useFakeTimers()
48
+ vi.useFakeTimers()
48
49
  const delay = 200
49
50
 
50
51
  render(
@@ -64,10 +65,10 @@ describe('Tooltip', () => {
64
65
 
65
66
  fireEvent.mouseEnter(button)
66
67
 
67
- act(() => jest.advanceTimersByTime(delay / 2))
68
+ act(() => vi.advanceTimersByTime(delay / 2))
68
69
  // Content should not be rendered yet
69
70
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
70
- act(() => jest.advanceTimersByTime(delay / 2))
71
+ act(() => vi.advanceTimersByTime(delay / 2))
71
72
 
72
73
  // Validate tooltip content is rendered
73
74
  screen.getByText('Tooltip content')
@@ -75,12 +76,12 @@ describe('Tooltip', () => {
75
76
  fireEvent.mouseOut(button)
76
77
  // Validate tooltip content is still showing.
77
78
  screen.getByText('Tooltip content')
78
- act(() => jest.advanceTimersByTime(delay))
79
+ act(() => vi.advanceTimersByTime(delay))
79
80
  // Validate tooltip content is not rendered anymore
80
81
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
81
82
  })
82
83
  it('should support different open and close delays to show and hide the tooltip.', () => {
83
- jest.useFakeTimers()
84
+ vi.useFakeTimers()
84
85
  const openDelay = 200
85
86
  const closeDelay = 150
86
87
 
@@ -104,10 +105,10 @@ describe('Tooltip', () => {
104
105
 
105
106
  fireEvent.mouseEnter(button)
106
107
 
107
- act(() => jest.advanceTimersByTime(openDelay / 2))
108
+ act(() => vi.advanceTimersByTime(openDelay / 2))
108
109
  // Content should not be rendered yet
109
110
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
110
- act(() => jest.advanceTimersByTime(openDelay / 2))
111
+ act(() => vi.advanceTimersByTime(openDelay / 2))
111
112
 
112
113
  // Validate tooltip content is rendered
113
114
  screen.getByText('Tooltip content')
@@ -115,7 +116,7 @@ describe('Tooltip', () => {
115
116
  fireEvent.mouseOut(button)
116
117
  // Validate tooltip content is still showing.
117
118
  screen.getByText('Tooltip content')
118
- act(() => jest.advanceTimersByTime(closeDelay))
119
+ act(() => vi.advanceTimersByTime(closeDelay))
119
120
  // Validate tooltip content is not rendered anymore
120
121
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
121
122
  })
@@ -125,7 +126,7 @@ describe('Tooltip', () => {
125
126
  it('should support groups with the same delay to open and close.', () => {
126
127
  const delay = 150
127
128
 
128
- jest.useFakeTimers()
129
+ vi.useFakeTimers()
129
130
  render(
130
131
  <TooltipDelayGroupProvider delay={delay}>
131
132
  <Tooltip content={<Text size={1}>{'Tooltip 1'}</Text>} placement={'top'} delay={400}>
@@ -150,11 +151,11 @@ describe('Tooltip', () => {
150
151
 
151
152
  // Hovers on first button, it should show first tooltip only
152
153
  fireEvent.mouseEnter(button1)
153
- act(() => jest.advanceTimersByTime(delay / 2))
154
+ act(() => vi.advanceTimersByTime(delay / 2))
154
155
  // Content should not be rendered yet, we have a delay of 150ms
155
156
  expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
156
157
  expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
157
- act(() => jest.advanceTimersByTime(delay / 2))
158
+ act(() => vi.advanceTimersByTime(delay / 2))
158
159
 
159
160
  // Validate Tooltip 1 is rendered
160
161
  screen.getByText('Tooltip 1')
@@ -165,38 +166,38 @@ describe('Tooltip', () => {
165
166
  fireEvent.mouseEnter(button2)
166
167
 
167
168
  // Validate Tooltip 1 is not rendered, now tooltip 2 is open.
168
- act(() => jest.advanceTimersByTime(1))
169
+ act(() => vi.advanceTimersByTime(1))
169
170
  expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
170
171
  screen.getByText('Tooltip 2')
171
172
 
172
173
  // Validate tooltip content is not rendered anymore
173
174
  fireEvent.mouseOut(button2)
174
- act(() => jest.advanceTimersByTime(delay + 1))
175
+ act(() => vi.advanceTimersByTime(delay + 1))
175
176
  expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
176
177
 
177
178
  // Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
178
179
  fireEvent.mouseEnter(button2)
179
- act(() => jest.advanceTimersByTime(1))
180
+ act(() => vi.advanceTimersByTime(1))
180
181
  screen.getByText('Tooltip 2')
181
182
 
182
183
  // Validate tooltip content is not rendered anymore
183
184
  fireEvent.mouseOut(button2)
184
- act(() => jest.advanceTimersByTime(delay + 1))
185
+ act(() => vi.advanceTimersByTime(delay + 1))
185
186
  expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
186
187
 
187
188
  // Wait 200ms, the group is deactivated, hovering again should trigger the delay
188
- act(() => jest.advanceTimersByTime(200))
189
+ act(() => vi.advanceTimersByTime(200))
189
190
  fireEvent.mouseEnter(button2)
190
- act(() => jest.advanceTimersByTime(delay / 2))
191
+ act(() => vi.advanceTimersByTime(delay / 2))
191
192
  expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
192
- act(() => jest.advanceTimersByTime(delay / 2))
193
+ act(() => vi.advanceTimersByTime(delay / 2))
193
194
  screen.getByText('Tooltip 2')
194
195
  })
195
196
  it('should support groups with different open and close delay.', () => {
196
197
  const openDelay = 250
197
198
  const closeDelay = 150
198
199
 
199
- jest.useFakeTimers()
200
+ vi.useFakeTimers()
200
201
  render(
201
202
  <TooltipDelayGroupProvider
202
203
  delay={{
@@ -226,11 +227,11 @@ describe('Tooltip', () => {
226
227
 
227
228
  // Hovers on first button, it should show first tooltip only
228
229
  fireEvent.mouseEnter(button1)
229
- act(() => jest.advanceTimersByTime(openDelay / 2))
230
+ act(() => vi.advanceTimersByTime(openDelay / 2))
230
231
  // Content should not be rendered yet, we have a delay of2150ms
231
232
  expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
232
233
  expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
233
- act(() => jest.advanceTimersByTime(openDelay / 2))
234
+ act(() => vi.advanceTimersByTime(openDelay / 2))
234
235
 
235
236
  // Validate Tooltip 1 is rendered
236
237
  screen.getByText('Tooltip 1')
@@ -241,31 +242,31 @@ describe('Tooltip', () => {
241
242
  fireEvent.mouseEnter(button2)
242
243
 
243
244
  // Validate Tooltip 1 is not rendered, now tooltip 2 is open.
244
- act(() => jest.advanceTimersByTime(1))
245
+ act(() => vi.advanceTimersByTime(1))
245
246
  expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
246
247
  screen.getByText('Tooltip 2')
247
248
 
248
249
  // Validate tooltip content is not rendered anymore
249
250
  fireEvent.mouseOut(button2)
250
- act(() => jest.advanceTimersByTime(closeDelay + 1))
251
+ act(() => vi.advanceTimersByTime(closeDelay + 1))
251
252
  expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
252
253
 
253
254
  // Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
254
255
  fireEvent.mouseEnter(button2)
255
- act(() => jest.advanceTimersByTime(1))
256
+ act(() => vi.advanceTimersByTime(1))
256
257
  screen.getByText('Tooltip 2')
257
258
 
258
259
  // Validate tooltip content is not rendered anymore
259
260
  fireEvent.mouseOut(button2)
260
- act(() => jest.advanceTimersByTime(closeDelay + 1))
261
+ act(() => vi.advanceTimersByTime(closeDelay + 1))
261
262
  expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
262
263
 
263
264
  // Wait 200ms, the group is deactivated, hovering again should trigger the delay
264
- act(() => jest.advanceTimersByTime(200))
265
+ act(() => vi.advanceTimersByTime(200))
265
266
  fireEvent.mouseEnter(button2)
266
- act(() => jest.advanceTimersByTime(openDelay / 2))
267
+ act(() => vi.advanceTimersByTime(openDelay / 2))
267
268
  expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
268
- act(() => jest.advanceTimersByTime(openDelay / 2))
269
+ act(() => vi.advanceTimersByTime(openDelay / 2))
269
270
  screen.getByText('Tooltip 2')
270
271
  })
271
272
  })
@@ -274,7 +275,7 @@ describe('Tooltip', () => {
274
275
  it('Standalone tooltip closes immediately with Escape key', () => {
275
276
  const delay = 150
276
277
 
277
- jest.useFakeTimers()
278
+ vi.useFakeTimers()
278
279
 
279
280
  render(
280
281
  <Tooltip
@@ -290,8 +291,8 @@ describe('Tooltip', () => {
290
291
 
291
292
  // Validate tooltip content is not rendered
292
293
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
293
- fireEvent.focus(button)
294
- act(() => jest.advanceTimersByTime(delay))
294
+ act(() => fireEvent.focus(button))
295
+ act(() => vi.advanceTimersByTime(delay))
295
296
 
296
297
  // Validate tooltip content is rendered
297
298
  screen.getByText('Tooltip content')
@@ -305,7 +306,7 @@ describe('Tooltip', () => {
305
306
  it('With <TooltipDelayGroupProvider /> closes immediately with Escape key', () => {
306
307
  const delay = 150
307
308
 
308
- jest.useFakeTimers()
309
+ vi.useFakeTimers()
309
310
 
310
311
  render(
311
312
  <TooltipDelayGroupProvider delay={{close: delay}}>
@@ -323,9 +324,9 @@ describe('Tooltip', () => {
323
324
 
324
325
  // Validate tooltip content is not rendered
325
326
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
326
- fireEvent.focus(button)
327
+ act(() => fireEvent.focus(button))
327
328
 
328
- act(() => jest.advanceTimersByTime(delay))
329
+ act(() => vi.advanceTimersByTime(delay))
329
330
 
330
331
  // Validate tooltip content is rendered
331
332
  screen.getByText('Tooltip content')
@@ -352,9 +353,9 @@ describe('Tooltip', () => {
352
353
 
353
354
  // Assertion: tooltip does not exist in the document
354
355
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
355
- fireEvent.focus(button)
356
+ act(() => fireEvent.focus(button))
356
357
 
357
- act(() => jest.advanceTimersByTime(delay))
358
+ act(() => vi.advanceTimersByTime(delay))
358
359
 
359
360
  // Assertion: the tooltip is not visible
360
361
  expect(screen.queryByText('Tooltip content')).toBeVisible()
@@ -378,9 +379,9 @@ describe('Tooltip', () => {
378
379
 
379
380
  // Assertion: tooltip does not exist in the document
380
381
  expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
381
- fireEvent.focus(button)
382
+ act(() => fireEvent.focus(button))
382
383
 
383
- act(() => jest.advanceTimersByTime(delay))
384
+ act(() => vi.advanceTimersByTime(delay))
384
385
 
385
386
  // Assertion: the tooltip is not visible
386
387
  expect(screen.queryByText('Tooltip content')).toBeVisible()
@@ -393,12 +394,12 @@ describe('Tooltip', () => {
393
394
  })
394
395
 
395
396
  describe('Used defined events on <Tooltip /> child should fire correctly', () => {
396
- const handleBlur = jest.fn()
397
- const handleClick = jest.fn()
398
- const handleContextMenu = jest.fn()
399
- const handleFocus = jest.fn()
400
- const handleMouseEnter = jest.fn()
401
- const handleMouseLeave = jest.fn()
397
+ const handleBlur = vi.fn()
398
+ const handleClick = vi.fn()
399
+ const handleContextMenu = vi.fn()
400
+ const handleFocus = vi.fn()
401
+ const handleMouseEnter = vi.fn()
402
+ const handleMouseLeave = vi.fn()
402
403
 
403
404
  beforeEach(() => {
404
405
  render(
@@ -418,35 +419,35 @@ describe('Tooltip', () => {
418
419
  )
419
420
  })
420
421
 
421
- afterEach(() => jest.clearAllMocks())
422
+ afterEach(() => vi.clearAllMocks())
422
423
 
423
424
  it('should fire the onBlur event', () => {
424
- fireEvent.blur(screen.getByTestId('btn'))
425
+ act(() => fireEvent.blur(screen.getByTestId('btn')))
425
426
  expect(handleBlur).toHaveBeenCalledTimes(1)
426
427
  })
427
428
 
428
429
  it('should fire the onClick event', () => {
429
- fireEvent.click(screen.getByTestId('btn'))
430
+ act(() => fireEvent.click(screen.getByTestId('btn')))
430
431
  expect(handleClick).toHaveBeenCalledTimes(1)
431
432
  })
432
433
 
433
434
  it('should fire the onContextMenu event', () => {
434
- fireEvent.contextMenu(screen.getByTestId('btn'))
435
+ act(() => fireEvent.contextMenu(screen.getByTestId('btn')))
435
436
  expect(handleContextMenu).toHaveBeenCalledTimes(1)
436
437
  })
437
438
 
438
439
  it('should fire the onFocus event', () => {
439
- fireEvent.focus(screen.getByTestId('btn'))
440
+ act(() => fireEvent.focus(screen.getByTestId('btn')))
440
441
  expect(handleFocus).toHaveBeenCalledTimes(1)
441
442
  })
442
443
 
443
444
  it('should fire the onMouseEnter event', () => {
444
- fireEvent.mouseEnter(screen.getByTestId('btn'))
445
+ act(() => fireEvent.mouseEnter(screen.getByTestId('btn')))
445
446
  expect(handleMouseEnter).toHaveBeenCalledTimes(1)
446
447
  })
447
448
 
448
449
  it('should fire the onMouseLeave event', () => {
449
- fireEvent.mouseLeave(screen.getByTestId('btn'))
450
+ act(() => fireEvent.mouseLeave(screen.getByTestId('btn')))
450
451
  expect(handleMouseLeave).toHaveBeenCalledTimes(1)
451
452
  })
452
453
  })
@@ -8,17 +8,22 @@ import {
8
8
  shift,
9
9
  useFloating,
10
10
  } from '@floating-ui/react-dom'
11
- import {composeClassNames, RadiusStyleProps, ShadowStyleProps, tooltip} from '@sanity/ui/css'
11
+ import {
12
+ _composeClassNames,
13
+ type RadiusStyleProps,
14
+ type ShadowStyleProps,
15
+ tooltip,
16
+ } from '@sanity/ui/css'
12
17
  import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'
13
18
  import {AnimatePresence} from 'framer-motion'
14
19
  import {
15
20
  cloneElement,
16
21
  type FocusEvent,
17
- HTMLAttributes,
22
+ type HTMLAttributes,
18
23
  type MouseEvent as ReactMouseEvent,
19
24
  type ReactElement,
20
25
  type ReactNode,
21
- RefAttributes,
26
+ type RefAttributes,
22
27
  useCallback,
23
28
  useEffect,
24
29
  useId,
@@ -38,7 +43,7 @@ import type {ComponentType, Placement, Props} from '../../types'
38
43
  import {type LayerOwnProps, Portal, useBoundaryElement, usePortal} from '../../utils'
39
44
  import {getElementRef} from '../../utils/getElementRef'
40
45
  import {CardProvider, useCard} from '../card'
41
- import {Delay} from '../types'
46
+ import type {Delay} from '../types'
42
47
  import {
43
48
  DEFAULT_FALLBACK_PLACEMENTS,
44
49
  DEFAULT_TOOLTIP_DISTANCE,
@@ -107,7 +112,7 @@ export function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_EL
107
112
  const boundaryElementContext = useBoundaryElement()
108
113
 
109
114
  const {
110
- animate: _animate = true,
115
+ animate: _animate = false,
111
116
  arrow: arrowProp = false,
112
117
  as = DEFAULT_TOOLTIP_ELEMENT,
113
118
  boundaryElement = boundaryElementContext?.element,
@@ -391,7 +396,7 @@ export function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_EL
391
396
  arrowX={arrowX}
392
397
  arrowY={arrowY}
393
398
  as={as}
394
- className={composeClassNames(className, tooltip())}
399
+ className={_composeClassNames(className, tooltip())}
395
400
  originX={originX}
396
401
  originY={originY}
397
402
  padding={padding}
@@ -1,5 +1,5 @@
1
1
  import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'
2
- import {TooltipDelayGroupContextValue} from './types'
2
+ import type {TooltipDelayGroupContextValue} from './types'
3
3
 
4
4
  /**
5
5
  * @beta
@@ -1,9 +1,9 @@
1
- import {ReactElement, ReactNode, useMemo} from 'react'
1
+ import {type ReactElement, type ReactNode, useMemo} from 'react'
2
2
 
3
3
  import {useDelayedState} from '../../../hooks/useDelayedState'
4
- import {Delay} from '../../types'
4
+ import type {Delay} from '../../types'
5
5
  import {TooltipDelayGroupContext} from './tooltipDelayGroupContext'
6
- import {TooltipDelayGroupContextValue} from './types'
6
+ import type {TooltipDelayGroupContextValue} from './types'
7
7
 
8
8
  /**
9
9
  * @public
@@ -1,7 +1,7 @@
1
1
  import {useContext} from 'react'
2
2
 
3
3
  import {TooltipDelayGroupContext} from './tooltipDelayGroupContext'
4
- import {TooltipDelayGroupContextValue} from './types'
4
+ import type {TooltipDelayGroupContextValue} from './types'
5
5
 
6
6
  /**
7
7
  * @beta
@@ -1,10 +1,10 @@
1
1
  import {tooltipCard} from '@sanity/ui/css'
2
- import {motion, MotionStyle} from 'framer-motion'
3
- import {type CSSProperties, ForwardedRef, useMemo} from 'react'
2
+ import {motion, type MotionStyle} from 'framer-motion'
3
+ import {type CSSProperties, type ForwardedRef, useMemo} from 'react'
4
4
 
5
5
  import {POPOVER_MOTION_PROPS} from '../../constants'
6
- import {Placement} from '../../types'
7
- import {Arrow, Layer, LayerOwnProps, LayerProps} from '../../utils'
6
+ import type {Placement} from '../../types'
7
+ import {Arrow, Layer, type LayerOwnProps, type LayerProps} from '../../utils'
8
8
  import {
9
9
  DEFAULT_TOOLTIP_ARROW_HEIGHT,
10
10
  DEFAULT_TOOLTIP_ARROW_RADIUS,
@@ -1,9 +1,9 @@
1
- import {
2
- type FlexAlign,
3
- type FlexDirection,
4
- type FlexJustify,
5
- type FlexValue,
6
- type FlexWrap,
1
+ import type {
2
+ FlexAlign,
3
+ FlexDirection,
4
+ FlexJustify,
5
+ FlexValue,
6
+ FlexWrap,
7
7
  GridItemColumn,
8
8
  GridItemColumnEnd,
9
9
  GridItemColumnStart,
@@ -12,21 +12,15 @@ import {
12
12
  GridItemRowStart,
13
13
  } from '@sanity/ui/css'
14
14
 
15
- import {
16
- type BoxDisplay,
17
- type BoxHeight,
18
- type BoxOverflow,
19
- type BoxSizing,
20
- type GridAutoCols,
21
- type GridAutoFlow,
22
- type GridAutoRows,
23
- // type GridItemColumn,
24
- // type GridItemColumnEnd,
25
- // type GridItemColumnStart,
26
- // type GridItemRow,
27
- // type GridItemRowEnd,
28
- // type GridItemRowStart,
29
- type Radius,
15
+ import type {
16
+ BoxDisplay,
17
+ BoxHeight,
18
+ BoxOverflow,
19
+ BoxSizing,
20
+ GridAutoCols,
21
+ GridAutoFlow,
22
+ GridAutoRows,
23
+ Radius,
30
24
  } from '../types'
31
25
 
32
26
  /**
@@ -81,9 +75,6 @@ export interface ResponsiveGridProps {
81
75
  autoCols?: GridAutoCols | GridAutoCols[]
82
76
  autoFlow?: GridAutoFlow | GridAutoFlow[]
83
77
  columns?: number | number[]
84
- // gap?: number | number[]
85
- // gapX?: number | number[]
86
- // gapY?: number | number[]
87
78
  rows?: number | number[]
88
79
  }
89
80
 
@@ -1,4 +1,4 @@
1
- import {ThemeColorStateToneKey} from '@sanity/ui/theme'
1
+ import type {ThemeColorStateToneKey} from '@sanity/ui/theme'
2
2
 
3
3
  /**
4
4
  * @public
@@ -1,4 +1,4 @@
1
- import {ThemeColorButtonModeKey, ThemeColorStateToneKey} from '@sanity/ui/theme'
1
+ import type {ThemeColorButtonModeKey, ThemeColorStateToneKey} from '@sanity/ui/theme'
2
2
 
3
3
  /**
4
4
  * @public
@@ -1,4 +1,4 @@
1
- import {ThemeColorCardToneKey} from '@sanity/ui/theme'
1
+ import type {ThemeColorCardToneKey} from '@sanity/ui/theme'
2
2
 
3
3
  /** @public */
4
4
  export type CardTone = ThemeColorCardToneKey | 'inherit'
@@ -1,4 +1,4 @@
1
- import {ThemeColorStateToneKey} from '@sanity/ui/theme'
1
+ import type {ThemeColorStateToneKey} from '@sanity/ui/theme'
2
2
 
3
3
  /**
4
4
  * @public