@sanity/ui 2.16.21 → 2.16.23

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 (328) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +121 -1046
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-cjs/refractor.js.map +1 -1
  4. package/dist/_chunks-es/_visual-editing.mjs +116 -1041
  5. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  6. package/dist/_chunks-es/refractor.mjs.map +1 -1
  7. package/dist/_visual-editing.d.mts +411 -351
  8. package/dist/_visual-editing.d.ts +411 -351
  9. package/dist/index.d.mts +1107 -930
  10. package/dist/index.d.ts +1107 -930
  11. package/dist/index.js +67 -158
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +65 -156
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/theme.d.mts +769 -681
  16. package/dist/theme.d.ts +769 -681
  17. package/dist/theme.js +47 -0
  18. package/dist/theme.js.map +1 -1
  19. package/dist/theme.mjs +47 -0
  20. package/dist/theme.mjs.map +1 -1
  21. package/exports/_visual-editing.ts +1 -0
  22. package/package.json +50 -163
  23. package/src/core/_compat.ts +30 -0
  24. package/src/core/components/autocomplete/autocomplete.tsx +11 -4
  25. package/src/core/components/autocomplete/autocompleteOption.tsx +1 -0
  26. package/src/core/components/breadcrumbs/breadcrumbs.tsx +1 -0
  27. package/src/core/components/dialog/dialog.tsx +3 -0
  28. package/src/core/components/hotkeys/hotkeys.tsx +1 -0
  29. package/src/core/components/menu/menu.test.tsx +6 -4
  30. package/src/core/components/menu/menu.tsx +3 -2
  31. package/src/core/components/menu/menuButton.tsx +8 -0
  32. package/src/core/components/menu/menuGroup.tsx +5 -2
  33. package/src/core/components/menu/menuItem.tsx +4 -0
  34. package/src/core/components/menu/useMenuController.ts +6 -4
  35. package/src/core/components/skeleton/skeleton.tsx +2 -1
  36. package/src/core/components/tab/tab.tsx +1 -0
  37. package/src/core/components/tab/tabList.tsx +1 -0
  38. package/src/core/components/toast/toast.test.tsx +9 -4
  39. package/src/core/components/toast/toast.tsx +1 -1
  40. package/src/core/components/toast/toastProvider.tsx +1 -1
  41. package/src/core/components/tree/tree.tsx +1 -0
  42. package/src/core/components/tree/treeGroup.tsx +1 -0
  43. package/src/core/components/tree/treeItem.tsx +2 -2
  44. package/src/core/constants.ts +2 -2
  45. package/src/core/hooks/useClickOutside.test.tsx +43 -15
  46. package/src/core/hooks/useClickOutside.ts +1 -1
  47. package/src/core/hooks/useClickOutsideEvent.test.tsx +8 -4
  48. package/src/core/hooks/useDelayed.test.ts +7 -6
  49. package/src/core/hooks/useElementRect/useElementRect.ts +1 -0
  50. package/src/core/hooks/useForwardedRef.ts +1 -0
  51. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +2 -1
  52. package/src/core/hooks/usePrefersDark.hydration.test.tsx +7 -5
  53. package/src/core/hooks/usePrefersDark.test.tsx +3 -1
  54. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +7 -5
  55. package/src/core/hooks/usePrefersReducedMotion.test.tsx +3 -1
  56. package/src/core/lib/createGlobalScopedContext.ts +1 -0
  57. package/src/core/lib/globalScope.ts +1 -0
  58. package/src/core/observers/elementSizeObserver.ts +1 -0
  59. package/src/core/primitives/avatar/avatar.tsx +1 -2
  60. package/src/core/primitives/avatar/avatarStack.tsx +1 -0
  61. package/src/core/primitives/badge/badge.test.tsx +3 -2
  62. package/src/core/primitives/badge/badge.tsx +2 -1
  63. package/src/core/primitives/box/box.tsx +2 -1
  64. package/src/core/primitives/button/button.test.tsx +3 -2
  65. package/src/core/primitives/button/button.tsx +2 -0
  66. package/src/core/primitives/button/styles.ts +1 -0
  67. package/src/core/primitives/card/card.tsx +1 -5
  68. package/src/core/primitives/card/types.ts +1 -0
  69. package/src/core/primitives/code/refractor.tsx +2 -0
  70. package/src/core/primitives/flex/flex.tsx +1 -3
  71. package/src/core/primitives/inline/inline.tsx +1 -0
  72. package/src/core/primitives/popover/popover.tsx +13 -4
  73. package/src/core/primitives/popover/popoverCard.tsx +2 -1
  74. package/src/core/primitives/popover/types.ts +0 -1
  75. package/src/core/primitives/stack/styles.ts +1 -0
  76. package/src/core/primitives/textInput/textInput.tsx +2 -0
  77. package/src/core/primitives/tooltip/tooltip.test.tsx +82 -49
  78. package/src/core/primitives/tooltip/tooltip.tsx +6 -1
  79. package/src/core/primitives/tooltip/tooltipCard.tsx +2 -1
  80. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +2 -0
  81. package/src/core/styles/flex/types.ts +0 -1
  82. package/src/core/styles/font/responsiveFont.ts +0 -3
  83. package/src/core/styles/font/types.ts +1 -3
  84. package/src/core/styles/grid/gridStyle.ts +1 -0
  85. package/src/core/styles/margin/marginStyle.ts +1 -0
  86. package/src/core/styles/margin/marginsStyle.test.ts +2 -1
  87. package/src/core/styles/padding/paddingStyle.test.ts +2 -1
  88. package/src/core/styles/padding/paddingStyle.ts +1 -0
  89. package/src/core/theme/theme.test.tsx +7 -3
  90. package/src/core/theme/useRootTheme.ts +1 -0
  91. package/src/core/theme/useTheme.ts +2 -0
  92. package/src/core/utils/arrow/arrow.tsx +1 -0
  93. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +9 -4
  94. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +1 -0
  95. package/src/core/utils/getElementRef.ts +5 -0
  96. package/src/core/utils/layer/getLayerContext.test.ts +2 -0
  97. package/src/core/utils/layer/layer.test.tsx +9 -4
  98. package/src/core/utils/layer/layer.tsx +1 -0
  99. package/src/core/utils/layer/useLayer.ts +2 -0
  100. package/src/core/utils/portal/portal.test.tsx +9 -4
  101. package/src/core/utils/portal/portalProvider.tsx +4 -3
  102. package/src/core/utils/virtualList/virtualList.tsx +2 -1
  103. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +10 -0
  104. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +4 -0
  105. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +5 -0
  106. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +5 -0
  107. package/src/theme/build/_deprecated/color/card/createCardStates.ts +6 -0
  108. package/src/theme/build/_deprecated/color/color.test.ts +5 -1
  109. package/src/theme/build/_deprecated/color/defaults.ts +1 -0
  110. package/src/theme/build/_deprecated/color/factory.ts +36 -0
  111. package/src/theme/build/_deprecated/color/input/createInputModes.ts +5 -0
  112. package/src/theme/build/_deprecated/color/muted/createMuted.ts +4 -0
  113. package/src/theme/build/_deprecated/color/spot/createSpot.ts +3 -0
  114. package/src/theme/build/buildColorTheme.test.ts +2 -0
  115. package/src/theme/build/buildColorTheme.ts +7 -0
  116. package/src/theme/build/buildTheme.test.ts +2 -0
  117. package/src/theme/build/lib/color-fns/color-fns.test.ts +3 -1
  118. package/src/theme/build/merge.ts +5 -0
  119. package/src/theme/build/mixThemeColor.test.ts +2 -0
  120. package/src/theme/build/renderColorTheme.ts +6 -0
  121. package/src/theme/build/renderColorValue.ts +0 -2
  122. package/src/theme/build/resolveColorTokens.ts +6 -0
  123. package/src/theme/build/theme.test.ts +2 -0
  124. package/src/theme/config/helpers.ts +5 -0
  125. package/src/theme/config/system.ts +2 -0
  126. package/src/theme/config/tokens/color/types.ts +6 -4
  127. package/src/theme/config/tokens/parseTokenKey.test.ts +2 -0
  128. package/src/theme/config/tokens/parseTokenValue.test.ts +2 -0
  129. package/src/theme/config/tokens/parseTokenValue.ts +1 -0
  130. package/src/theme/getScopedTheme.ts +5 -0
  131. package/src/theme/system/color/_helpers.ts +4 -0
  132. package/src/theme/system/theme.ts +4 -0
  133. package/src/theme/system/v0/color/_system.ts +1 -0
  134. package/src/theme/system/v0/color/button.ts +14 -0
  135. package/src/theme/system/v0/color/card.ts +6 -0
  136. package/src/theme/system/v0/color/color.ts +11 -0
  137. package/src/theme/system/v0/color/input.ts +6 -0
  138. package/src/theme/system/v0/color/muted.ts +11 -0
  139. package/src/theme/system/v0/color/selectable.ts +11 -0
  140. package/src/theme/system/v0/color/solid.ts +11 -0
  141. package/src/theme/system/v0/color/spot.ts +1 -0
  142. package/src/theme/versioning/getTheme_v2.ts +15 -0
  143. package/src/theme/versioning/themeColor_v0_v2.ts +7 -0
  144. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -0
  145. package/src/theme/versioning/v0_v2.ts +13 -1
  146. package/src/theme/versioning/v2_v0.ts +15 -0
  147. package/src/core/__workshop__/constants.ts +0 -293
  148. package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
  149. package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
  150. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  151. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
  152. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
  153. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
  154. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  155. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
  156. package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
  157. package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
  158. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
  159. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
  160. package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
  161. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  162. package/src/core/components/dialog/__workshop__/index.ts +0 -19
  163. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  164. package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
  165. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
  166. package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
  167. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  168. package/src/core/components/dialog/__workshop__/props.tsx +0 -75
  169. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  170. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  171. package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
  172. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  173. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  174. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
  175. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
  176. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
  177. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  178. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
  179. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  180. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  181. package/src/core/components/menu/__workshop__/index.ts +0 -89
  182. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  183. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
  184. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  185. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
  186. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  187. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
  188. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  189. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  190. package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
  191. package/src/core/components/skeleton/__workshop__/index.ts +0 -11
  192. package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
  193. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  194. package/src/core/components/tab/__workshop__/index.ts +0 -14
  195. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  196. package/src/core/components/toast/__workshop__/index.ts +0 -19
  197. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  198. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  199. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  200. package/src/core/components/tree/__workshop__/index.ts +0 -21
  201. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  202. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
  203. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  204. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
  205. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  206. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  207. package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
  208. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  209. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  210. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
  211. package/src/core/primitives/badge/__workshop__/index.ts +0 -19
  212. package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
  213. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
  214. package/src/core/primitives/box/__workshop__/index.ts +0 -19
  215. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  216. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  217. package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
  218. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  219. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
  220. package/src/core/primitives/button/__workshop__/index.ts +0 -59
  221. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  222. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  223. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
  224. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  225. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  226. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  227. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
  228. package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
  229. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  230. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  231. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  232. package/src/core/primitives/card/__workshop__/index.ts +0 -18
  233. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
  234. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
  235. package/src/core/primitives/card/__workshop__/props.tsx +0 -53
  236. package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
  237. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  238. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  239. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
  240. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
  241. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  242. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
  243. package/src/core/primitives/code/__workshop__/index.ts +0 -19
  244. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
  245. package/src/core/primitives/code/__workshop__/props.tsx +0 -21
  246. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  247. package/src/core/primitives/container/__workshop__/index.ts +0 -8
  248. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  249. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  250. package/src/core/primitives/flex/__workshop__/index.ts +0 -11
  251. package/src/core/primitives/grid/__workshop__/index.ts +0 -10
  252. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  253. package/src/core/primitives/heading/__workshop__/index.ts +0 -19
  254. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  255. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
  256. package/src/core/primitives/inline/__workshop__/index.ts +0 -8
  257. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
  258. package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
  259. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  260. package/src/core/primitives/label/__workshop__/index.ts +0 -19
  261. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
  262. package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
  263. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  264. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  265. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  266. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  267. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  268. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  269. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
  270. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
  271. package/src/core/primitives/popover/__workshop__/index.ts +0 -49
  272. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  273. package/src/core/primitives/radio/__workshop__/index.ts +0 -11
  274. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  275. package/src/core/primitives/select/__workshop__/index.ts +0 -11
  276. package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
  277. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  278. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  279. package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
  280. package/src/core/primitives/stack/__workshop__/index.ts +0 -14
  281. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  282. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  283. package/src/core/primitives/switch/__workshop__/index.ts +0 -11
  284. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  285. package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
  286. package/src/core/primitives/text/__workshop__/example.tsx +0 -39
  287. package/src/core/primitives/text/__workshop__/index.ts +0 -24
  288. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
  289. package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
  290. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
  291. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  292. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  293. package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
  294. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
  295. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  296. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  297. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  298. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  299. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  300. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
  301. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  302. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
  303. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  304. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  305. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  306. package/src/core/theme/__workshop__/build/story.tsx +0 -465
  307. package/src/core/theme/__workshop__/canvas.tsx +0 -352
  308. package/src/core/theme/__workshop__/color.tsx +0 -62
  309. package/src/core/theme/__workshop__/debug/story.tsx +0 -408
  310. package/src/core/theme/__workshop__/index.ts +0 -39
  311. package/src/core/theme/__workshop__/layer.tsx +0 -78
  312. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  313. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
  314. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  315. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
  316. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
  317. package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
  318. package/src/core/utils/layer/__workshop__/index.ts +0 -24
  319. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
  320. package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
  321. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
  322. package/src/core/utils/portal/__workshop__/index.ts +0 -14
  323. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  324. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
  325. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
  326. package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
  327. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
  328. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
@@ -1,10 +1,12 @@
1
- /** @jest-environment jsdom */
1
+ /** @vitest-environment jsdom */
2
+
2
3
  /**
3
4
  * As this hook is used for top-level theming it's likely to be called while server-rendering
4
5
  * and that's why it's worth it to have a testing suite for hydration
5
6
  */
6
7
  import {waitFor} from '@testing-library/dom'
7
8
  import {hydrateRoot} from 'react-dom/client'
9
+ import {afterAll, beforeAll, describe, expect, it, vi} from 'vitest'
8
10
 
9
11
  import {usePrefersDark} from './usePrefersDark'
10
12
 
@@ -19,9 +21,10 @@ const originalMatchMedia = window.matchMedia
19
21
  describe('usePrefersDark SSR hydration', () => {
20
22
  beforeAll(() => {
21
23
  window.matchMedia = () =>
24
+ // oxlint-disable-next-line no-unsafe-type-assertion
22
25
  ({
23
- addEventListener: jest.fn(),
24
- removeEventListener: jest.fn(),
26
+ addEventListener: vi.fn(),
27
+ removeEventListener: vi.fn(),
25
28
  matches: true,
26
29
  }) as any
27
30
  })
@@ -31,7 +34,7 @@ describe('usePrefersDark SSR hydration', () => {
31
34
  })
32
35
 
33
36
  it(`hydrates without any warnings`, async () => {
34
- const spy = jest.spyOn(console, 'error').mockImplementation()
37
+ const spy = vi.spyOn(console, 'error').mockImplementation(() => {})
35
38
 
36
39
  const node = document.createElement('div')
37
40
 
@@ -47,7 +50,6 @@ describe('usePrefersDark SSR hydration', () => {
47
50
  // After hydration it should switch to true
48
51
  await waitFor(() => expect(node.innerHTML).toBe('dark: <!-- -->true'))
49
52
 
50
- // eslint-disable-next-line no-console
51
53
  expect(console.error).not.toHaveBeenCalled()
52
54
 
53
55
  spy.mockReset()
@@ -1,5 +1,7 @@
1
- /** @jest-environment node */
1
+ /** @vitest-environment node */
2
+
2
3
  import {renderToStaticMarkup, renderToString} from 'react-dom/server'
4
+ import {describe, expect, it} from 'vitest'
3
5
 
4
6
  import {usePrefersDark} from './usePrefersDark'
5
7
 
@@ -1,10 +1,12 @@
1
- /** @jest-environment jsdom */
1
+ /** @vitest-environment jsdom */
2
+
2
3
  /**
3
4
  * As this hook is used for top-level theming it's likely to be called while server-rendering
4
5
  * and that's why it's worth it to have a testing suite for hydration
5
6
  */
6
7
  import {waitFor} from '@testing-library/dom'
7
8
  import {hydrateRoot} from 'react-dom/client'
9
+ import {afterAll, beforeAll, describe, expect, it, vi} from 'vitest'
8
10
 
9
11
  import {usePrefersReducedMotion} from './usePrefersReducedMotion'
10
12
 
@@ -19,9 +21,10 @@ const originalMatchMedia = window.matchMedia
19
21
  describe('usePrefersReducedMotion SSR hydration', () => {
20
22
  beforeAll(() => {
21
23
  window.matchMedia = () =>
24
+ // oxlint-disable-next-line no-unsafe-type-assertion
22
25
  ({
23
- addEventListener: jest.fn(),
24
- removeEventListener: jest.fn(),
26
+ addEventListener: vi.fn(),
27
+ removeEventListener: vi.fn(),
25
28
  matches: true,
26
29
  }) as any
27
30
  })
@@ -31,7 +34,7 @@ describe('usePrefersReducedMotion SSR hydration', () => {
31
34
  })
32
35
 
33
36
  it(`hydrates without any warnings`, async () => {
34
- const spy = jest.spyOn(console, 'error').mockImplementation()
37
+ const spy = vi.spyOn(console, 'error').mockImplementation(() => {})
35
38
 
36
39
  const node = document.createElement('div')
37
40
 
@@ -47,7 +50,6 @@ describe('usePrefersReducedMotion SSR hydration', () => {
47
50
  // After hydration it should switch to true
48
51
  await waitFor(() => expect(node.innerHTML).toBe('prefers-motion: <!-- -->true'))
49
52
 
50
- // eslint-disable-next-line no-console
51
53
  expect(console.error).not.toHaveBeenCalled()
52
54
 
53
55
  spy.mockReset()
@@ -1,5 +1,7 @@
1
- /** @jest-environment node */
1
+ /** @vitest-environment node */
2
+
2
3
  import {renderToStaticMarkup, renderToString} from 'react-dom/server'
4
+ import {describe, expect, it} from 'vitest'
3
5
 
4
6
  import {usePrefersReducedMotion} from './usePrefersReducedMotion'
5
7
 
@@ -12,6 +12,7 @@ import {type Context, createContext} from 'react'
12
12
 
13
13
  import {globalScope} from './globalScope'
14
14
 
15
+ // oxlint-disable-next-line no-unnecessary-type-parameters
15
16
  export function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(
16
17
  /**
17
18
  * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix
@@ -16,4 +16,5 @@ function getGlobalScope() {
16
16
  throw new Error('@sanity/ui: could not locate global scope')
17
17
  }
18
18
 
19
+ // oxlint-disable-next-line no-unsafe-type-assertion
19
20
  export const globalScope = getGlobalScope() as any
@@ -50,6 +50,7 @@ function _createElementRectValueListener(): _ElementSizeListener {
50
50
  subscribe(element, subscriber) {
51
51
  const resizeObserver = new _ResizeObserver(([entry]) => {
52
52
  subscriber({
53
+ // oxlint-disable-next-line no-deprecated
53
54
  _contentRect: entry.contentRect,
54
55
  border: {
55
56
  width: entry.borderBoxSize[0].inlineSize,
@@ -77,7 +77,6 @@ export const Avatar = forwardRef(function Avatar(
77
77
  const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'
78
78
  const size = useArrayProp(sizeProp)
79
79
 
80
- // eslint-disable-next-line no-warning-comments
81
80
  // @todo: remove this
82
81
  const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]
83
82
  const _sizeRem = avatarSize.size
@@ -102,7 +101,7 @@ export const Avatar = forwardRef(function Avatar(
102
101
  }, [arrowPosition, arrowPositionProp])
103
102
 
104
103
  useEffect(() => {
105
- // eslint-disable-next-line react-hooks/set-state-in-effect
104
+ // oxlint-disable-next-line react-compiler
106
105
  if (src) setImageFailed(false)
107
106
  }, [src])
108
107
 
@@ -93,6 +93,7 @@ export const AvatarStack = forwardRef(function AvatarStack(
93
93
  )}
94
94
 
95
95
  {visibleChildren.map((child, childIndex) => (
96
+ // oxlint-disable-next-line no-array-index-key
96
97
  <div key={String(childIndex)}>{cloneElement(child, {size})}</div>
97
98
  ))}
98
99
  </StyledAvatarStack>
@@ -1,6 +1,7 @@
1
- /** @jest-environment jsdom */
1
+ /** @vitest-environment jsdom */
2
2
 
3
- import {axe} from 'jest-axe'
3
+ import {describe, expect, it} from 'vitest'
4
+ import {axe} from 'vitest-axe'
4
5
 
5
6
  import {render} from '../../../../test'
6
7
  import {Badge} from './badge'
@@ -17,6 +17,7 @@ export interface BadgeProps extends BoxProps, ResponsiveRadiusProps {
17
17
  as?: React.ElementType | keyof React.JSX.IntrinsicElements
18
18
  fontSize?: number | number[]
19
19
  /** @deprecated No longer used. */
20
+ // oxlint-disable-next-line no-deprecated
20
21
  mode?: BadgeMode
21
22
  tone?: BadgeTone
22
23
  }
@@ -38,7 +39,7 @@ export const Badge = forwardRef(function Badge(
38
39
  const {
39
40
  children,
40
41
  fontSize = 1,
41
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
+ // oxlint-disable-next-line no-deprecated
42
43
  mode: _deprecated_mode,
43
44
  padding = 1,
44
45
  radius = 'full',
@@ -27,7 +27,8 @@ import {
27
27
  * @public
28
28
  */
29
29
  export interface BoxProps
30
- extends ResponsiveFlexItemProps,
30
+ extends
31
+ ResponsiveFlexItemProps,
31
32
  ResponsiveBoxProps,
32
33
  ResponsiveGridItemProps,
33
34
  ResponsiveMarginProps,
@@ -1,8 +1,9 @@
1
- /** @jest-environment jsdom */
1
+ /** @vitest-environment jsdom */
2
2
 
3
3
  import {AddIcon} from '@sanity/icons'
4
4
  import {screen} from '@testing-library/react'
5
- import {axe} from 'jest-axe'
5
+ import {describe, expect, it} from 'vitest'
6
+ import {axe} from 'vitest-axe'
6
7
 
7
8
  import {render} from '../../../../test'
8
9
  import {Button, ButtonProps} from './button'
@@ -22,7 +22,9 @@ export interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusPro
22
22
  as?: React.ElementType | keyof React.JSX.IntrinsicElements
23
23
  fontSize?: number | number[]
24
24
  mode?: ButtonMode
25
+ // oxlint-disable-next-line no-redundant-type-constituents
25
26
  icon?: React.ElementType | React.ReactNode
27
+ // oxlint-disable-next-line no-redundant-type-constituents
26
28
  iconRight?: React.ElementType | React.ReactNode
27
29
  justify?: FlexJustify | FlexJustify[]
28
30
  /**
@@ -79,6 +79,7 @@ export function buttonColorStyles(
79
79
  // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`
80
80
  const defaultBoxShadow = undefined
81
81
 
82
+ // oxlint-disable-next-line no-unsafe-type-assertion
82
83
  return [
83
84
  _cardColorStyle(baseColor, color.enabled),
84
85
  {
@@ -23,10 +23,7 @@ import {CardStyleProps} from './types'
23
23
  * @public
24
24
  */
25
25
  export interface CardProps
26
- extends BoxProps,
27
- ResponsiveBorderProps,
28
- ResponsiveRadiusProps,
29
- ResponsiveShadowProps {
26
+ extends BoxProps, ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps {
30
27
  /**
31
28
  * Do not use in production.
32
29
  * @beta
@@ -83,7 +80,6 @@ export const Card = forwardRef(function Card(
83
80
  const rootTheme = useRootTheme()
84
81
  const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp
85
82
 
86
- // eslint-disable-next-line no-warning-comments
87
83
  // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider
88
84
  return (
89
85
  <ThemeColorProvider scheme={scheme} tone={tone}>
@@ -7,5 +7,6 @@ export interface CardStyleProps {
7
7
  $checkered: boolean
8
8
  $focusRing: boolean
9
9
  $muted: boolean
10
+ // oxlint-disable-next-line no-deprecated
10
11
  $tone: ThemeColorToneKey
11
12
  }
@@ -7,11 +7,13 @@ export default function LazyRefractor(
7
7
  ) {
8
8
  const {language: languageProp, value} = props
9
9
  const language = typeof languageProp === 'string' ? languageProp : undefined
10
+ // oxlint-disable-next-line no-unsafe-type-assertion
10
11
  const registered = language ? Refractor.hasLanguage(language as any) : false
11
12
 
12
13
  return (
13
14
  <>
14
15
  {!(language && registered) && <code>{value}</code>}
16
+ {/* oxlint-disable-next-line no-base-to-string */}
15
17
  {language && registered && <Refractor inline language={language} value={String(value)} />}
16
18
  </>
17
19
  )
@@ -15,9 +15,7 @@ import {ResponsiveFlexItemProps, ResponsiveFlexProps} from '../types'
15
15
  * @public
16
16
  */
17
17
  export interface FlexProps
18
- extends Omit<BoxProps, 'display'>,
19
- ResponsiveFlexProps,
20
- ResponsiveFlexItemProps {
18
+ extends Omit<BoxProps, 'display'>, ResponsiveFlexProps, ResponsiveFlexItemProps {
21
19
  gap?: number | number[]
22
20
  }
23
21
 
@@ -38,6 +38,7 @@ export const Inline = forwardRef(function Inline(
38
38
  {...restProps}
39
39
  $space={useArrayProp(space)}
40
40
  forwardedAs={as}
41
+ // oxlint-disable-next-line no-unnecessary-type-assertion, no-unsafe-type-assertion
41
42
  ref={ref as any}
42
43
  >
43
44
  {children}
@@ -11,7 +11,7 @@ import {
11
11
  useFloating,
12
12
  } from '@floating-ui/react-dom'
13
13
  import {ThemeColorSchemeKey} from '@sanity/ui/theme'
14
- import {AnimatePresence} from 'framer-motion'
14
+ import {AnimatePresence} from 'motion/react'
15
15
  import {
16
16
  cloneElement,
17
17
  forwardRef,
@@ -45,9 +45,7 @@ import {PopoverUpdateCallback, PopoverWidth} from './types'
45
45
 
46
46
  /** @public */
47
47
  export interface PopoverProps
48
- extends Omit<LayerProps, 'as'>,
49
- ResponsiveRadiusProps,
50
- ResponsiveShadowProps {
48
+ extends Omit<LayerProps, 'as'>, ResponsiveRadiusProps, ResponsiveShadowProps {
51
49
  /** @beta */
52
50
  __unstable_margins?: PopoverMargins
53
51
  /**
@@ -120,6 +118,7 @@ export interface PopoverProps
120
118
  tone?: CardTone
121
119
  /** @beta */
122
120
  updateRef?:
121
+ // oxlint-disable-next-line no-deprecated
123
122
  | MutableRefObject<PopoverUpdateCallback | undefined>
124
123
  | RefCallback<PopoverUpdateCallback | undefined>
125
124
  width?: PopoverWidth | PopoverWidth[]
@@ -149,6 +148,7 @@ export const Popover = memo(
149
148
  __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,
150
149
  animate: _animate = false,
151
150
  arrow: arrowProp = false,
151
+ // oxlint-disable-next-line no-deprecated
152
152
  boundaryElement = boundaryElementContext.element,
153
153
  children: childProp,
154
154
  constrainSize = false,
@@ -157,6 +157,7 @@ export const Popover = memo(
157
157
  fallbackPlacements = props.fallbackPlacements ??
158
158
  DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],
159
159
  matchReferenceWidth,
160
+ // oxlint-disable-next-line no-deprecated
160
161
  floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,
161
162
  modal,
162
163
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -169,6 +170,7 @@ export const Popover = memo(
169
170
  portal,
170
171
  preventOverflow = true,
171
172
  radius: radiusProp = 3,
173
+ // oxlint-disable-next-line no-deprecated
172
174
  referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,
173
175
  referenceElement,
174
176
  scheme,
@@ -276,6 +278,7 @@ export const Popover = memo(
276
278
  // Track sizes
277
279
  if (constrainSize || matchReferenceWidth) {
278
280
  ret.push(
281
+ // oxlint-disable-next-line react-compiler
279
282
  size({
280
283
  apply({availableWidth, availableHeight, elements, referenceWidth}) {
281
284
  // not fresh, so use refs
@@ -323,7 +326,9 @@ export const Popover = memo(
323
326
  // Place arrow
324
327
  if (arrowProp) {
325
328
  ret.push(
329
+ // oxlint-disable-next-line react-compiler
326
330
  arrow({
331
+ // oxlint-disable-next-line react-compiler
327
332
  element: arrowRef,
328
333
  padding: DEFAULT_POPOVER_PADDING,
329
334
  }),
@@ -379,6 +384,7 @@ export const Popover = memo(
379
384
  const originY = middlewareData['@sanity/ui/origin']?.originY
380
385
 
381
386
  const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {
387
+ // oxlint-disable-next-line react-compiler
382
388
  arrowRef.current = arrowEl
383
389
  }, [])
384
390
 
@@ -394,6 +400,7 @@ export const Popover = memo(
394
400
  (node: HTMLElement | null) => {
395
401
  refs.setReference(node)
396
402
 
403
+ // oxlint-disable-next-line no-unsafe-type-assertion
397
404
  const childRef = getElementRef(childProp as any)
398
405
 
399
406
  if (typeof childRef === 'function') {
@@ -419,6 +426,7 @@ export const Popover = memo(
419
426
  if (typeof updateRef === 'function') {
420
427
  updateRef(update)
421
428
  } else if (updateRef) {
429
+ // oxlint-disable-next-line react-compiler
422
430
  updateRef.current = update
423
431
  }
424
432
  }
@@ -453,6 +461,7 @@ export const Popover = memo(
453
461
  originY={originY}
454
462
  strategy={strategy}
455
463
  tone={tone}
464
+ // oxlint-disable-next-line react-compiler
456
465
  width={matchReferenceWidth ? referenceWidthRef.current : width}
457
466
  x={x}
458
467
  y={y}
@@ -1,6 +1,6 @@
1
1
  import {Strategy} from '@floating-ui/react-dom'
2
2
  import {ThemeColorSchemeKey} from '@sanity/ui/theme'
3
- import {motion, type MotionProps} from 'framer-motion'
3
+ import {motion, type MotionProps} from 'motion/react'
4
4
  import React, {CSSProperties, forwardRef, memo, useMemo} from 'react'
5
5
  import {styled} from 'styled-components'
6
6
 
@@ -124,6 +124,7 @@ export const PopoverCard = memo(
124
124
  return (
125
125
  <MotionCard
126
126
  data-ui="Popover"
127
+ // oxlint-disable-next-line no-unsafe-type-assertion
127
128
  {...(restProps as CardProps & MotionProps)}
128
129
  data-placement={placement}
129
130
  radius={radius}
@@ -1,7 +1,6 @@
1
1
  /** @beta */
2
2
  export type PopoverUpdateCallback = () => void
3
3
 
4
- // eslint-disable-next-line no-warning-comments
5
4
  // todo: remove `auto` from PopoverWidth
6
5
  /** @public */
7
6
  export type PopoverWidth = number | 'auto'
@@ -27,6 +27,7 @@ export function responsiveStackSpaceStyle(
27
27
  const {media, space} = getTheme_v2(props.theme)
28
28
 
29
29
  return _responsive(media, props.$space, (spaceIndex) => ({
30
+ // oxlint-disable-next-line no-deprecated
30
31
  gridGap: rem(space[spaceIndex]),
31
32
  }))
32
33
  }
@@ -64,7 +64,9 @@ export interface TextInputProps {
64
64
  clearButton?: boolean | TextInputClearButtonProps
65
65
  customValidity?: string
66
66
  fontSize?: number | number[]
67
+ // oxlint-disable-next-line no-redundant-type-constituents
67
68
  icon?: React.ElementType | React.ReactNode
69
+ // oxlint-disable-next-line no-redundant-type-constituents
68
70
  iconRight?: React.ElementType | React.ReactNode
69
71
  /**
70
72
  * @beta