@sanity/ui 2.16.22 → 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 (325) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +115 -1040
  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 +115 -1040
  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 +64 -155
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +64 -155
  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 +49 -162
  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/tree/tree.tsx +1 -0
  40. package/src/core/components/tree/treeGroup.tsx +1 -0
  41. package/src/core/components/tree/treeItem.tsx +2 -2
  42. package/src/core/hooks/useClickOutside.test.tsx +43 -15
  43. package/src/core/hooks/useClickOutside.ts +1 -1
  44. package/src/core/hooks/useClickOutsideEvent.test.tsx +8 -4
  45. package/src/core/hooks/useDelayed.test.ts +7 -6
  46. package/src/core/hooks/useElementRect/useElementRect.ts +1 -0
  47. package/src/core/hooks/useForwardedRef.ts +1 -0
  48. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +2 -1
  49. package/src/core/hooks/usePrefersDark.hydration.test.tsx +7 -5
  50. package/src/core/hooks/usePrefersDark.test.tsx +3 -1
  51. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +7 -5
  52. package/src/core/hooks/usePrefersReducedMotion.test.tsx +3 -1
  53. package/src/core/lib/createGlobalScopedContext.ts +1 -0
  54. package/src/core/lib/globalScope.ts +1 -0
  55. package/src/core/observers/elementSizeObserver.ts +1 -0
  56. package/src/core/primitives/avatar/avatar.tsx +1 -2
  57. package/src/core/primitives/avatar/avatarStack.tsx +1 -0
  58. package/src/core/primitives/badge/badge.test.tsx +3 -2
  59. package/src/core/primitives/badge/badge.tsx +2 -1
  60. package/src/core/primitives/box/box.tsx +2 -1
  61. package/src/core/primitives/button/button.test.tsx +3 -2
  62. package/src/core/primitives/button/button.tsx +2 -0
  63. package/src/core/primitives/button/styles.ts +1 -0
  64. package/src/core/primitives/card/card.tsx +1 -5
  65. package/src/core/primitives/card/types.ts +1 -0
  66. package/src/core/primitives/code/refractor.tsx +2 -0
  67. package/src/core/primitives/flex/flex.tsx +1 -3
  68. package/src/core/primitives/inline/inline.tsx +1 -0
  69. package/src/core/primitives/popover/popover.tsx +12 -3
  70. package/src/core/primitives/popover/popoverCard.tsx +1 -0
  71. package/src/core/primitives/popover/types.ts +0 -1
  72. package/src/core/primitives/stack/styles.ts +1 -0
  73. package/src/core/primitives/textInput/textInput.tsx +2 -0
  74. package/src/core/primitives/tooltip/tooltip.test.tsx +82 -49
  75. package/src/core/primitives/tooltip/tooltip.tsx +5 -0
  76. package/src/core/primitives/tooltip/tooltipCard.tsx +1 -0
  77. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +2 -0
  78. package/src/core/styles/flex/types.ts +0 -1
  79. package/src/core/styles/font/responsiveFont.ts +0 -3
  80. package/src/core/styles/font/types.ts +1 -3
  81. package/src/core/styles/grid/gridStyle.ts +1 -0
  82. package/src/core/styles/margin/marginStyle.ts +1 -0
  83. package/src/core/styles/margin/marginsStyle.test.ts +2 -1
  84. package/src/core/styles/padding/paddingStyle.test.ts +2 -1
  85. package/src/core/styles/padding/paddingStyle.ts +1 -0
  86. package/src/core/theme/theme.test.tsx +7 -3
  87. package/src/core/theme/useRootTheme.ts +1 -0
  88. package/src/core/theme/useTheme.ts +2 -0
  89. package/src/core/utils/arrow/arrow.tsx +1 -0
  90. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +9 -4
  91. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +1 -0
  92. package/src/core/utils/getElementRef.ts +5 -0
  93. package/src/core/utils/layer/getLayerContext.test.ts +2 -0
  94. package/src/core/utils/layer/layer.test.tsx +9 -4
  95. package/src/core/utils/layer/layer.tsx +1 -0
  96. package/src/core/utils/layer/useLayer.ts +2 -0
  97. package/src/core/utils/portal/portal.test.tsx +9 -4
  98. package/src/core/utils/portal/portalProvider.tsx +4 -3
  99. package/src/core/utils/virtualList/virtualList.tsx +2 -1
  100. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +10 -0
  101. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +4 -0
  102. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +5 -0
  103. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +5 -0
  104. package/src/theme/build/_deprecated/color/card/createCardStates.ts +6 -0
  105. package/src/theme/build/_deprecated/color/color.test.ts +5 -1
  106. package/src/theme/build/_deprecated/color/defaults.ts +1 -0
  107. package/src/theme/build/_deprecated/color/factory.ts +36 -0
  108. package/src/theme/build/_deprecated/color/input/createInputModes.ts +5 -0
  109. package/src/theme/build/_deprecated/color/muted/createMuted.ts +4 -0
  110. package/src/theme/build/_deprecated/color/spot/createSpot.ts +3 -0
  111. package/src/theme/build/buildColorTheme.test.ts +2 -0
  112. package/src/theme/build/buildColorTheme.ts +7 -0
  113. package/src/theme/build/buildTheme.test.ts +2 -0
  114. package/src/theme/build/lib/color-fns/color-fns.test.ts +3 -1
  115. package/src/theme/build/merge.ts +5 -0
  116. package/src/theme/build/mixThemeColor.test.ts +2 -0
  117. package/src/theme/build/renderColorTheme.ts +6 -0
  118. package/src/theme/build/renderColorValue.ts +0 -2
  119. package/src/theme/build/resolveColorTokens.ts +6 -0
  120. package/src/theme/build/theme.test.ts +2 -0
  121. package/src/theme/config/helpers.ts +5 -0
  122. package/src/theme/config/system.ts +2 -0
  123. package/src/theme/config/tokens/color/types.ts +6 -4
  124. package/src/theme/config/tokens/parseTokenKey.test.ts +2 -0
  125. package/src/theme/config/tokens/parseTokenValue.test.ts +2 -0
  126. package/src/theme/config/tokens/parseTokenValue.ts +1 -0
  127. package/src/theme/getScopedTheme.ts +5 -0
  128. package/src/theme/system/color/_helpers.ts +4 -0
  129. package/src/theme/system/theme.ts +4 -0
  130. package/src/theme/system/v0/color/_system.ts +1 -0
  131. package/src/theme/system/v0/color/button.ts +14 -0
  132. package/src/theme/system/v0/color/card.ts +6 -0
  133. package/src/theme/system/v0/color/color.ts +11 -0
  134. package/src/theme/system/v0/color/input.ts +6 -0
  135. package/src/theme/system/v0/color/muted.ts +11 -0
  136. package/src/theme/system/v0/color/selectable.ts +11 -0
  137. package/src/theme/system/v0/color/solid.ts +11 -0
  138. package/src/theme/system/v0/color/spot.ts +1 -0
  139. package/src/theme/versioning/getTheme_v2.ts +15 -0
  140. package/src/theme/versioning/themeColor_v0_v2.ts +7 -0
  141. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -0
  142. package/src/theme/versioning/v0_v2.ts +13 -1
  143. package/src/theme/versioning/v2_v0.ts +15 -0
  144. package/src/core/__workshop__/constants.ts +0 -293
  145. package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
  146. package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
  147. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  148. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
  149. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
  150. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
  151. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  152. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
  153. package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
  154. package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
  155. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
  156. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
  157. package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
  158. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  159. package/src/core/components/dialog/__workshop__/index.ts +0 -19
  160. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  161. package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
  162. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
  163. package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
  164. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  165. package/src/core/components/dialog/__workshop__/props.tsx +0 -75
  166. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  167. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  168. package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
  169. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  170. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  171. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
  172. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
  173. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
  174. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  175. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
  176. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  177. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  178. package/src/core/components/menu/__workshop__/index.ts +0 -89
  179. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  180. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
  181. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  182. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
  183. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  184. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
  185. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  186. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  187. package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
  188. package/src/core/components/skeleton/__workshop__/index.ts +0 -11
  189. package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
  190. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  191. package/src/core/components/tab/__workshop__/index.ts +0 -14
  192. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  193. package/src/core/components/toast/__workshop__/index.ts +0 -19
  194. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  195. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  196. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  197. package/src/core/components/tree/__workshop__/index.ts +0 -21
  198. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  199. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
  200. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  201. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
  202. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  203. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  204. package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
  205. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  206. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  207. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
  208. package/src/core/primitives/badge/__workshop__/index.ts +0 -19
  209. package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
  210. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
  211. package/src/core/primitives/box/__workshop__/index.ts +0 -19
  212. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  213. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  214. package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
  215. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  216. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
  217. package/src/core/primitives/button/__workshop__/index.ts +0 -59
  218. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  219. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  220. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
  221. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  222. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  223. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  224. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
  225. package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
  226. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  227. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  228. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  229. package/src/core/primitives/card/__workshop__/index.ts +0 -18
  230. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
  231. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
  232. package/src/core/primitives/card/__workshop__/props.tsx +0 -53
  233. package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
  234. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  235. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  236. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
  237. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
  238. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  239. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
  240. package/src/core/primitives/code/__workshop__/index.ts +0 -19
  241. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
  242. package/src/core/primitives/code/__workshop__/props.tsx +0 -21
  243. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  244. package/src/core/primitives/container/__workshop__/index.ts +0 -8
  245. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  246. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  247. package/src/core/primitives/flex/__workshop__/index.ts +0 -11
  248. package/src/core/primitives/grid/__workshop__/index.ts +0 -10
  249. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  250. package/src/core/primitives/heading/__workshop__/index.ts +0 -19
  251. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  252. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
  253. package/src/core/primitives/inline/__workshop__/index.ts +0 -8
  254. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
  255. package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
  256. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  257. package/src/core/primitives/label/__workshop__/index.ts +0 -19
  258. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
  259. package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
  260. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  261. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  262. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  263. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  264. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  265. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  266. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
  267. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
  268. package/src/core/primitives/popover/__workshop__/index.ts +0 -49
  269. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  270. package/src/core/primitives/radio/__workshop__/index.ts +0 -11
  271. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  272. package/src/core/primitives/select/__workshop__/index.ts +0 -11
  273. package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
  274. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  275. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  276. package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
  277. package/src/core/primitives/stack/__workshop__/index.ts +0 -14
  278. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  279. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  280. package/src/core/primitives/switch/__workshop__/index.ts +0 -11
  281. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  282. package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
  283. package/src/core/primitives/text/__workshop__/example.tsx +0 -39
  284. package/src/core/primitives/text/__workshop__/index.ts +0 -24
  285. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
  286. package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
  287. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
  288. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  289. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  290. package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
  291. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
  292. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  293. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  294. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  295. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  296. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  297. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
  298. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  299. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
  300. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  301. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  302. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  303. package/src/core/theme/__workshop__/build/story.tsx +0 -465
  304. package/src/core/theme/__workshop__/canvas.tsx +0 -352
  305. package/src/core/theme/__workshop__/color.tsx +0 -62
  306. package/src/core/theme/__workshop__/debug/story.tsx +0 -408
  307. package/src/core/theme/__workshop__/index.ts +0 -39
  308. package/src/core/theme/__workshop__/layer.tsx +0 -78
  309. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  310. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
  311. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  312. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
  313. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
  314. package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
  315. package/src/core/utils/layer/__workshop__/index.ts +0 -24
  316. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
  317. package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
  318. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
  319. package/src/core/utils/portal/__workshop__/index.ts +0 -14
  320. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  321. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
  322. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
  323. package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
  324. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
  325. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
@@ -1,30 +0,0 @@
1
- import {Box, TextInput} from '@sanity/ui'
2
- import {useText} from '@sanity/ui-workshop'
3
- import {useCallback, useState} from 'react'
4
-
5
- export default function ClearButtonStory() {
6
- const customValidity = useText('Custom validitiy')
7
-
8
- const [value, setValue] = useState('')
9
-
10
- const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {
11
- setValue(event.currentTarget.value)
12
- }, [])
13
-
14
- const handleClear = useCallback(() => {
15
- setValue('')
16
- }, [])
17
-
18
- return (
19
- <Box padding={4}>
20
- <TextInput
21
- clearButton
22
- customValidity={customValidity}
23
- onChange={handleChange}
24
- onClear={handleClear}
25
- placeholder="Enter text"
26
- value={value}
27
- />
28
- </Box>
29
- )
30
- }
@@ -1,17 +0,0 @@
1
- import {Button, Card, Container, Stack, TextInput} from '@sanity/ui'
2
- import {useText} from '@sanity/ui-workshop'
3
-
4
- export default function CustomValidityStory() {
5
- const customValidity = useText('Custom validity', 'Invalid value', 'Props') || undefined
6
-
7
- return (
8
- <Container as="form" onSubmit={(event) => event.preventDefault()} width={0}>
9
- <Card padding={4}>
10
- <Stack space={4}>
11
- <TextInput customValidity={customValidity} />
12
- <Button text="Submit" type="submit" />
13
- </Stack>
14
- </Card>
15
- </Container>
16
- )
17
- }
@@ -1,44 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/text-input',
6
- title: 'TextInput',
7
- stories: [
8
- {
9
- name: 'plain',
10
- title: 'Plain',
11
- component: lazy(() => import('./plain')),
12
- },
13
- {
14
- name: 'custom-validity',
15
- title: 'Custom validity',
16
- component: lazy(() => import('./customValidity')),
17
- },
18
- {
19
- name: 'typed',
20
- title: 'Typed',
21
- component: lazy(() => import('./typed')),
22
- },
23
- {
24
- name: 'tones',
25
- title: 'Tones',
26
- component: lazy(() => import('./tones')),
27
- },
28
- {
29
- name: 'clear-button',
30
- title: 'Clear button',
31
- component: lazy(() => import('./clearButton')),
32
- },
33
- {
34
- name: 'read-only',
35
- title: 'Read only',
36
- component: lazy(() => import('./readOnly')),
37
- },
38
- {
39
- name: 'states',
40
- title: 'States',
41
- component: lazy(() => import('./states')),
42
- },
43
- ],
44
- })
@@ -1,98 +0,0 @@
1
- import {icons, IconSymbol} from '@sanity/icons'
2
- import {Container, Flex, Stack, Text, TextInput} from '@sanity/ui'
3
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
4
- import {PerfTestProps, usePerfTest} from '@sanity/ui-workshop/plugin-perf'
5
- import {fireEvent} from '@testing-library/dom'
6
- import {useCallback, useState} from 'react'
7
-
8
- import {
9
- WORKSHOP_FONT_WEIGHT_OPTIONS,
10
- WORKSHOP_ICON_SYMBOL_OPTIONS,
11
- WORKSHOP_RADIUS_OPTIONS,
12
- WORKSHOP_SPACE_OPTIONS,
13
- WORKSHOP_TEXT_FONT_SIZE_OPTIONS,
14
- } from '../../../__workshop__/constants'
15
-
16
- const typingPerfTest: PerfTestProps<HTMLInputElement> = {
17
- name: 'typing',
18
- title: 'Typing',
19
- description: 'This test types one character at a time',
20
- run({target}) {
21
- const text = 'Hello, world & Hello, world & Hello, world'
22
- const len = text.length
23
-
24
- for (let i = 0; i < len; i += 1) {
25
- const value = text.slice(0, i + 1)
26
-
27
- fireEvent.change(target, {target: {value}})
28
- }
29
- },
30
- }
31
-
32
- export default function PlainStory() {
33
- const {ref, Wrapper} = usePerfTest(typingPerfTest)
34
-
35
- return (
36
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
37
- <Container width={0}>
38
- <Stack space={3}>
39
- <Text as="label" htmlFor="text-input-example" size={1} weight="medium">
40
- TextInput
41
- </Text>
42
- <Wrapper>
43
- <TextInputTest inputRef={ref} />
44
- </Wrapper>
45
- </Stack>
46
- </Container>
47
- </Flex>
48
- )
49
- }
50
-
51
- function TextInputTest(props: {inputRef: React.Ref<HTMLInputElement>}) {
52
- const {inputRef: ref} = props
53
- const border = useBoolean('Border', true, 'Props')
54
- const customValidity = useText('Custom validity', '', 'Props') || undefined
55
- const disabled = useBoolean('Disabled', false, 'Props')
56
- const fontSize = useSelect('Font size', WORKSHOP_TEXT_FONT_SIZE_OPTIONS, 2, 'Props')
57
- const icon = useSelect('Icon', WORKSHOP_ICON_SYMBOL_OPTIONS, 'search', 'Props') as IconSymbol
58
- const iconRight = useSelect(
59
- 'Icon (right)',
60
- WORKSHOP_ICON_SYMBOL_OPTIONS,
61
- 'cube',
62
- 'Props',
63
- ) as IconSymbol
64
- const padding = useSelect('Padding', WORKSHOP_SPACE_OPTIONS, 3, 'Props')
65
- const placeholder = useText('Placeholder', '', 'Props') || undefined
66
- const radius = useSelect('Radius', WORKSHOP_RADIUS_OPTIONS, 2, 'Props')
67
- const readOnly = useBoolean('Read only', false, 'Props')
68
- const space = useSelect('Space', WORKSHOP_SPACE_OPTIONS, 3, 'Props')
69
- const weight = useSelect('Weight', WORKSHOP_FONT_WEIGHT_OPTIONS, '', 'Props') || undefined
70
-
71
- const [value, setValue] = useState('')
72
-
73
- const handleChange = useCallback(
74
- (event: React.ChangeEvent<HTMLInputElement>) => setValue(event.currentTarget.value),
75
- [],
76
- )
77
-
78
- return (
79
- <TextInput
80
- border={border}
81
- customValidity={customValidity}
82
- disabled={disabled}
83
- fontSize={fontSize}
84
- icon={icon && icons[icon]}
85
- iconRight={iconRight && icons[iconRight]}
86
- id="text-input-example"
87
- onChange={handleChange}
88
- padding={padding}
89
- placeholder={placeholder}
90
- radius={radius}
91
- readOnly={readOnly}
92
- ref={ref}
93
- space={space}
94
- value={value}
95
- weight={weight}
96
- />
97
- )
98
- }
@@ -1,9 +0,0 @@
1
- import {Flex, TextInput} from '@sanity/ui'
2
-
3
- export default function ReadOnlyStory() {
4
- return (
5
- <Flex padding={4}>
6
- <TextInput id="text-input-example" readOnly />
7
- </Flex>
8
- )
9
- }
@@ -1,53 +0,0 @@
1
- import {Container, Flex, Stack, Text, TextInput} from '@sanity/ui'
2
- import {useAction, useBoolean} from '@sanity/ui-workshop'
3
-
4
- export default function StatesStory() {
5
- const invalid = useBoolean('Invalid', false, 'Props')
6
- const onChange = useAction('onChange')
7
-
8
- return (
9
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
10
- <Container width={1}>
11
- <Stack space={5}>
12
- <Stack space={3}>
13
- <Text size={1} weight="medium">
14
- <label htmlFor="enabled-example">Enabled (default)</label>
15
- </Text>
16
- <TextInput
17
- customValidity={invalid ? 'invalid' : undefined}
18
- id="enabled-example"
19
- onChange={onChange}
20
- value="This is some text"
21
- />
22
- </Stack>
23
-
24
- <Stack space={3}>
25
- <Text size={1} weight="medium">
26
- <label htmlFor="disabled-example">Disabled</label>
27
- </Text>
28
- <TextInput
29
- customValidity={invalid ? 'invalid' : undefined}
30
- disabled
31
- id="disabled-example"
32
- onChange={onChange}
33
- value="This is some text"
34
- />
35
- </Stack>
36
-
37
- <Stack space={3}>
38
- <Text size={1} weight="medium">
39
- <label htmlFor="read-only-example">Read-only</label>
40
- </Text>
41
- <TextInput
42
- customValidity={invalid ? 'invalid' : undefined}
43
- id="read-only-example"
44
- readOnly
45
- onChange={onChange}
46
- value="This is some text"
47
- />
48
- </Stack>
49
- </Stack>
50
- </Container>
51
- </Flex>
52
- )
53
- }
@@ -1,277 +0,0 @@
1
- import {Box, Card, Container, Flex, Stack, Text, TextInput} from '@sanity/ui'
2
- import {useBoolean} from '@sanity/ui-workshop'
3
-
4
- export default function TonesStory() {
5
- const transparentTone = useBoolean('Transparent', true)
6
- const neutralTone = useBoolean('Neutral', true)
7
- const primaryTone = useBoolean('Primary', true)
8
- const suggestTone = useBoolean('Suggest', true)
9
- const positiveTone = useBoolean('Positive', true)
10
- const cautionTone = useBoolean('Caution', true)
11
- const criticalTone = useBoolean('Critical', true)
12
-
13
- return (
14
- <Card height="fill" tone="transparent">
15
- <Flex align="center" height="fill" justify="center">
16
- <Container width={1}>
17
- <Flex>
18
- <Card flex={1} scheme="light">
19
- <Stack padding={[3, 4, 5]} space={4}>
20
- <Card padding={3}>
21
- <TextInput
22
- placeholder="default"
23
- prefix={
24
- <Box padding={3}>
25
- <Text>prefix</Text>
26
- </Box>
27
- }
28
- suffix={
29
- <Box padding={3}>
30
- <Text>suffix</Text>
31
- </Box>
32
- }
33
- />
34
- </Card>
35
-
36
- {transparentTone && (
37
- <Card padding={3} tone="transparent">
38
- <TextInput
39
- placeholder="transparent"
40
- prefix={
41
- <Box padding={3}>
42
- <Text>prefix</Text>
43
- </Box>
44
- }
45
- suffix={
46
- <Box padding={3}>
47
- <Text>suffix</Text>
48
- </Box>
49
- }
50
- />
51
- </Card>
52
- )}
53
-
54
- {neutralTone && (
55
- <Card padding={3} tone="neutral">
56
- <TextInput
57
- placeholder="neutral"
58
- prefix={
59
- <Box padding={3}>
60
- <Text>prefix</Text>
61
- </Box>
62
- }
63
- suffix={
64
- <Box padding={3}>
65
- <Text>suffix</Text>
66
- </Box>
67
- }
68
- />
69
- </Card>
70
- )}
71
-
72
- {primaryTone && (
73
- <Card padding={3} tone="primary">
74
- <TextInput
75
- placeholder="primary"
76
- prefix={
77
- <Box padding={3}>
78
- <Text>prefix</Text>
79
- </Box>
80
- }
81
- suffix={
82
- <Box padding={3}>
83
- <Text>suffix</Text>
84
- </Box>
85
- }
86
- />
87
- </Card>
88
- )}
89
-
90
- {suggestTone && (
91
- <Card padding={3} tone="suggest">
92
- <TextInput
93
- placeholder="suggest"
94
- prefix={
95
- <Box padding={3}>
96
- <Text>prefix</Text>
97
- </Box>
98
- }
99
- suffix={
100
- <Box padding={3}>
101
- <Text>suffix</Text>
102
- </Box>
103
- }
104
- />
105
- </Card>
106
- )}
107
-
108
- {positiveTone && (
109
- <Card padding={3} tone="positive">
110
- <TextInput
111
- placeholder="positive"
112
- prefix={
113
- <Box padding={3}>
114
- <Text>prefix</Text>
115
- </Box>
116
- }
117
- suffix={
118
- <Box padding={3}>
119
- <Text>suffix</Text>
120
- </Box>
121
- }
122
- />
123
- </Card>
124
- )}
125
-
126
- {cautionTone && (
127
- <Card padding={3} tone="caution">
128
- <TextInput
129
- placeholder="caution"
130
- prefix={
131
- <Box padding={3}>
132
- <Text>prefix</Text>
133
- </Box>
134
- }
135
- suffix={
136
- <Box padding={3}>
137
- <Text>suffix</Text>
138
- </Box>
139
- }
140
- />
141
- </Card>
142
- )}
143
-
144
- {criticalTone && (
145
- <Card padding={3} tone="critical">
146
- <TextInput
147
- placeholder="critical"
148
- prefix={
149
- <Box padding={3}>
150
- <Text>prefix</Text>
151
- </Box>
152
- }
153
- suffix={
154
- <Box padding={3}>
155
- <Text>suffix</Text>
156
- </Box>
157
- }
158
- />
159
- </Card>
160
- )}
161
- </Stack>
162
- </Card>
163
- <Card flex={1} scheme="dark">
164
- <Stack padding={[3, 4, 5]} space={4}>
165
- <Card padding={3}>
166
- <TextInput
167
- placeholder="default"
168
- prefix={
169
- <Box padding={3}>
170
- <Text>prefix</Text>
171
- </Box>
172
- }
173
- suffix={
174
- <Box padding={3}>
175
- <Text>suffix</Text>
176
- </Box>
177
- }
178
- />
179
- </Card>
180
-
181
- {transparentTone && (
182
- <Card padding={3} tone="transparent">
183
- <TextInput
184
- placeholder="transparent"
185
- prefix={
186
- <Box padding={3}>
187
- <Text>prefix</Text>
188
- </Box>
189
- }
190
- suffix={
191
- <Box padding={3}>
192
- <Text>suffix</Text>
193
- </Box>
194
- }
195
- />
196
- </Card>
197
- )}
198
-
199
- {primaryTone && (
200
- <Card padding={3} tone="primary">
201
- <TextInput
202
- placeholder="primary"
203
- prefix={
204
- <Box padding={3}>
205
- <Text>prefix</Text>
206
- </Box>
207
- }
208
- suffix={
209
- <Box padding={3}>
210
- <Text>suffix</Text>
211
- </Box>
212
- }
213
- />
214
- </Card>
215
- )}
216
-
217
- {positiveTone && (
218
- <Card padding={3} tone="positive">
219
- <TextInput
220
- placeholder="positive"
221
- prefix={
222
- <Box padding={3}>
223
- <Text>prefix</Text>
224
- </Box>
225
- }
226
- suffix={
227
- <Box padding={3}>
228
- <Text>suffix</Text>
229
- </Box>
230
- }
231
- />
232
- </Card>
233
- )}
234
-
235
- {cautionTone && (
236
- <Card padding={3} tone="caution">
237
- <TextInput
238
- placeholder="caution"
239
- prefix={
240
- <Box padding={3}>
241
- <Text>prefix</Text>
242
- </Box>
243
- }
244
- suffix={
245
- <Box padding={3}>
246
- <Text>suffix</Text>
247
- </Box>
248
- }
249
- />
250
- </Card>
251
- )}
252
-
253
- {criticalTone && (
254
- <Card padding={3} tone="critical">
255
- <TextInput
256
- placeholder="critical"
257
- prefix={
258
- <Box padding={3}>
259
- <Text>prefix</Text>
260
- </Box>
261
- }
262
- suffix={
263
- <Box padding={3}>
264
- <Text>suffix</Text>
265
- </Box>
266
- }
267
- />
268
- </Card>
269
- )}
270
- </Stack>
271
- </Card>
272
- </Flex>
273
- </Container>
274
- </Flex>
275
- </Card>
276
- )
277
- }
@@ -1,23 +0,0 @@
1
- import {Box, Container, TextInput} from '@sanity/ui'
2
- import {useSelect} from '@sanity/ui-workshop'
3
- import {useCallback, useState} from 'react'
4
-
5
- import {WORKSHOP_TEXT_INPUT_TYPE_OPTIONS} from '../../../__workshop__/constants'
6
-
7
- export default function TypedStory() {
8
- const type = useSelect('Type', WORKSHOP_TEXT_INPUT_TYPE_OPTIONS, 'text', 'Props')
9
-
10
- const [value, setValue] = useState('')
11
-
12
- const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {
13
- setValue(event.currentTarget.value)
14
- }, [])
15
-
16
- return (
17
- <Box padding={4}>
18
- <Container width={1}>
19
- <TextInput onChange={handleChange} type={type} value={value} />
20
- </Container>
21
- </Box>
22
- )
23
- }
@@ -1,102 +0,0 @@
1
- import {
2
- BoundaryElementProvider,
3
- Button,
4
- Card,
5
- Flex,
6
- Portal,
7
- PortalProvider,
8
- Stack,
9
- Text,
10
- Tooltip,
11
- } from '@sanity/ui'
12
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
13
- import {useMemo, useState} from 'react'
14
-
15
- import {WORKSHOP_PLACEMENT_OPTIONS} from '../../../__workshop__/constants'
16
-
17
- const PORTAL_OPTIONS = {
18
- '(true)': true,
19
- '(false)': false,
20
- 'portal1': 'portal1',
21
- }
22
-
23
- export default function CustomPortalStory() {
24
- const content = useText(
25
- 'Content',
26
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut mollis consectetur malesuada. Sed lobortis est dolor, eget imperdiet velit placerat et. Aenean posuere mi non aliquet iaculis. Donec fermentum pulvinar purus at sagittis. Ut tincidunt massa odio, sed finibus justo ullamcorper id. Nam venenatis justo non ligula elementum cursus. Pellentesque laoreet justo in mollis sagittis. In lacinia ornare ultrices. Suspendisse potenti.',
27
- )
28
- const placement = useSelect('Placement', WORKSHOP_PLACEMENT_OPTIONS, 'top')
29
- const portal = useSelect('Portal', PORTAL_OPTIONS, undefined, 'Props')
30
- const useBoundaryElement = useBoolean('Use boundary element', true)
31
-
32
- const [portal1Element, setPortal1Element] = useState<HTMLDivElement | null>(null)
33
- const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)
34
- const __unstable_elements = useMemo(
35
- () => ({
36
- portal1: portal1Element,
37
- }),
38
- [portal1Element],
39
- )
40
-
41
- return (
42
- <PortalProvider __unstable_elements={__unstable_elements}>
43
- <Flex align="center" height="fill" justify="center">
44
- <BoundaryElementProvider element={useBoundaryElement ? boundaryElement : null}>
45
- <Card
46
- border
47
- padding={4}
48
- ref={setBoundaryElement}
49
- style={{
50
- height: 'calc(100vh - 100px)',
51
- position: 'relative',
52
- width: '500px',
53
- }}
54
- >
55
- <Text>Boundary element</Text>
56
- <Flex align="center" height="fill" justify="center">
57
- <Flex justify="center">
58
- <Stack space={2}>
59
- <Tooltip
60
- boundaryElement={useBoundaryElement ? boundaryElement : null}
61
- content={<Text size={1}>{content}</Text>}
62
- padding={2}
63
- placement={placement}
64
- portal={portal}
65
- >
66
- <Button mode="bleed" text="Tooltip" />
67
- </Tooltip>
68
- </Stack>
69
- </Flex>
70
- </Flex>
71
- </Card>
72
- </BoundaryElementProvider>
73
- </Flex>
74
-
75
- <Card
76
- border
77
- margin={4}
78
- padding={4}
79
- ref={setPortal1Element}
80
- style={{
81
- left: 0,
82
- position: 'absolute',
83
- top: 0,
84
- width: '175px',
85
- }}
86
- tone="critical"
87
- />
88
-
89
- <Portal __unstable_name="portal1">
90
- <Stack space={4}>
91
- <Text size={1} weight="medium">
92
- Portal 1 content
93
- </Text>
94
- <Text size={1}>
95
- The tooltip's max-width should not exceed this container's width (minus padding) if it's
96
- set to use this portal
97
- </Text>
98
- </Stack>
99
- </Portal>
100
- </PortalProvider>
101
- )
102
- }
@@ -1,29 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/tooltip',
6
- title: 'Tooltip',
7
- stories: [
8
- {
9
- name: 'props',
10
- title: 'Props',
11
- component: lazy(() => import('./props')),
12
- },
13
- {
14
- name: 'resizableBoundary',
15
- title: 'Resizable Boundary',
16
- component: lazy(() => import('./resizableBoundary')),
17
- },
18
- {
19
- name: 'overflowBoundary',
20
- title: 'Overflowing Boundary',
21
- component: lazy(() => import('./overflowingBoundary')),
22
- },
23
- {
24
- name: 'customPortalStory',
25
- title: 'Custom Portal',
26
- component: lazy(() => import('./customPortal')),
27
- },
28
- ],
29
- })