@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,105 +0,0 @@
1
- import {LinkIcon} from '@sanity/icons'
2
- import {Box, Tree, TreeItem} from '@sanity/ui'
3
- import {usePerfTest} from '@sanity/ui-workshop/plugin-perf'
4
- import {useCallback, useState} from 'react'
5
-
6
- import {perfTests} from './basic.perf'
7
-
8
- export default function BasicStory() {
9
- const {ref, Wrapper} = usePerfTest(perfTests[0])
10
-
11
- const [id, setId] = useState('')
12
-
13
- const handleClick = useCallback((event: React.MouseEvent) => {
14
- event.preventDefault()
15
-
16
- const testid = event.currentTarget.getAttribute('data-testid')
17
-
18
- if (testid) setId(testid)
19
- }, [])
20
-
21
- return (
22
- <Box padding={[4, 5, 6]}>
23
- <Wrapper>
24
- <Tree ref={ref} space={1}>
25
- <TreeItem onClick={handleClick} expanded text="Fruit">
26
- <TreeItem
27
- data-testid="oranges"
28
- onClick={handleClick}
29
- selected={id === 'oranges'}
30
- text="Oranges"
31
- />
32
- <TreeItem
33
- data-testid="pineapples"
34
- onClick={handleClick}
35
- text="Pineapples"
36
- selected={id === 'pineapples'}
37
- />
38
- <TreeItem data-testid="apples" onClick={handleClick} text="Apples">
39
- <TreeItem
40
- data-testid="apples/macintosh"
41
- onClick={handleClick}
42
- href="/apples/macintosh"
43
- icon={LinkIcon}
44
- text="Macintosh"
45
- />
46
- <TreeItem
47
- data-testid="apples/granny-smith"
48
- onClick={handleClick}
49
- text="Granny Smith"
50
- />
51
- <TreeItem data-testid="apples/fuji" onClick={handleClick} text="Fuji" />
52
- </TreeItem>
53
- <TreeItem onClick={handleClick} text="Bananas" />
54
- <TreeItem onClick={handleClick} text="Pears">
55
- <TreeItem onClick={handleClick} text="Anjou" />
56
- <TreeItem onClick={handleClick} text="Bartlett" />
57
- <TreeItem onClick={handleClick} text="Bosc" />
58
- <TreeItem onClick={handleClick} text="Concorde" />
59
- <TreeItem onClick={handleClick} text="Seckel" />
60
- <TreeItem onClick={handleClick} text="Starkrimson" />
61
- </TreeItem>
62
- </TreeItem>
63
- <TreeItem onClick={handleClick} text="Vegetables">
64
- <TreeItem onClick={handleClick} text="Podded vegetables">
65
- <TreeItem onClick={handleClick} text="Lentil" />
66
- <TreeItem onClick={handleClick} text="Pea" />
67
- <TreeItem onClick={handleClick} text="Peanut" />
68
- </TreeItem>
69
- <TreeItem onClick={handleClick} text="Bulb and stem vegetables">
70
- <TreeItem onClick={handleClick} text="Asparagus" />
71
- <TreeItem onClick={handleClick} text="Celery" />
72
- <TreeItem onClick={handleClick} text="Leek" />
73
- <TreeItem onClick={handleClick} text="Onion" />
74
- </TreeItem>
75
- <TreeItem onClick={handleClick} text="Root and tuberous vegetables">
76
- <TreeItem onClick={handleClick} text="Carrot" />
77
- <TreeItem onClick={handleClick} text="Ginger" />
78
- <TreeItem onClick={handleClick} text="Parsnip" />
79
- <TreeItem onClick={handleClick} text="Potato" />
80
- </TreeItem>
81
- </TreeItem>
82
- <TreeItem onClick={handleClick} text="Grains">
83
- <TreeItem onClick={handleClick} text="Cereal grains">
84
- <TreeItem onClick={handleClick} text="Barley" />
85
- <TreeItem onClick={handleClick} text="Oats" />
86
- <TreeItem onClick={handleClick} text="Rice" />
87
- </TreeItem>
88
- <TreeItem onClick={handleClick} text="Pseudocereal grains">
89
- <TreeItem onClick={handleClick} text="Amaranth" />
90
- <TreeItem onClick={handleClick} text="Buckwheat" />
91
- <TreeItem onClick={handleClick} text="Chia" />
92
- <TreeItem onClick={handleClick} text="Quinoa" />
93
- </TreeItem>
94
- <TreeItem onClick={handleClick} text="Oilseeds">
95
- <TreeItem onClick={handleClick} text="India mustard" />
96
- <TreeItem onClick={handleClick} text="Safflower" />
97
- <TreeItem onClick={handleClick} text="Flax seed" />
98
- <TreeItem onClick={handleClick} text="Poppy seed" />
99
- </TreeItem>
100
- </TreeItem>
101
- </Tree>
102
- </Wrapper>
103
- </Box>
104
- )
105
- }
@@ -1,21 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'components/tree',
6
- title: 'Tree',
7
- stories: [
8
- {
9
- name: 'basic',
10
- title: 'Basic',
11
- component: lazy(() => import('./basic')),
12
- // options: {perfTests: () => import('./basic.perf')},
13
- },
14
- {
15
- name: 'tab',
16
- title: 'Tab',
17
- component: lazy(() => import('./tabFromElement')),
18
- // options: {perfTests: () => import('./basic.perf')},
19
- },
20
- ],
21
- })
@@ -1,84 +0,0 @@
1
- import {LinkIcon} from '@sanity/icons'
2
- import {Box, Text, TextInput, Tree, TreeItem} from '@sanity/ui'
3
- import {usePerfTest} from '@sanity/ui-workshop/plugin-perf'
4
- import {useCallback, useState} from 'react'
5
-
6
- import {perfTests} from './basic.perf'
7
-
8
- export default function BasicStory() {
9
- const {ref, Wrapper} = usePerfTest(perfTests[0])
10
-
11
- const [id, setId] = useState('')
12
- const [focus, setFocus] = useState('')
13
-
14
- const handleClick = useCallback((event: React.MouseEvent) => {
15
- event.preventDefault()
16
-
17
- const testid = event.currentTarget.getAttribute('data-testid')
18
-
19
- if (testid) setId(testid)
20
- }, [])
21
-
22
- const handleFocus = useCallback((event: React.FocusEvent<HTMLDivElement>) => {
23
- const elementFocus = event.target.getAttribute('data-testid')
24
- if (elementFocus) setFocus(elementFocus)
25
- }, [])
26
-
27
- return (
28
- <Box padding={[4, 5, 6]}>
29
- <Box paddingY={3}>
30
- <Text muted size={1}>
31
- This example is to demonstrate that when you tab from an outside element (using the
32
- keyboard to navigate), you can still access the tree and tree item. Press the input
33
- beneath and start tabbing / using the arrow.
34
- </Text>
35
- </Box>
36
- <Box paddingY={3}>
37
- <Text>Focus: {focus}</Text>
38
- </Box>
39
- <Wrapper>
40
- <TextInput />
41
- <Tree ref={ref} space={1} onFocus={handleFocus}>
42
- <TreeItem data-testid="fruit" onClick={handleClick} expanded text="Fruit">
43
- <TreeItem
44
- data-testid="oranges"
45
- onClick={handleClick}
46
- selected={id === 'oranges'}
47
- text="Oranges"
48
- />
49
- <TreeItem
50
- data-testid="pineapples"
51
- onClick={handleClick}
52
- text="Pineapples"
53
- selected={id === 'pineapples'}
54
- />
55
- <TreeItem data-testid="apples" onClick={handleClick} text="Apples">
56
- <TreeItem
57
- data-testid="apples/macintosh"
58
- onClick={handleClick}
59
- href="/apples/macintosh"
60
- icon={LinkIcon}
61
- text="Macintosh"
62
- />
63
- <TreeItem
64
- data-testid="apples/granny-smith"
65
- onClick={handleClick}
66
- text="Granny Smith"
67
- />
68
- <TreeItem data-testid="apples/fuji" onClick={handleClick} text="Fuji" />
69
- </TreeItem>
70
- <TreeItem data-testid="bananas" onClick={handleClick} text="Bananas" />
71
- <TreeItem data-testid="pears" onClick={handleClick} text="Pears">
72
- <TreeItem data-testid="pears/anjou" onClick={handleClick} text="Anjou" />
73
- <TreeItem data-testid="pears/bartlett" onClick={handleClick} text="Bartlett" />
74
- <TreeItem data-testid="pears/bosc" onClick={handleClick} text="Bosc" />
75
- <TreeItem data-testid="pears/concorde" onClick={handleClick} text="Concorde" />
76
- <TreeItem data-testid="pears/seckel" onClick={handleClick} text="Seckel" />
77
- <TreeItem data-testid="pears/starkrimson" onClick={handleClick} text="Starkrimson" />
78
- </TreeItem>
79
- </TreeItem>
80
- </Tree>
81
- </Wrapper>
82
- </Box>
83
- )
84
- }
@@ -1,32 +0,0 @@
1
- import {Box, Card, Code, Container, Stack, Text, useElementRect} from '@sanity/ui'
2
- import {useState} from 'react'
3
-
4
- import {Grid} from '../../../primitives'
5
-
6
- export default function ExampleStory() {
7
- const [element, setElement] = useState<HTMLElement | null>(null)
8
- const rect = useElementRect(element)
9
- const size = {width: rect?.width || 0, height: rect?.height || 0}
10
-
11
- return (
12
- <Box padding={[3, 4, 5]}>
13
- <Container width={1}>
14
- <Stack space={4}>
15
- <Grid columns={[1, 2, 3]}>
16
- <Card ref={setElement} tone="transparent">
17
- <Text>rect</Text>
18
- </Card>
19
- </Grid>
20
-
21
- <div style={{height: 11}}>
22
- <Card scheme="dark" style={{position: 'absolute', ...size}} />
23
- </div>
24
-
25
- <Code language="json" size={1}>
26
- {JSON.stringify(size)}
27
- </Code>
28
- </Stack>
29
- </Container>
30
- </Box>
31
- )
32
- }
@@ -1,14 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'hooks/useElementRect',
6
- title: 'useElementRect',
7
- stories: [
8
- {
9
- name: 'example',
10
- title: 'Example',
11
- component: lazy(() => import('./example')),
12
- },
13
- ],
14
- })
@@ -1,14 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'hooks/use-media-index',
6
- title: 'useMediaIndex',
7
- stories: [
8
- {
9
- name: 'test',
10
- title: 'Test',
11
- component: lazy(() => import('./test')),
12
- },
13
- ],
14
- })
@@ -1,14 +0,0 @@
1
- import {Card, Stack, Text, useMediaIndex} from '@sanity/ui'
2
-
3
- export default function TestStory() {
4
- const mediaIndex = useMediaIndex()
5
-
6
- return (
7
- <Card padding={[3, 4, 5]}>
8
- <Stack space={2}>
9
- <Text weight="medium">The current media index is {mediaIndex}.</Text>
10
- <Text muted>Try resizing the browser.</Text>
11
- </Stack>
12
- </Card>
13
- )
14
- }
@@ -1,14 +0,0 @@
1
- import {Avatar, Flex} from '@sanity/ui'
2
- import {useSelect} from '@sanity/ui-workshop'
3
-
4
- import {WORKSHOP_AVATAR_SIZE_OPTIONS} from '../../../__workshop__/constants'
5
-
6
- export default function AsButtonStory() {
7
- const size = useSelect('Size', WORKSHOP_AVATAR_SIZE_OPTIONS, 1, 'Props')
8
-
9
- return (
10
- <Flex align="center" height="fill" justify="center">
11
- <Avatar as="button" color="purple" initials="uq" size={size} />
12
- </Flex>
13
- )
14
- }
@@ -1,29 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/avatar',
6
- title: 'Avatar',
7
- stories: [
8
- {
9
- name: 'as-button',
10
- title: 'As button',
11
- component: lazy(() => import('./asButton')),
12
- },
13
- {
14
- name: 'avatar-stack',
15
- title: 'Avatar stack',
16
- component: lazy(() => import('./stack')),
17
- },
18
- {
19
- name: 'within-button',
20
- title: 'Within button',
21
- component: lazy(() => import('./withinButton')),
22
- },
23
- {
24
- name: 'within-menu-item',
25
- title: 'Within menu item',
26
- component: lazy(() => import('./withinMenuItem')),
27
- },
28
- ],
29
- })
@@ -1,25 +0,0 @@
1
- import {Avatar, AvatarCounter, AvatarStack, Flex} from '@sanity/ui'
2
- import {useSelect} from '@sanity/ui-workshop'
3
-
4
- import {WORKSHOP_AVATAR_SIZE_OPTIONS} from '../../../__workshop__/constants'
5
-
6
- export default function StackStory() {
7
- const size = useSelect('Size', WORKSHOP_AVATAR_SIZE_OPTIONS, 1, 'Props')
8
-
9
- return (
10
- <Flex align="center" height="fill" justify="center">
11
- <AvatarStack size={size}>
12
- <AvatarCounter count={2} />
13
- <Avatar color="magenta" initials="uq" />
14
- <Avatar
15
- color="purple"
16
- src="https://avatars3.githubusercontent.com/u/406933?s=400&u=af898b0a50ef2ef1248be32dfa1410ccb55f6f65&v=4"
17
- />
18
- <Avatar
19
- color="blue"
20
- src="https://avatars3.githubusercontent.com/u/406933?s=400&u=af898b0a50ef2ef1248be32dfa1410ccb55f6f65&v=4"
21
- />
22
- </AvatarStack>
23
- </Flex>
24
- )
25
- }
@@ -1,63 +0,0 @@
1
- import {useBoolean} from '@sanity/ui-workshop'
2
-
3
- import {Box} from '../../box'
4
- import {Button} from '../../button'
5
- import {Container} from '../../container'
6
- import {Flex} from '../../flex'
7
- import {Stack} from '../../stack'
8
- import {Text} from '../../text'
9
- import {Avatar} from '../avatar'
10
- import {AvatarStack} from '../avatarStack'
11
-
12
- export default function WithinButtonStory() {
13
- const disabled = useBoolean('Disabled', false, 'Props')
14
-
15
- return (
16
- <Container width={1}>
17
- <Stack paddingX={4} paddingY={[5, 6, 7]} space={1}>
18
- <Button disabled={disabled} padding={1}>
19
- <Flex align="center" gap={3} padding={2}>
20
- <Box flex={1}>
21
- <Text size={1}>Default button</Text>
22
- </Box>
23
- <Box flex="none">
24
- <AvatarStack>
25
- <Avatar color="blue" initials="AB" />
26
- <Avatar color="magenta" initials="CD" />
27
- <Avatar color="purple" initials="EF" />
28
- </AvatarStack>
29
- </Box>
30
- </Flex>
31
- </Button>
32
- <Button disabled={disabled} mode="ghost" padding={1}>
33
- <Flex align="center" gap={3} padding={2}>
34
- <Box flex={1}>
35
- <Text size={1}>Ghost button</Text>
36
- </Box>
37
- <Box flex="none">
38
- <AvatarStack>
39
- <Avatar color="blue" initials="AB" />
40
- <Avatar color="magenta" initials="CD" />
41
- <Avatar color="purple" initials="EF" />
42
- </AvatarStack>
43
- </Box>
44
- </Flex>
45
- </Button>
46
- <Button disabled={disabled} mode="bleed" padding={1}>
47
- <Flex align="center" gap={3} padding={2}>
48
- <Box flex={1}>
49
- <Text size={1}>Bleed button</Text>
50
- </Box>
51
- <Box flex="none">
52
- <AvatarStack>
53
- <Avatar color="blue" initials="AB" />
54
- <Avatar color="magenta" initials="CD" />
55
- <Avatar color="purple" initials="EF" />
56
- </AvatarStack>
57
- </Box>
58
- </Flex>
59
- </Button>
60
- </Stack>
61
- </Container>
62
- )
63
- }
@@ -1,70 +0,0 @@
1
- import {useBoolean} from '@sanity/ui-workshop'
2
-
3
- import {Menu, MenuItem} from '../../../components'
4
- import {Layer} from '../../../utils'
5
- import {Box} from '../../box'
6
- import {Card} from '../../card'
7
- import {Container} from '../../container'
8
- import {Flex} from '../../flex'
9
- import {Text} from '../../text'
10
- import {Avatar} from '../avatar'
11
- import {AvatarStack} from '../avatarStack'
12
-
13
- export default function WithinMenuItemStory() {
14
- const disabled = useBoolean('Disabled', false, 'Props')
15
-
16
- return (
17
- <Container width={1}>
18
- <Layer>
19
- <Box paddingX={4} paddingY={[5, 6, 7]}>
20
- <Card radius={3} shadow={3}>
21
- <Menu space={1}>
22
- <MenuItem disabled={disabled} padding={0}>
23
- <Flex align="center" gap={2} padding={2}>
24
- <Box flex={1}>
25
- <Text size={1}>Menu item 1</Text>
26
- </Box>
27
- <Box flex="none">
28
- <AvatarStack>
29
- <Avatar color="blue" initials="AB" />
30
- <Avatar color="magenta" initials="CD" />
31
- <Avatar color="purple" initials="EF" />
32
- </AvatarStack>
33
- </Box>
34
- </Flex>
35
- </MenuItem>
36
- <MenuItem disabled={disabled} padding={0}>
37
- <Flex align="center" gap={2} padding={2}>
38
- <Box flex={1}>
39
- <Text size={1}>Menu item 1</Text>
40
- </Box>
41
- <Box flex="none">
42
- <AvatarStack>
43
- <Avatar color="blue" initials="AB" />
44
- <Avatar color="magenta" initials="CD" />
45
- <Avatar color="purple" initials="EF" />
46
- </AvatarStack>
47
- </Box>
48
- </Flex>
49
- </MenuItem>
50
- <MenuItem disabled={disabled} padding={0}>
51
- <Flex align="center" gap={2} padding={2}>
52
- <Box flex={1}>
53
- <Text size={1}>Menu item 1</Text>
54
- </Box>
55
- <Box flex="none">
56
- <AvatarStack>
57
- <Avatar color="blue" initials="AB" />
58
- <Avatar color="magenta" initials="CD" />
59
- <Avatar color="purple" initials="EF" />
60
- </AvatarStack>
61
- </Box>
62
- </Flex>
63
- </MenuItem>
64
- </Menu>
65
- </Card>
66
- </Box>
67
- </Layer>
68
- </Container>
69
- )
70
- }
@@ -1,19 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/badge',
6
- title: 'Badge',
7
- stories: [
8
- {
9
- name: 'props',
10
- title: 'Props',
11
- component: lazy(() => import('./props')),
12
- },
13
- {
14
- name: 'tones',
15
- title: 'Tones',
16
- component: lazy(() => import('./tones')),
17
- },
18
- ],
19
- })
@@ -1,30 +0,0 @@
1
- import {Badge, Flex} from '@sanity/ui'
2
- import {useAction, useSelect, useText} from '@sanity/ui-workshop'
3
-
4
- import {
5
- WORKSHOP_BADGE_MODE_OPTIONS,
6
- WORKSHOP_BADGE_TONE_OPTIONS,
7
- WORKSHOP_SPACE_OPTIONS,
8
- } from '../../../__workshop__/constants'
9
-
10
- export default function PropsStory() {
11
- const mode = useSelect('Mode (deprecated)', WORKSHOP_BADGE_MODE_OPTIONS, 'default', 'Props')
12
- const paddingX = useSelect('Padding X', WORKSHOP_SPACE_OPTIONS, 1, 'Props')
13
- const paddingY = useSelect('Padding Y', WORKSHOP_SPACE_OPTIONS, 1, 'Props')
14
- const tone = useSelect('Tone', WORKSHOP_BADGE_TONE_OPTIONS, 'default', 'Props')
15
- const textProp = useText('Text', 'Label', 'Props')
16
-
17
- return (
18
- <Flex align="center" height="fill" justify="center">
19
- <Badge
20
- mode={mode}
21
- onClick={useAction('onClick')}
22
- paddingX={paddingX}
23
- paddingY={paddingY}
24
- tone={tone}
25
- >
26
- {textProp}
27
- </Badge>
28
- </Flex>
29
- )
30
- }
@@ -1,21 +0,0 @@
1
- import {Badge, Flex, Inline} from '@sanity/ui'
2
- import {THEME_COLOR_STATE_TONES} from '@sanity/ui/theme'
3
- import {useSelect} from '@sanity/ui-workshop'
4
-
5
- import {WORKSHOP_BADGE_MODE_OPTIONS} from '../../../__workshop__/constants'
6
-
7
- export default function Tones() {
8
- const mode = useSelect('Mode (deprecated)', WORKSHOP_BADGE_MODE_OPTIONS, 'default', 'Props')
9
-
10
- return (
11
- <Flex align="center" height="fill" justify="center" padding={4} sizing="border">
12
- <Inline space={2}>
13
- {THEME_COLOR_STATE_TONES.map((tone) => (
14
- <Badge key={tone} mode={mode} tone={tone}>
15
- {tone}
16
- </Badge>
17
- ))}
18
- </Inline>
19
- </Flex>
20
- )
21
- }
@@ -1,19 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/box',
6
- title: 'Box',
7
- stories: [
8
- {
9
- name: 'props',
10
- title: 'Props',
11
- component: lazy(() => import('./props')),
12
- },
13
- {
14
- name: 'responsive',
15
- title: 'Responsive',
16
- component: lazy(() => import('./responsive')),
17
- },
18
- ],
19
- })
@@ -1,20 +0,0 @@
1
- import {Box, Card, Text} from '@sanity/ui'
2
- import {useAction, useSelect} from '@sanity/ui-workshop'
3
-
4
- import {WORKSHOP_SPACE_OPTIONS} from '../../../__workshop__/constants'
5
-
6
- export default function PropsStory() {
7
- const padding = useSelect('Padding', WORKSHOP_SPACE_OPTIONS, 0, 'Props')
8
-
9
- return (
10
- <Box padding={[4, 5, 6]}>
11
- <Card border tone="inherit">
12
- <Box onClick={useAction('onClick')} padding={padding}>
13
- <Text>
14
- Box with <code>padding={padding}</code>
15
- </Text>
16
- </Box>
17
- </Card>
18
- </Box>
19
- )
20
- }
@@ -1,20 +0,0 @@
1
- import {Box, Text} from '@sanity/ui'
2
-
3
- export default function ResponsiveStory() {
4
- return (
5
- <Box padding={[4, 5, 6]}>
6
- <Box
7
- id="responsive-box"
8
- display={['none', 'block', 'none', 'block', 'none', 'block', 'none']}
9
- flex={[1, 2, 3, 4, 5, 6, 7]}
10
- padding={3}
11
- sizing={['content', 'border', 'content', 'border', 'content', 'border', 'content']}
12
- style={{outline: '1px solid var(--card-border-color)'}}
13
- >
14
- <Text align="center" muted>
15
- This is a box with responsive props
16
- </Text>
17
- </Box>
18
- </Box>
19
- )
20
- }