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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (829) hide show
  1. package/README.md +7 -6
  2. package/bin/{ui.js → sanity-ui.cjs} +1 -1
  3. package/dist/_chunks-cjs/_visual-editing.cjs +2488 -0
  4. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -0
  5. package/dist/_chunks-cjs/{refractor.js → refractor.cjs} +1 -2
  6. package/dist/_chunks-cjs/refractor.cjs.map +1 -0
  7. package/dist/_chunks-es/_visual-editing.js +2500 -0
  8. package/dist/_chunks-es/_visual-editing.js.map +1 -0
  9. package/dist/_chunks-es/{refractor.mjs → refractor.js} +1 -2
  10. package/dist/_chunks-es/refractor.js.map +1 -0
  11. package/dist/_visual-editing.cjs +30 -0
  12. package/dist/_visual-editing.cjs.map +1 -0
  13. package/dist/_visual-editing.d.cts +893 -0
  14. package/dist/_visual-editing.d.ts +503 -416
  15. package/dist/_visual-editing.js +29 -30
  16. package/dist/_visual-editing.js.map +1 -1
  17. package/dist/css.cjs +598 -0
  18. package/dist/css.cjs.map +1 -0
  19. package/dist/css.d.cts +14884 -0
  20. package/dist/css.d.ts +14379 -1630
  21. package/dist/css.js +480 -4594
  22. package/dist/css.js.map +1 -1
  23. package/dist/index.cjs +2222 -0
  24. package/dist/index.cjs.map +1 -0
  25. package/dist/{index.d.mts → index.d.cts} +1284 -961
  26. package/dist/index.d.ts +1284 -961
  27. package/dist/index.js +1270 -592
  28. package/dist/index.js.map +1 -1
  29. package/dist/{theme.mjs → theme.cjs} +2843 -2571
  30. package/dist/theme.cjs.map +1 -0
  31. package/dist/{theme.d.mts → theme.d.cts} +331 -311
  32. package/dist/theme.d.ts +331 -311
  33. package/dist/theme.js +2843 -2569
  34. package/dist/theme.js.map +1 -1
  35. package/dist/ui.css +22564 -0
  36. package/exports/_visual-editing.ts +0 -1
  37. package/package.json +84 -79
  38. package/src/cli/buildCommand.ts +3 -41
  39. package/src/cli/index.ts +2 -14
  40. package/src/core/_compat/helpers.ts +72 -0
  41. package/src/core/_compat/index.ts +1 -6
  42. package/src/core/_compat/styles/_responsive.ts +1 -1
  43. package/src/core/_compat/theme/theme.test.tsx +4 -5
  44. package/src/core/_compat/theme/themeColorProvider.tsx +4 -10
  45. package/src/core/_compat/theme/themeContext.ts +5 -5
  46. package/src/core/_compat/theme/themeProvider.tsx +19 -13
  47. package/src/core/_compat/theme/types.ts +2 -4
  48. package/src/core/_compat/theme/useRootTheme.ts +2 -4
  49. package/src/core/_compat/theme/useTheme.ts +3 -7
  50. package/src/core/_compat/types.ts +0 -73
  51. package/src/core/components/autocomplete/__workshop__/async.tsx +6 -6
  52. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +11 -18
  53. package/src/core/components/autocomplete/__workshop__/custom.tsx +21 -20
  54. package/src/core/components/autocomplete/__workshop__/example.tsx +17 -17
  55. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +5 -5
  56. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +57 -59
  57. package/src/core/components/autocomplete/autocomplete.tsx +106 -140
  58. package/src/core/components/autocomplete/autocompleteOption.tsx +1 -1
  59. package/src/core/components/autocomplete/autocompleteReducer.ts +1 -1
  60. package/src/core/components/autocomplete/constants.ts +1 -1
  61. package/src/core/components/autocomplete/types.ts +4 -9
  62. package/src/core/components/breadcrumbs/__workshop__/example.tsx +2 -3
  63. package/src/core/components/breadcrumbs/breadcrumbs.tsx +32 -28
  64. package/src/core/components/dialog/__workshop__/activate.tsx +4 -4
  65. package/src/core/components/dialog/__workshop__/autoFocus.tsx +2 -2
  66. package/src/core/components/dialog/__workshop__/onScroll.tsx +16 -4
  67. package/src/core/components/dialog/__workshop__/position.tsx +4 -4
  68. package/src/core/components/dialog/__workshop__/props.tsx +7 -7
  69. package/src/core/components/dialog/__workshop__/wrapped.tsx +2 -2
  70. package/src/core/components/dialog/dialog.tsx +104 -304
  71. package/src/core/components/dialog/dialogCard.tsx +190 -0
  72. package/src/core/components/dialog/dialogContext.ts +5 -3
  73. package/src/core/components/dialog/dialogProvider.tsx +6 -7
  74. package/src/core/components/dialog/isTargetWithinScope.ts +14 -0
  75. package/src/core/components/dialog/useDialog.ts +1 -1
  76. package/src/core/components/hotkeys/hotkeys.tsx +41 -27
  77. package/src/core/components/menu/__workshop__/asComponent.tsx +6 -6
  78. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +5 -4
  79. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +2 -2
  80. package/src/core/components/menu/__workshop__/customMenuItem.tsx +3 -3
  81. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  82. package/src/core/components/menu/__workshop__/groups.tsx +2 -2
  83. package/src/core/components/menu/__workshop__/menuButton.tsx +4 -4
  84. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  85. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  86. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +13 -4
  87. package/src/core/components/menu/__workshop__/selectedItem.tsx +2 -2
  88. package/src/core/components/menu/__workshop__/tones.tsx +3 -3
  89. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  90. package/src/core/components/menu/menu.test.tsx +6 -7
  91. package/src/core/components/menu/menu.tsx +27 -35
  92. package/src/core/components/menu/menuButton.tsx +18 -24
  93. package/src/core/components/menu/menuContext.ts +1 -1
  94. package/src/core/components/menu/menuDivider.tsx +25 -15
  95. package/src/core/components/menu/menuGroup.tsx +39 -33
  96. package/src/core/components/menu/menuItem.tsx +58 -46
  97. package/src/core/components/menu/useMenu.ts +1 -1
  98. package/src/core/components/menu/useMenuController.ts +4 -4
  99. package/src/core/components/skeleton/__workshop__/delay.tsx +3 -3
  100. package/src/core/components/skeleton/__workshop__/skeleton.tsx +4 -4
  101. package/src/core/components/skeleton/codeSkeleton.tsx +49 -0
  102. package/src/core/components/skeleton/headingSkeleton.tsx +48 -0
  103. package/src/core/components/skeleton/index.ts +3 -0
  104. package/src/core/components/skeleton/labelSkeleton.tsx +47 -0
  105. package/src/core/components/skeleton/skeleton.tsx +37 -18
  106. package/src/core/components/skeleton/textSkeleton.tsx +29 -112
  107. package/src/core/components/tab/__workshop__/example.tsx +2 -2
  108. package/src/core/components/tab/tab.tsx +28 -26
  109. package/src/core/components/tab/tabList.tsx +49 -28
  110. package/src/core/components/tab/tabPanel.tsx +29 -22
  111. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  112. package/src/core/components/toast/__workshop__/toast.tsx +5 -5
  113. package/src/core/components/toast/toast.test.tsx +5 -5
  114. package/src/core/components/toast/toast.tsx +30 -57
  115. package/src/core/components/toast/toastContext.ts +1 -1
  116. package/src/core/components/toast/toastLayer.tsx +29 -13
  117. package/src/core/components/toast/toastProvider.tsx +5 -10
  118. package/src/core/components/toast/types.ts +3 -7
  119. package/src/core/components/toast/useToast.ts +2 -4
  120. package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
  121. package/src/core/components/tree/__workshop__/basic.tsx +1 -1
  122. package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
  123. package/src/core/components/tree/helpers.ts +1 -1
  124. package/src/core/components/tree/tree.tsx +196 -191
  125. package/src/core/components/tree/treeContext.ts +1 -1
  126. package/src/core/components/tree/treeGroup.tsx +24 -6
  127. package/src/core/components/tree/treeItem.tsx +44 -34
  128. package/src/core/components/tree/types.ts +2 -2
  129. package/src/core/components/tree/useTree.ts +1 -1
  130. package/src/core/constants.ts +6 -0
  131. package/src/core/helpers/props.ts +18 -0
  132. package/src/core/hooks/index.ts +1 -0
  133. package/src/core/hooks/useArrayProp.ts +1 -4
  134. package/src/core/hooks/useClickOutside.test.tsx +15 -16
  135. package/src/core/hooks/useClickOutside.ts +2 -6
  136. package/src/core/hooks/useClickOutsideEvent.test.tsx +4 -5
  137. package/src/core/hooks/useClickOutsideEvent.ts +3 -9
  138. package/src/core/hooks/useDelayed.test.ts +6 -7
  139. package/src/core/hooks/useDelayedState.ts +1 -1
  140. package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -1
  141. package/src/core/hooks/useElementSize.ts +1 -1
  142. package/src/core/hooks/useForwardedRef.ts +1 -1
  143. package/src/core/hooks/useMatchMedia.ts +13 -31
  144. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  145. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -18
  146. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +12 -12
  147. package/src/core/hooks/usePrefersDark.hydration.test.tsx +4 -4
  148. package/src/core/hooks/usePrefersDark.test.tsx +1 -0
  149. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +4 -4
  150. package/src/core/hooks/usePrefersReducedMotion.test.tsx +1 -0
  151. package/src/core/hooks/useResponsiveProp.ts +28 -0
  152. package/src/core/index.ts +0 -1
  153. package/src/core/lib/isArray.ts +3 -0
  154. package/src/core/middleware/origin.ts +1 -1
  155. package/src/core/primitives/_selectable/selectable.tsx +33 -24
  156. package/src/core/primitives/avatar/__workshop__/asButton.tsx +2 -2
  157. package/src/core/primitives/avatar/__workshop__/stack.tsx +2 -2
  158. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +2 -2
  159. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -1
  160. package/src/core/primitives/avatar/avatar.tsx +43 -48
  161. package/src/core/primitives/avatar/avatarCounter.tsx +46 -39
  162. package/src/core/primitives/avatar/avatarStack.tsx +44 -45
  163. package/src/core/primitives/avatar/types.ts +3 -3
  164. package/src/core/primitives/badge/__workshop__/props.tsx +6 -17
  165. package/src/core/primitives/badge/__workshop__/tones.tsx +1 -6
  166. package/src/core/primitives/badge/badge.test.tsx +2 -3
  167. package/src/core/primitives/badge/badge.tsx +34 -40
  168. package/src/core/primitives/badge/types.ts +2 -1
  169. package/src/core/primitives/box/__workshop__/props.tsx +2 -2
  170. package/src/core/primitives/box/__workshop__/responsive.tsx +2 -1
  171. package/src/core/primitives/box/box.tsx +153 -88
  172. package/src/core/primitives/button/__workshop__/custom.tsx +19 -42
  173. package/src/core/primitives/button/__workshop__/customIcons.tsx +3 -3
  174. package/src/core/primitives/button/__workshop__/disabled.tsx +9 -9
  175. package/src/core/primitives/button/__workshop__/props.tsx +19 -22
  176. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +3 -3
  177. package/src/core/primitives/button/__workshop__/stacked.tsx +15 -16
  178. package/src/core/primitives/button/__workshop__/uploadButton.tsx +2 -1
  179. package/src/core/primitives/button/button.test.tsx +3 -18
  180. package/src/core/primitives/button/button.tsx +67 -76
  181. package/src/core/primitives/card/__workshop__/asButton.tsx +14 -14
  182. package/src/core/primitives/card/__workshop__/asComponent.tsx +3 -3
  183. package/src/core/primitives/card/__workshop__/checkered.tsx +1 -1
  184. package/src/core/primitives/card/__workshop__/index.ts +1 -1
  185. package/src/core/primitives/card/__workshop__/interactive.tsx +3 -4
  186. package/src/core/primitives/card/__workshop__/listNavigation.tsx +3 -3
  187. package/src/core/primitives/card/__workshop__/props.tsx +14 -17
  188. package/src/core/primitives/card/__workshop__/selected.tsx +10 -41
  189. package/src/core/primitives/card/__workshop__/{allTones.tsx → tones.tsx} +3 -3
  190. package/src/core/primitives/card/card.tsx +52 -48
  191. package/src/core/primitives/card/cardContext.ts +10 -0
  192. package/src/core/primitives/card/cardProvider.tsx +27 -0
  193. package/src/core/primitives/card/index.ts +2 -0
  194. package/src/core/primitives/card/types.ts +19 -3
  195. package/src/core/primitives/card/useCard.ts +9 -0
  196. package/src/core/primitives/checkbox/__workshop__/props.tsx +6 -4
  197. package/src/core/primitives/checkbox/__workshop__/tones.tsx +11 -20
  198. package/src/core/primitives/checkbox/checkbox.tsx +30 -23
  199. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  200. package/src/core/primitives/code/__workshop__/props.tsx +4 -7
  201. package/src/core/primitives/code/code.tsx +27 -30
  202. package/src/core/primitives/code/refractor.tsx +0 -2
  203. package/src/core/primitives/container/__workshop__/example.tsx +2 -2
  204. package/src/core/primitives/container/container.tsx +27 -25
  205. package/src/core/primitives/flex/__workshop__/example.tsx +2 -2
  206. package/src/core/primitives/flex/flex.tsx +44 -17
  207. package/src/core/primitives/grid/grid.tsx +20 -17
  208. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +2 -2
  209. package/src/core/primitives/heading/__workshop__/plain.tsx +12 -15
  210. package/src/core/primitives/heading/heading.tsx +51 -33
  211. package/src/core/primitives/inline/__workshop__/plain.tsx +2 -5
  212. package/src/core/primitives/inline/inline.tsx +46 -27
  213. package/src/core/primitives/inline/types.ts +1 -0
  214. package/src/core/primitives/kbd/kbd.tsx +28 -28
  215. package/src/core/primitives/label/__workshop__/plain.tsx +8 -17
  216. package/src/core/primitives/label/label.tsx +49 -39
  217. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +6 -6
  218. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +3 -3
  219. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  220. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +3 -3
  221. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -4
  222. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +10 -6
  223. package/src/core/primitives/popover/__workshop__/TestStory.tsx +5 -4
  224. package/src/core/primitives/popover/constants.ts +1 -1
  225. package/src/core/primitives/popover/floating-ui/size.ts +2 -2
  226. package/src/core/primitives/popover/helpers.ts +1 -1
  227. package/src/core/primitives/popover/popover.tsx +299 -335
  228. package/src/core/primitives/popover/popoverLayer.tsx +147 -0
  229. package/src/core/primitives/popover/types.ts +3 -2
  230. package/src/core/primitives/radio/__workshop__/example.tsx +3 -3
  231. package/src/core/primitives/radio/__workshop__/plain.tsx +3 -3
  232. package/src/core/primitives/radio/radio.tsx +34 -19
  233. package/src/core/primitives/select/__workshop__/plain.tsx +15 -6
  234. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  235. package/src/core/primitives/select/select.tsx +28 -28
  236. package/src/core/primitives/spinner/__workshop__/Props.tsx +4 -5
  237. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +7 -9
  238. package/src/core/primitives/spinner/spinner.tsx +27 -15
  239. package/src/core/primitives/stack/__workshop__/plain.tsx +2 -2
  240. package/src/core/primitives/stack/stack.tsx +44 -20
  241. package/src/core/primitives/switch/switch.tsx +31 -17
  242. package/src/core/primitives/text/__workshop__/colored.tsx +6 -6
  243. package/src/core/primitives/text/__workshop__/example.tsx +9 -20
  244. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  245. package/src/core/primitives/text/text.tsx +52 -44
  246. package/src/core/primitives/textArea/__workshop__/plain.tsx +44 -33
  247. package/src/core/primitives/textArea/textArea.tsx +47 -22
  248. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +2 -2
  249. package/src/core/primitives/textInput/__workshop__/plain.tsx +36 -30
  250. package/src/core/primitives/textInput/__workshop__/states.tsx +5 -5
  251. package/src/core/primitives/textInput/__workshop__/tones.tsx +2 -2
  252. package/src/core/primitives/textInput/__workshop__/typed.tsx +2 -2
  253. package/src/core/primitives/textInput/textInput.tsx +80 -106
  254. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +5 -5
  255. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +2 -2
  256. package/src/core/primitives/tooltip/__workshop__/props.tsx +9 -8
  257. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -1
  258. package/src/core/primitives/tooltip/constants.ts +1 -1
  259. package/src/core/primitives/tooltip/tooltip.test.tsx +61 -60
  260. package/src/core/primitives/tooltip/tooltip.tsx +107 -90
  261. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +1 -1
  262. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +3 -5
  263. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -1
  264. package/src/core/primitives/tooltip/tooltipLayer.tsx +105 -0
  265. package/src/core/primitives/types.ts +19 -30
  266. package/src/core/types/avatar.ts +3 -6
  267. package/src/core/types/badge.ts +2 -4
  268. package/src/core/types/button.ts +2 -4
  269. package/src/core/types/card.ts +2 -4
  270. package/src/core/types/dialog.ts +1 -3
  271. package/src/core/types/flex.ts +3 -3
  272. package/src/core/types/props.ts +20 -10
  273. package/src/core/types/selectable.ts +1 -1
  274. package/src/core/utils/arrow/arrow.tsx +43 -28
  275. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +5 -5
  276. package/src/core/utils/boundaryElement/boundaryElementContext.ts +1 -1
  277. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +4 -10
  278. package/src/core/utils/boundaryElement/types.ts +1 -3
  279. package/src/core/utils/boundaryElement/useBoundaryElement.ts +2 -4
  280. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +15 -8
  281. package/src/core/utils/elementQuery/elementQuery.tsx +41 -19
  282. package/src/core/utils/errorBoundary.tsx +6 -4
  283. package/src/core/utils/index.ts +0 -1
  284. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +5 -5
  285. package/src/core/utils/layer/__workshop__/nested.tsx +3 -3
  286. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +9 -5
  287. package/src/core/utils/layer/getLayerContext.test.ts +3 -1
  288. package/src/core/utils/layer/getLayerContext.ts +1 -1
  289. package/src/core/utils/layer/layer.test.tsx +5 -5
  290. package/src/core/utils/layer/layer.tsx +25 -95
  291. package/src/core/utils/layer/layerCard.tsx +90 -0
  292. package/src/core/utils/layer/layerContext.ts +1 -1
  293. package/src/core/utils/layer/layerProvider.tsx +20 -17
  294. package/src/core/utils/layer/useLayer.ts +2 -4
  295. package/src/core/utils/portal/__workshop__/named.tsx +3 -3
  296. package/src/core/utils/portal/portal.test.tsx +5 -5
  297. package/src/core/utils/portal/{portal.ts → portal.tsx} +17 -11
  298. package/src/core/utils/portal/portalContext.ts +1 -1
  299. package/src/core/utils/portal/portalProvider.tsx +4 -10
  300. package/src/core/utils/portal/types.ts +1 -3
  301. package/src/core/utils/portal/usePortal.ts +2 -4
  302. package/src/core/utils/srOnly/srOnly.tsx +25 -27
  303. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
  304. package/src/core/utils/virtualList/virtualList.tsx +71 -55
  305. package/src/css/__theme/index.ts +16 -0
  306. package/src/css/__theme/lib/contract/buildVarContract.ts +78 -0
  307. package/src/css/__theme/lib/contract/index.ts +4 -0
  308. package/src/css/__theme/lib/contract/types.ts +17 -0
  309. package/src/css/__theme/resolveTheme.ts +865 -0
  310. package/src/css/_assign.ts +3 -0
  311. package/src/css/_composeClassNames.ts +12 -0
  312. package/src/css/_fromEntries.ts +3 -0
  313. package/src/css/_getClassNames.ts +9 -0
  314. package/src/css/_responsiveClassName.ts +45 -0
  315. package/src/css/_responsiveStyle.css.ts +34 -0
  316. package/src/css/_style.css.ts +9 -0
  317. package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
  318. package/src/css/components/breadcrumbs/breadcrumbs.ts +5 -3
  319. package/src/css/components/dialog/dialog.css.ts +81 -0
  320. package/src/css/components/dialog/dialog.ts +20 -11
  321. package/src/css/components/index.ts +6 -0
  322. package/src/css/components/menu/menu.css.ts +14 -0
  323. package/src/css/components/menu/menu.ts +8 -5
  324. package/src/css/components/skeleton/skeleton.css.ts +132 -0
  325. package/src/css/components/skeleton/skeleton.ts +14 -9
  326. package/src/css/components/skeleton/types.ts +13 -5
  327. package/src/css/components/toast/toast.css.ts +16 -0
  328. package/src/css/components/toast/toast.ts +5 -15
  329. package/src/css/components/tree/tree.css.ts +65 -0
  330. package/src/css/components/tree/tree.ts +5 -3
  331. package/src/css/constants.ts +10 -0
  332. package/src/css/defaultTheme.css.ts +468 -0
  333. package/src/css/index.ts +12 -38
  334. package/src/css/layers.css.ts +9 -0
  335. package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
  336. package/src/css/primitives/_arrow/_arrow.ts +18 -6
  337. package/src/css/primitives/_input/_input.css.ts +258 -0
  338. package/src/css/primitives/_input/input.ts +17 -14
  339. package/src/css/primitives/_input/types.ts +3 -3
  340. package/src/css/primitives/_selectable/_selectable.css.ts +121 -0
  341. package/src/css/primitives/_selectable/selectable.ts +5 -5
  342. package/src/css/primitives/_selectable/types.ts +3 -2
  343. package/src/css/primitives/avatar/avatar.css.ts +175 -0
  344. package/src/css/primitives/avatar/avatar.ts +52 -11
  345. package/src/css/primitives/avatar/types.ts +5 -3
  346. package/src/css/primitives/badge/badge.css.ts +26 -0
  347. package/src/css/primitives/badge/badge.ts +4 -4
  348. package/src/css/primitives/badge/types.ts +5 -4
  349. package/src/css/primitives/box/box.css.ts +19 -0
  350. package/src/css/primitives/box/box.ts +52 -16
  351. package/src/css/primitives/box/types.ts +46 -22
  352. package/src/css/primitives/button/button.css.ts +285 -0
  353. package/src/css/primitives/button/button.ts +15 -33
  354. package/src/css/primitives/button/index.ts +1 -0
  355. package/src/css/primitives/button/types.ts +19 -0
  356. package/src/css/primitives/card/card.css.ts +365 -0
  357. package/src/css/primitives/card/card.ts +9 -12
  358. package/src/css/primitives/card/types.ts +4 -6
  359. package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
  360. package/src/css/primitives/checkbox/checkbox.ts +13 -5
  361. package/src/css/primitives/code/code.css.ts +271 -0
  362. package/src/css/primitives/code/code.ts +13 -5
  363. package/src/css/primitives/code/types.ts +4 -3
  364. package/src/css/primitives/container/container.css.ts +4 -0
  365. package/src/css/primitives/container/container.ts +12 -4
  366. package/src/css/primitives/container/types.ts +4 -2
  367. package/src/css/primitives/heading/heading.css.ts +85 -0
  368. package/src/css/primitives/heading/heading.ts +13 -11
  369. package/src/css/primitives/heading/types.ts +6 -3
  370. package/src/css/primitives/index.ts +24 -0
  371. package/src/css/primitives/kbd/kbd.css.ts +16 -0
  372. package/src/css/primitives/kbd/kbd.ts +6 -4
  373. package/src/css/primitives/kbd/types.ts +2 -3
  374. package/src/css/primitives/label/label.css.ts +85 -0
  375. package/src/css/primitives/label/label.ts +13 -10
  376. package/src/css/primitives/label/types.ts +13 -5
  377. package/src/css/primitives/popover/popover.css.ts +6 -0
  378. package/src/css/primitives/popover/popover.ts +10 -3
  379. package/src/css/primitives/radio/radio.css.ts +78 -0
  380. package/src/css/primitives/radio/radio.ts +15 -3
  381. package/src/css/primitives/select/select.css.ts +24 -0
  382. package/src/css/primitives/select/select.ts +7 -4
  383. package/src/css/primitives/select/types.ts +1 -1
  384. package/src/css/primitives/spinner/index.ts +1 -0
  385. package/src/css/primitives/spinner/spinner.css.ts +23 -0
  386. package/src/css/primitives/spinner/spinner.ts +9 -5
  387. package/src/css/primitives/spinner/types.ts +4 -0
  388. package/src/css/primitives/stack/index.ts +1 -0
  389. package/src/css/primitives/stack/stack.css.ts +6 -0
  390. package/src/css/primitives/stack/stack.ts +7 -0
  391. package/src/css/primitives/switch/switch.css.ts +98 -0
  392. package/src/css/primitives/switch/switch.ts +13 -7
  393. package/src/css/primitives/text/text.css.ts +85 -0
  394. package/src/css/primitives/text/text.ts +13 -11
  395. package/src/css/primitives/text/types.ts +9 -3
  396. package/src/css/primitives/textArea/textArea.css.ts +4 -0
  397. package/src/css/primitives/textArea/textArea.ts +5 -3
  398. package/src/css/primitives/textArea/types.ts +5 -3
  399. package/src/css/primitives/textInput/textInput.css.ts +41 -0
  400. package/src/css/primitives/textInput/textInput.ts +20 -4
  401. package/src/css/primitives/textInput/types.ts +3 -7
  402. package/src/css/primitives/tooltip/index.ts +1 -0
  403. package/src/css/primitives/tooltip/tooltip.css.ts +6 -0
  404. package/src/css/primitives/tooltip/tooltip.ts +8 -7
  405. package/src/css/primitives/tooltip/types.ts +4 -0
  406. package/src/css/props/alignItems/alignItems.css.ts +22 -0
  407. package/src/css/props/alignItems/alignItems.ts +8 -0
  408. package/src/css/props/alignItems/index.ts +2 -0
  409. package/src/css/props/alignItems/types.ts +9 -0
  410. package/src/css/props/border/border.css.ts +65 -0
  411. package/src/css/props/border/border.ts +36 -0
  412. package/src/css/props/border/types.ts +13 -0
  413. package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
  414. package/src/css/props/boxSizing/boxSizing.ts +10 -0
  415. package/src/css/props/boxSizing/index.ts +2 -0
  416. package/src/css/props/boxSizing/types.ts +7 -0
  417. package/src/css/props/display/display.css.ts +56 -0
  418. package/src/css/props/display/display.ts +17 -0
  419. package/src/css/{styles → props}/display/types.ts +3 -4
  420. package/src/css/props/flex/flex.css.ts +52 -0
  421. package/src/css/props/flex/flex.ts +8 -0
  422. package/src/css/props/flex/types.ts +9 -0
  423. package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
  424. package/src/css/props/flexDirection/flexDirection.ts +8 -0
  425. package/src/css/props/flexDirection/index.ts +2 -0
  426. package/src/css/props/flexDirection/types.ts +9 -0
  427. package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
  428. package/src/css/props/flexWrap/flexWrap.ts +8 -0
  429. package/src/css/props/flexWrap/index.ts +2 -0
  430. package/src/css/props/flexWrap/types.ts +9 -0
  431. package/src/css/props/font/font.css.ts +93 -0
  432. package/src/css/props/font/font.ts +8 -0
  433. package/src/css/props/font/types.ts +6 -0
  434. package/src/css/props/gap/gap.css.ts +40 -0
  435. package/src/css/props/gap/gap.ts +13 -0
  436. package/src/css/{styles → props}/gap/types.ts +2 -2
  437. package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
  438. package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
  439. package/src/css/props/gridAutoColumns/index.ts +2 -0
  440. package/src/css/props/gridAutoColumns/types.ts +19 -0
  441. package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
  442. package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
  443. package/src/css/props/gridAutoFlow/index.ts +2 -0
  444. package/src/css/props/gridAutoFlow/types.ts +13 -0
  445. package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
  446. package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
  447. package/src/css/props/gridAutoRows/index.ts +2 -0
  448. package/src/css/props/gridAutoRows/types.ts +13 -0
  449. package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
  450. package/src/css/props/gridColumn/gridColumn.ts +8 -0
  451. package/src/css/props/gridColumn/index.ts +2 -0
  452. package/src/css/props/gridColumn/types.ts +19 -0
  453. package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
  454. package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
  455. package/src/css/props/gridColumnEnd/index.ts +2 -0
  456. package/src/css/props/gridColumnEnd/types.ts +19 -0
  457. package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
  458. package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
  459. package/src/css/props/gridColumnStart/index.ts +2 -0
  460. package/src/css/props/gridColumnStart/types.ts +19 -0
  461. package/src/css/props/gridRow/gridRow.css.ts +49 -0
  462. package/src/css/props/gridRow/gridRow.ts +8 -0
  463. package/src/css/props/gridRow/index.ts +2 -0
  464. package/src/css/props/gridRow/types.ts +19 -0
  465. package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
  466. package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
  467. package/src/css/props/gridRowEnd/index.ts +2 -0
  468. package/src/css/props/gridRowEnd/types.ts +19 -0
  469. package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
  470. package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
  471. package/src/css/props/gridRowStart/index.ts +2 -0
  472. package/src/css/props/gridRowStart/types.ts +19 -0
  473. package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
  474. package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
  475. package/src/css/props/gridTemplateColumns/index.ts +2 -0
  476. package/src/css/props/gridTemplateColumns/types.ts +19 -0
  477. package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
  478. package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
  479. package/src/css/props/gridTemplateRows/index.ts +2 -0
  480. package/src/css/props/gridTemplateRows/types.ts +19 -0
  481. package/src/css/props/height/height.css.ts +25 -0
  482. package/src/css/props/height/height.ts +8 -0
  483. package/src/css/props/height/index.ts +2 -0
  484. package/src/css/props/height/types.ts +15 -0
  485. package/src/css/props/index.ts +37 -0
  486. package/src/css/props/inset/inset.css.ts +37 -0
  487. package/src/css/props/inset/inset.ts +21 -0
  488. package/src/css/{styles → props}/inset/types.ts +1 -1
  489. package/src/css/props/justifyContent/index.ts +2 -0
  490. package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
  491. package/src/css/props/justifyContent/justifyContent.ts +8 -0
  492. package/src/css/props/justifyContent/types.ts +15 -0
  493. package/src/css/props/margin/margin.css.ts +117 -0
  494. package/src/css/props/margin/margin.ts +25 -0
  495. package/src/css/props/margin/types.ts +17 -0
  496. package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
  497. package/src/css/props/maxWidth/maxWidth.ts +8 -0
  498. package/src/css/props/maxWidth/types.ts +11 -0
  499. package/src/css/props/minHeight/index.ts +2 -0
  500. package/src/css/props/minHeight/minHeight.css.ts +13 -0
  501. package/src/css/props/minHeight/minHeight.ts +8 -0
  502. package/src/css/props/minHeight/types.ts +9 -0
  503. package/src/css/props/minWidth/index.ts +2 -0
  504. package/src/css/props/minWidth/minWidth.css.ts +25 -0
  505. package/src/css/props/minWidth/minWidth.ts +8 -0
  506. package/src/css/props/minWidth/types.ts +9 -0
  507. package/src/css/props/outline/index.ts +2 -0
  508. package/src/css/props/outline/outline.css.ts +10 -0
  509. package/src/css/props/outline/outline.ts +8 -0
  510. package/src/css/props/outline/types.ts +7 -0
  511. package/src/css/props/overflow/overflow.css.ts +16 -0
  512. package/src/css/props/overflow/overflow.ts +8 -0
  513. package/src/css/props/overflow/types.ts +17 -0
  514. package/src/css/props/padding/padding.css.ts +87 -0
  515. package/src/css/props/padding/padding.ts +25 -0
  516. package/src/css/props/padding/types.ts +17 -0
  517. package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
  518. package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
  519. package/src/css/props/position/position.css.ts +22 -0
  520. package/src/css/props/position/position.ts +8 -0
  521. package/src/css/{styles → props}/position/types.ts +1 -1
  522. package/src/css/props/radius/radius.css.ts +21 -0
  523. package/src/css/props/radius/radius.ts +8 -0
  524. package/src/css/props/radius/types.ts +8 -0
  525. package/src/css/props/shadow/shadow.css.ts +23 -0
  526. package/src/css/props/shadow/shadow.ts +8 -0
  527. package/src/css/props/shadow/types.ts +8 -0
  528. package/src/css/props/textAlign/index.ts +2 -0
  529. package/src/css/props/textAlign/textAlign.css.ts +22 -0
  530. package/src/css/props/textAlign/textAlign.ts +8 -0
  531. package/src/css/props/textAlign/types.ts +7 -0
  532. package/src/css/props/textOverflow/textOverflow.css.ts +13 -0
  533. package/src/css/props/textOverflow/textOverflow.ts +8 -0
  534. package/src/css/{styles → props}/textOverflow/types.ts +5 -1
  535. package/src/css/props/width/types.ts +11 -0
  536. package/src/css/props/width/width.css.ts +28 -0
  537. package/src/css/props/width/width.ts +8 -0
  538. package/src/css/types.ts +221 -766
  539. package/src/css/util.ts +3 -8
  540. package/src/css/utils/index.ts +1 -0
  541. package/src/css/utils/srOnly/srOnly.css.ts +10 -0
  542. package/src/css/utils/srOnly/srOnly.ts +5 -3
  543. package/src/css/vars.css.ts +676 -0
  544. package/src/theme/getScopedTheme.ts +4 -4
  545. package/src/theme/index.ts +0 -5
  546. package/src/theme/types.ts +6 -10
  547. package/src/theme/v0/color/_generic.ts +1 -1
  548. package/src/theme/v0/color/button.ts +1 -1
  549. package/src/theme/v0/color/card.ts +1 -1
  550. package/src/theme/v0/color/color.ts +11 -11
  551. package/src/theme/v0/color/input.ts +1 -1
  552. package/src/theme/v0/color/muted.ts +1 -1
  553. package/src/theme/v0/color/selectable.ts +1 -1
  554. package/src/theme/v0/color/solid.ts +1 -1
  555. package/src/theme/v0/color/spot.ts +1 -1
  556. package/src/theme/v0/focusRing.ts +1 -3
  557. package/src/theme/v0/font.ts +6 -19
  558. package/src/theme/v0/layer.ts +1 -3
  559. package/src/theme/v0/shadow.ts +2 -6
  560. package/src/theme/v0/styles.ts +1 -1
  561. package/src/theme/v0/theme.ts +7 -7
  562. package/src/theme/v2/avatar.ts +2 -4
  563. package/src/theme/{build → v2/build}/_deprecated/color/_selectable/createSelectableTones.ts +3 -3
  564. package/src/theme/{build → v2/build}/_deprecated/color/_solid/createSolidTones.ts +2 -2
  565. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonModes.ts +7 -2
  566. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonTones.ts +4 -4
  567. package/src/theme/{build → v2/build}/_deprecated/color/card/createCardStates.ts +3 -3
  568. package/src/theme/{build → v2/build}/_deprecated/color/color.test.ts +1 -1
  569. package/src/theme/{build → v2/build}/_deprecated/color/defaults.ts +1 -1
  570. package/src/theme/{build → v2/build}/_deprecated/color/factory.ts +3 -3
  571. package/src/theme/{build → v2/build}/_deprecated/color/input/createInputModes.ts +7 -2
  572. package/src/theme/{build → v2/build}/_deprecated/color/muted/createMuted.ts +2 -2
  573. package/src/theme/{build → v2/build}/_deprecated/color/spot/createSpot.ts +2 -2
  574. package/src/theme/{build → v2/build}/buildColorTheme.test.ts +3 -1
  575. package/src/theme/{build → v2/build}/buildColorTheme.ts +24 -24
  576. package/src/theme/{build → v2/build}/buildTheme.test.ts +10 -8
  577. package/src/theme/v2/build/buildTheme.ts +12 -0
  578. package/src/theme/{build → v2/build}/colorToken/colorToken.ts +2 -2
  579. package/src/theme/{build → v2/build}/colorToken/compileColorToken.ts +1 -1
  580. package/src/theme/{build → v2/build}/colorToken/types.ts +2 -2
  581. package/src/theme/{build → v2/build}/lib/color-fns/blend/mix.ts +1 -1
  582. package/src/theme/{build → v2/build}/lib/color-fns/blend/multiply.ts +1 -1
  583. package/src/theme/{build → v2/build}/lib/color-fns/blend/screen.ts +1 -1
  584. package/src/theme/{build → v2/build}/lib/color-fns/color-fns.test.ts +1 -1
  585. package/src/theme/{build → v2/build}/lib/color-fns/contrastRatio.ts +5 -2
  586. package/src/theme/{build → v2/build}/lib/color-fns/convert.ts +1 -1
  587. package/src/theme/{build → v2/build}/lib/color-fns/parse.ts +1 -1
  588. package/src/theme/{build → v2/build}/mixThemeColor.test.ts +2 -0
  589. package/src/theme/{build → v2/build}/mixThemeColor.ts +1 -1
  590. package/src/theme/{build → v2/build}/renderColorTheme.ts +27 -27
  591. package/src/theme/{build → v2/build}/renderColorValue.ts +3 -3
  592. package/src/theme/{build → v2/build}/resolveColorTokens.ts +13 -13
  593. package/src/theme/v2/color/_helpers.ts +2 -2
  594. package/src/theme/v2/color/_system.ts +2 -4
  595. package/src/theme/v2/color/avatar.ts +3 -7
  596. package/src/theme/v2/color/badge.ts +3 -7
  597. package/src/theme/v2/color/button.ts +5 -11
  598. package/src/theme/v2/color/color.ts +10 -16
  599. package/src/theme/v2/color/input.ts +8 -10
  600. package/src/theme/v2/color/kbd.ts +1 -3
  601. package/src/theme/v2/color/selectable.ts +4 -8
  602. package/src/theme/v2/color/state.ts +5 -7
  603. package/src/theme/v2/color/syntax.ts +1 -3
  604. package/src/theme/{config → v2/config}/helpers.ts +6 -13
  605. package/src/theme/{config → v2/config}/system.ts +11 -12
  606. package/src/theme/{config → v2/config}/tokens/color/types.ts +14 -10
  607. package/src/theme/{config → v2/config}/tokens/index.ts +0 -1
  608. package/src/theme/{config → v2/config}/tokens/parseTokenValue.test.ts +2 -0
  609. package/src/theme/{config → v2/config}/tokens/parseTokenValue.ts +2 -2
  610. package/src/theme/{config → v2/config}/tokens/types.ts +3 -3
  611. package/src/theme/{config → v2/config}/types.ts +8 -6
  612. package/src/theme/{defaults → v2/defaults}/colorPalette.ts +1 -1
  613. package/src/theme/{defaults → v2/defaults}/colorTokens.ts +3 -3
  614. package/src/theme/{defaults → v2/defaults}/config.ts +2 -2
  615. package/src/theme/{defaults → v2/defaults}/fonts.ts +5 -6
  616. package/src/theme/v2/index.ts +2 -0
  617. package/src/theme/v2/input.ts +2 -4
  618. package/src/theme/v2/theme.ts +10 -14
  619. package/src/theme/{_constants.ts → v3/_constants.ts} +6 -3
  620. package/src/theme/v3/{color/parseColor.ts → _parseColorToken.ts} +59 -46
  621. package/src/theme/v3/buildTheme_v3.ts +20 -11
  622. package/src/theme/v3/color/_constants.ts +15 -0
  623. package/src/theme/v3/color/avatar.ts +14 -0
  624. package/src/theme/v3/color/card.ts +58 -95
  625. package/src/theme/v3/color/color.ts +75 -71
  626. package/src/theme/v3/color/element.ts +8 -8
  627. package/src/theme/v3/color/index.ts +2 -2
  628. package/src/theme/v3/color/token.ts +19 -4
  629. package/src/theme/v3/color/tokens.ts +2 -2
  630. package/src/theme/v3/defaultFonts.ts +250 -0
  631. package/src/theme/v3/defaultTokens.ts +199 -0
  632. package/src/theme/v3/index.ts +4 -1
  633. package/src/theme/{palette → v3/palette}/constants.ts +3 -3
  634. package/src/theme/v3/palette/types.ts +7 -0
  635. package/src/theme/v3/resolveTokens.ts +70 -65
  636. package/src/theme/v3/tokens.ts +2 -2
  637. package/src/theme/v3/types.ts +97 -12
  638. package/src/theme/versioning/getTheme_v2.ts +3 -3
  639. package/src/theme/versioning/is_v0.ts +2 -2
  640. package/src/theme/versioning/is_v2.ts +2 -2
  641. package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
  642. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
  643. package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
  644. package/src/theme/versioning/v0_v2.ts +3 -3
  645. package/src/theme/versioning/v2_v0.ts +4 -4
  646. package/src/theme/versioning/v3_v2.ts +62 -40
  647. package/dist/_chunks-cjs/_visual-editing.js +0 -3059
  648. package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
  649. package/dist/_chunks-cjs/buildCommand.js +0 -32
  650. package/dist/_chunks-cjs/buildCommand.js.map +0 -1
  651. package/dist/_chunks-cjs/refractor.js.map +0 -1
  652. package/dist/_chunks-cjs/v3_v2.js +0 -251
  653. package/dist/_chunks-cjs/v3_v2.js.map +0 -1
  654. package/dist/_chunks-es/_visual-editing.mjs +0 -3066
  655. package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
  656. package/dist/_chunks-es/refractor.mjs.map +0 -1
  657. package/dist/_chunks-es/v3_v2.mjs +0 -252
  658. package/dist/_chunks-es/v3_v2.mjs.map +0 -1
  659. package/dist/_visual-editing.d.mts +0 -806
  660. package/dist/_visual-editing.mjs +0 -31
  661. package/dist/_visual-editing.mjs.map +0 -1
  662. package/dist/cli.d.ts +0 -1
  663. package/dist/cli.js +0 -357
  664. package/dist/cli.js.map +0 -1
  665. package/dist/css.d.mts +0 -2135
  666. package/dist/css.mjs +0 -4713
  667. package/dist/css.mjs.map +0 -1
  668. package/dist/index.mjs +0 -1542
  669. package/dist/index.mjs.map +0 -1
  670. package/dist/sanity-palette.css +0 -9
  671. package/dist/sanity-theme.css +0 -1
  672. package/dist/system.css +0 -3577
  673. package/dist/theme.mjs.map +0 -1
  674. package/src/core/StyleTags.tsx +0 -24
  675. package/src/core/primitives/popover/popoverCard.tsx +0 -148
  676. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -115
  677. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
  678. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  679. package/src/css/_resp.ts +0 -31
  680. package/src/css/compile/compilePalette.ts +0 -60
  681. package/src/css/compile/compileRule.ts +0 -90
  682. package/src/css/compile/compileRules.test.ts +0 -35
  683. package/src/css/compile/compileRules.ts +0 -40
  684. package/src/css/compile/compileSystem.ts +0 -7
  685. package/src/css/compile/compileTheme.ts +0 -15
  686. package/src/css/compile/compileTheme_v3.ts +0 -410
  687. package/src/css/compile/types.ts +0 -6
  688. package/src/css/components/breadcrumbs/rules.ts +0 -25
  689. package/src/css/components/dialog/rules.ts +0 -76
  690. package/src/css/components/menu/rules.ts +0 -15
  691. package/src/css/components/skeleton/rules.ts +0 -112
  692. package/src/css/components/toast/rules.ts +0 -17
  693. package/src/css/components/tree/rules.ts +0 -168
  694. package/src/css/composeClassNames.ts +0 -13
  695. package/src/css/primitives/_arrow/rules.ts +0 -71
  696. package/src/css/primitives/_input/rules.ts +0 -163
  697. package/src/css/primitives/_selectable/__style.ts +0 -117
  698. package/src/css/primitives/_selectable/_contants.ts +0 -11
  699. package/src/css/primitives/_selectable/rules.ts +0 -129
  700. package/src/css/primitives/avatar/rules.ts +0 -176
  701. package/src/css/primitives/badge/rules.ts +0 -22
  702. package/src/css/primitives/box/rules.ts +0 -28
  703. package/src/css/primitives/button/_constants.ts +0 -17
  704. package/src/css/primitives/button/rules.ts +0 -293
  705. package/src/css/primitives/card/_constants.ts +0 -13
  706. package/src/css/primitives/card/rules.ts +0 -471
  707. package/src/css/primitives/checkbox/__styles.ts +0 -129
  708. package/src/css/primitives/checkbox/rules.ts +0 -152
  709. package/src/css/primitives/code/rules.ts +0 -96
  710. package/src/css/primitives/container/rules.ts +0 -8
  711. package/src/css/primitives/heading/rules.ts +0 -155
  712. package/src/css/primitives/kbd/rules.ts +0 -20
  713. package/src/css/primitives/label/rules.ts +0 -137
  714. package/src/css/primitives/popover/rules.ts +0 -5
  715. package/src/css/primitives/radio/rules.ts +0 -121
  716. package/src/css/primitives/select/rules.ts +0 -22
  717. package/src/css/primitives/spinner/rules.ts +0 -20
  718. package/src/css/primitives/switch/rules.ts +0 -340
  719. package/src/css/primitives/text/rules.ts +0 -164
  720. package/src/css/primitives/textArea/rules.ts +0 -7
  721. package/src/css/primitives/textInput/rules.ts +0 -224
  722. package/src/css/primitives/token/rules.ts +0 -45
  723. package/src/css/primitives/tooltip/rules.ts +0 -19
  724. package/src/css/responsiveRules.ts +0 -25
  725. package/src/css/rules.ts +0 -113
  726. package/src/css/styles/border/border.ts +0 -22
  727. package/src/css/styles/border/rules.ts +0 -24
  728. package/src/css/styles/border/types.ts +0 -10
  729. package/src/css/styles/display/display.ts +0 -7
  730. package/src/css/styles/display/rules.ts +0 -62
  731. package/src/css/styles/flex/flex.ts +0 -20
  732. package/src/css/styles/flex/rules.ts +0 -28
  733. package/src/css/styles/flex/types.ts +0 -35
  734. package/src/css/styles/flexItem/flexItem.ts +0 -8
  735. package/src/css/styles/flexItem/index.ts +0 -2
  736. package/src/css/styles/flexItem/rules.ts +0 -12
  737. package/src/css/styles/flexItem/types.ts +0 -11
  738. package/src/css/styles/font/font.ts +0 -17
  739. package/src/css/styles/font/rules.ts +0 -148
  740. package/src/css/styles/font/types.ts +0 -12
  741. package/src/css/styles/gap/gap.ts +0 -8
  742. package/src/css/styles/gap/rules.ts +0 -34
  743. package/src/css/styles/grid/grid.ts +0 -13
  744. package/src/css/styles/grid/index.ts +0 -2
  745. package/src/css/styles/grid/rules.ts +0 -146
  746. package/src/css/styles/grid/types.ts +0 -29
  747. package/src/css/styles/gridItem/gridItem.ts +0 -15
  748. package/src/css/styles/gridItem/index.ts +0 -2
  749. package/src/css/styles/gridItem/rules.ts +0 -96
  750. package/src/css/styles/gridItem/types.ts +0 -41
  751. package/src/css/styles/height/rules.ts +0 -7
  752. package/src/css/styles/index.ts +0 -19
  753. package/src/css/styles/inset/inset.ts +0 -13
  754. package/src/css/styles/inset/rules.ts +0 -16
  755. package/src/css/styles/margin/margin.ts +0 -15
  756. package/src/css/styles/margin/rules.ts +0 -64
  757. package/src/css/styles/margin/types.ts +0 -11
  758. package/src/css/styles/maxWidth/maxWidth.ts +0 -6
  759. package/src/css/styles/maxWidth/rules.ts +0 -13
  760. package/src/css/styles/maxWidth/types.ts +0 -7
  761. package/src/css/styles/outline/rules.ts +0 -7
  762. package/src/css/styles/overflow/overflow.ts +0 -11
  763. package/src/css/styles/overflow/rules.ts +0 -9
  764. package/src/css/styles/overflow/types.ts +0 -11
  765. package/src/css/styles/padding/padding.ts +0 -15
  766. package/src/css/styles/padding/rules.ts +0 -62
  767. package/src/css/styles/padding/types.ts +0 -14
  768. package/src/css/styles/pointerEvents/pointerEvents.ts +0 -6
  769. package/src/css/styles/pointerEvents/rules.ts +0 -11
  770. package/src/css/styles/position/position.ts +0 -7
  771. package/src/css/styles/position/rules.ts +0 -24
  772. package/src/css/styles/radius/radius.ts +0 -8
  773. package/src/css/styles/radius/rules.ts +0 -13
  774. package/src/css/styles/radius/types.ts +0 -8
  775. package/src/css/styles/shadow/rules.ts +0 -53
  776. package/src/css/styles/shadow/shadow.ts +0 -7
  777. package/src/css/styles/shadow/types.ts +0 -8
  778. package/src/css/styles/textOverflow/rules.ts +0 -17
  779. package/src/css/styles/textOverflow/textOverflow.ts +0 -6
  780. package/src/css/styles/width/rules.ts +0 -7
  781. package/src/css/styles/width/types.ts +0 -9
  782. package/src/css/styles/width/width.ts +0 -6
  783. package/src/css/utils/srOnly/rules.ts +0 -11
  784. package/src/css/varNames.ts +0 -473
  785. package/src/css/vars.ts +0 -443
  786. package/src/theme/_types.ts +0 -41
  787. package/src/theme/build/buildTheme.ts +0 -12
  788. package/src/theme/build/theme.test.ts +0 -27
  789. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  790. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  791. package/src/theme/palette/types.ts +0 -16
  792. package/src/theme/v3/buildTheme_v3.test.ts +0 -40
  793. package/src/theme/v3/color/buildColor_v3.ts +0 -193
  794. package/src/theme/v3/color/parseColor.test.ts +0 -79
  795. package/src/theme/v3/color/renderColor.test.ts +0 -19
  796. package/src/theme/v3/color/renderColor.ts +0 -33
  797. package/src/theme/v3/defaults.ts +0 -205
  798. /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/apiStore.ts +0 -0
  799. /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/countries.ts +0 -0
  800. /package/src/css/{styles → props}/border/index.ts +0 -0
  801. /package/src/css/{styles → props}/display/index.ts +0 -0
  802. /package/src/css/{styles → props}/flex/index.ts +0 -0
  803. /package/src/css/{styles → props}/font/index.ts +0 -0
  804. /package/src/css/{styles → props}/gap/index.ts +0 -0
  805. /package/src/css/{styles → props}/inset/index.ts +0 -0
  806. /package/src/css/{styles → props}/margin/index.ts +0 -0
  807. /package/src/css/{styles → props}/maxWidth/index.ts +0 -0
  808. /package/src/css/{styles → props}/overflow/index.ts +0 -0
  809. /package/src/css/{styles → props}/padding/index.ts +0 -0
  810. /package/src/css/{styles → props}/pointerEvents/index.ts +0 -0
  811. /package/src/css/{styles → props}/pointerEvents/types.ts +0 -0
  812. /package/src/css/{styles → props}/position/index.ts +0 -0
  813. /package/src/css/{styles → props}/radius/index.ts +0 -0
  814. /package/src/css/{styles → props}/shadow/index.ts +0 -0
  815. /package/src/css/{styles → props}/textOverflow/index.ts +0 -0
  816. /package/src/css/{styles → props}/width/index.ts +0 -0
  817. /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
  818. /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
  819. /package/src/theme/{build → v2/build}/index.ts +0 -0
  820. /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
  821. /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
  822. /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
  823. /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
  824. /package/src/theme/{build → v2/build}/lib/isRecord.ts +0 -0
  825. /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
  826. /package/src/theme/{build → v2/build}/merge.ts +0 -0
  827. /package/src/theme/{config → v2/config}/index.ts +0 -0
  828. /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
  829. /package/src/theme/{palette → v3/palette}/index.ts +0 -0
@@ -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 '../../primitives'
10
- import {Tooltip, TooltipDelayGroupProvider} from '../tooltip'
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,15 +8,17 @@ 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 {type RadiusStyleProps, type ShadowStyleProps, tooltip} from '@sanity/ui/css'
12
12
  import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'
13
13
  import {AnimatePresence} from 'framer-motion'
14
14
  import {
15
15
  cloneElement,
16
- ForwardedRef,
17
- forwardRef,
18
- ReactElement,
19
- ReactNode,
16
+ type FocusEvent,
17
+ type HTMLAttributes,
18
+ type MouseEvent as ReactMouseEvent,
19
+ type ReactElement,
20
+ type ReactNode,
21
+ type RefAttributes,
20
22
  useCallback,
21
23
  useEffect,
22
24
  useId,
@@ -28,94 +30,109 @@ import {
28
30
  } from 'react'
29
31
  import {useEffectEvent} from 'use-effect-event'
30
32
 
31
- import {useTheme_v2} from '../../_compat'
32
- import {useArrayProp, usePrefersReducedMotion} from '../../hooks'
33
+ import {Z_OFFSETS} from '../../constants'
34
+ import {usePrefersReducedMotion} from '../../hooks'
33
35
  import {useDelayedState} from '../../hooks/useDelayedState'
34
36
  import {origin} from '../../middleware/origin'
35
- import type {Placement, Props} from '../../types'
36
- import {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'
37
+ import type {ComponentType, Placement, Props} from '../../types'
38
+ import {type LayerOwnProps, Portal, useBoundaryElement, usePortal} from '../../utils'
37
39
  import {getElementRef} from '../../utils/getElementRef'
40
+ import {CardProvider, useCard} from '../card'
38
41
  import type {Delay} from '../types'
39
42
  import {
40
43
  DEFAULT_FALLBACK_PLACEMENTS,
41
44
  DEFAULT_TOOLTIP_DISTANCE,
42
45
  DEFAULT_TOOLTIP_PADDING,
43
46
  } from './constants'
44
- import {TooltipCard} from './tooltipCard'
45
47
  import {useTooltipDelayGroup} from './tooltipDelayGroup'
46
-
47
- /**
48
- * @public
49
- */
50
- export interface TooltipProps extends Omit<LayerProps, 'as'>, RadiusStyleProps, ShadowStyleProps {
51
- /** @deprecated Use `fallbackPlacements` instead. */
52
- allowedAutoPlacements?: Placement[]
53
- /**
54
- * Whether the tooltip should animate in and out.
55
- *
56
- * @beta
57
- * @defaultValue false
58
- */
59
- animate?: boolean
60
- arrow?: boolean
61
- boundaryElement?: HTMLElement | null
62
- children?: ReactElement<Props>
63
- content?: ReactNode
64
- /**
65
- * Adds a delay to open or close the tooltip.
66
- *
67
- * If only a `number` is passed, it will be used for both opening and closing.
68
- *
69
- * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
70
- *
71
- * @public
72
- * @defaultValue 0
73
- */
74
- delay?: Delay
75
- disabled?: boolean
76
- fallbackPlacements?: Placement[]
77
- placement?: Placement
78
- /** Whether or not to render the tooltip in a portal element. */
79
- portal?: boolean | string
80
- scheme?: ThemeColorSchemeKey
81
- tone?: ThemeColorCardToneKey
82
- }
48
+ import {TooltipLayer} from './tooltipLayer'
49
+
50
+ /** @public */
51
+ export const DEFAULT_TOOLTIP_ELEMENT = 'div'
52
+
53
+ /** @public */
54
+ export type TooltipOwnProps = LayerOwnProps &
55
+ RadiusStyleProps &
56
+ ShadowStyleProps & {
57
+ /** @deprecated Use `fallbackPlacements` instead. */
58
+ allowedAutoPlacements?: Placement[]
59
+ /**
60
+ * Whether the tooltip should animate in and out.
61
+ *
62
+ * @beta
63
+ * @defaultValue false
64
+ */
65
+ animate?: boolean
66
+ arrow?: boolean
67
+ boundaryElement?: HTMLElement | null
68
+ children?: ReactElement<HTMLAttributes<HTMLElement> & RefAttributes<HTMLElement>>
69
+ content?: ReactNode
70
+ /**
71
+ * Adds a delay to open or close the tooltip.
72
+ *
73
+ * If only a `number` is passed, it will be used for both opening and closing.
74
+ *
75
+ * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
76
+ *
77
+ * @public
78
+ * @defaultValue 0
79
+ */
80
+ delay?: Delay
81
+ disabled?: boolean
82
+ fallbackPlacements?: Placement[]
83
+ placement?: Placement
84
+ /** Whether or not to render the tooltip in a portal element. */
85
+ portal?: boolean | string
86
+ scheme?: ThemeColorSchemeKey
87
+ tone?: ThemeColorCardToneKey
88
+ }
89
+
90
+ /** @public */
91
+ export type TooltipElementType = 'div' | 'span' | ComponentType
92
+
93
+ /** @public */
94
+ export type TooltipProps<E extends TooltipElementType = TooltipElementType> = Props<
95
+ TooltipOwnProps,
96
+ E
97
+ >
83
98
 
84
99
  /**
85
100
  * Tooltips display information when hovering, focusing or tapping.
86
101
  *
87
102
  * @public
88
103
  */
89
- export const Tooltip = forwardRef(function Tooltip(
90
- props: Props<TooltipProps, 'div'>,
91
- forwardedRef: ForwardedRef<HTMLDivElement>,
104
+ export function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_ELEMENT>(
105
+ props: TooltipProps<E>,
92
106
  ) {
93
107
  const boundaryElementContext = useBoundaryElement()
94
- const {layer} = useTheme_v2()
108
+
95
109
  const {
96
110
  animate: _animate = false,
97
111
  arrow: arrowProp = false,
112
+ as = DEFAULT_TOOLTIP_ELEMENT,
98
113
  boundaryElement = boundaryElementContext?.element,
99
114
  children: childProp,
100
115
  className,
101
116
  content,
102
117
  delay,
103
118
  disabled,
104
- fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??
119
+ fallbackPlacements = props.fallbackPlacements ??
105
120
  DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],
106
121
  padding = 2,
107
122
  placement: placementProp = 'bottom',
108
123
  portal: portalProp,
109
124
  radius = 3,
125
+ ref: forwardedRef,
110
126
  scheme,
111
127
  shadow = 2,
112
- zOffset = layer.tooltip.zOffset,
113
- tone,
114
- ...restProps
115
- } = props
128
+ zOffset = Z_OFFSETS.tooltip,
129
+ tone = 'inherit',
130
+ ...rest
131
+ } = props as TooltipProps<typeof DEFAULT_TOOLTIP_ELEMENT>
132
+
133
+ const card = useCard()
116
134
  const prefersReducedMotion = usePrefersReducedMotion()
117
135
  const animate = prefersReducedMotion ? false : _animate
118
- const fallbackPlacements = useArrayProp(fallbackPlacementsProp)
119
136
  const ref = useRef<HTMLDivElement | null>(null)
120
137
  const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)
121
138
  const arrowRef = useRef<HTMLDivElement | null>(null)
@@ -172,6 +189,7 @@ export const Tooltip = forwardRef(function Tooltip(
172
189
  placement: placementProp,
173
190
  whileElementsMounted: autoUpdate,
174
191
  elements: {reference: referenceElement},
192
+ transform: false,
175
193
  })
176
194
 
177
195
  const arrowX = middlewareData.arrow?.x
@@ -229,42 +247,42 @@ export const Tooltip = forwardRef(function Tooltip(
229
247
  )
230
248
 
231
249
  const handleBlur = useCallback(
232
- (e: FocusEvent) => {
250
+ (e: FocusEvent<HTMLElement>) => {
233
251
  handleIsOpenChange(false)
234
252
  childProp?.props?.onBlur?.(e)
235
253
  },
236
254
  [childProp?.props, handleIsOpenChange],
237
255
  )
238
256
  const handleClick = useCallback(
239
- (e: MouseEvent) => {
257
+ (e: ReactMouseEvent<HTMLElement>) => {
240
258
  handleIsOpenChange(false, true)
241
259
  childProp?.props.onClick?.(e)
242
260
  },
243
261
  [childProp?.props, handleIsOpenChange],
244
262
  )
245
263
  const handleContextMenu = useCallback(
246
- (e: MouseEvent) => {
264
+ (e: ReactMouseEvent<HTMLElement>) => {
247
265
  handleIsOpenChange(false, true)
248
266
  childProp?.props.onContextMenu?.(e)
249
267
  },
250
268
  [childProp?.props, handleIsOpenChange],
251
269
  )
252
270
  const handleFocus = useCallback(
253
- (e: FocusEvent) => {
271
+ (e: FocusEvent<HTMLElement>) => {
254
272
  handleIsOpenChange(true)
255
273
  childProp?.props?.onFocus?.(e)
256
274
  },
257
275
  [childProp?.props, handleIsOpenChange],
258
276
  )
259
277
  const handleMouseEnter = useCallback(
260
- (e: MouseEvent) => {
278
+ (e: ReactMouseEvent<HTMLElement>) => {
261
279
  handleIsOpenChange(true)
262
280
  childProp?.props?.onMouseEnter?.(e)
263
281
  },
264
282
  [childProp?.props, handleIsOpenChange],
265
283
  )
266
284
  const handleMouseLeave = useCallback(
267
- (e: MouseEvent) => {
285
+ (e: ReactMouseEvent<HTMLElement>) => {
268
286
  handleIsOpenChange(false)
269
287
  childProp?.props?.onMouseLeave?.(e)
270
288
  },
@@ -363,44 +381,45 @@ export const Tooltip = forwardRef(function Tooltip(
363
381
  if (disabled) return child
364
382
 
365
383
  const node = (
366
- <Layer
384
+ <TooltipLayer
367
385
  data-ui="Tooltip"
368
- // {...restProps}
369
- className={composeClassNames(className, tooltip())}
386
+ {...rest}
387
+ animate={animate}
388
+ arrow={arrowProp}
389
+ arrowRef={setArrow}
390
+ arrowX={arrowX}
391
+ arrowY={arrowY}
392
+ as={as}
393
+ className={tooltip({className})}
394
+ originX={originX}
395
+ originY={originY}
396
+ padding={padding}
397
+ placement={placement}
398
+ radius={radius}
370
399
  ref={setFloating}
400
+ scheme={scheme}
401
+ shadow={shadow}
371
402
  style={{
372
403
  ...floatingStyles,
373
404
  maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,
374
405
  }}
406
+ tone={tone}
375
407
  zOffset={zOffset}
376
408
  >
377
- <TooltipCard
378
- {...restProps}
379
- animate={animate}
380
- arrow={arrowProp}
381
- arrowRef={setArrow}
382
- arrowX={arrowX}
383
- arrowY={arrowY}
384
- originX={originX}
385
- originY={originY}
386
- padding={padding}
387
- placement={placement}
388
- radius={radius}
389
- ref={setFloating}
390
- scheme={scheme}
391
- shadow={shadow}
392
- tone={tone}
393
- >
394
- {content}
395
- </TooltipCard>
396
- </Layer>
409
+ {content}
410
+ </TooltipLayer>
397
411
  )
398
412
 
399
413
  const children =
400
414
  showTooltip &&
401
415
  (portalProp ? (
402
416
  <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>
403
- {node}
417
+ <CardProvider
418
+ tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}
419
+ scheme={scheme ?? 'light'}
420
+ >
421
+ {node}
422
+ </CardProvider>
404
423
  </Portal>
405
424
  ) : (
406
425
  node
@@ -415,9 +434,7 @@ export const Tooltip = forwardRef(function Tooltip(
415
434
  {child}
416
435
  </>
417
436
  )
418
- })
419
-
420
- Tooltip.displayName = 'ForwardRef(Tooltip)'
437
+ }
421
438
 
422
439
  /**
423
440
  * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.
@@ -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