@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,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
- })