@sanity/ui 3.3.1 → 3.3.2

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 (378) hide show
  1. package/dist/_visual-editing.d.mts +2 -1126
  2. package/dist/_visual-editing.d.ts +2 -1126
  3. package/dist/_visual-editing.js +3 -31
  4. package/dist/_visual-editing.mjs +2 -31
  5. package/dist/index.d.mts +555 -2769
  6. package/dist/index.d.mts.map +1 -0
  7. package/dist/index.d.ts +555 -2769
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +2982 -1934
  10. package/dist/index.mjs +2950 -1903
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/refractor.js +16 -0
  13. package/dist/refractor.mjs +21 -0
  14. package/dist/refractor.mjs.map +1 -0
  15. package/dist/tabList.js +3804 -0
  16. package/dist/tabList.mjs +3355 -0
  17. package/dist/tabList.mjs.map +1 -0
  18. package/dist/theme.d.mts +927 -1227
  19. package/dist/theme.d.mts.map +1 -0
  20. package/dist/theme.d.ts +927 -1227
  21. package/dist/theme.d.ts.map +1 -0
  22. package/dist/theme.js +3 -4127
  23. package/dist/theme.mjs +2 -4127
  24. package/dist/theme2.d.mts +2 -0
  25. package/dist/theme2.d.ts +2 -0
  26. package/dist/theme2.js +4104 -0
  27. package/dist/theme2.mjs +3851 -0
  28. package/dist/theme2.mjs.map +1 -0
  29. package/dist/useTheme.d.mts +1451 -0
  30. package/dist/useTheme.d.mts.map +1 -0
  31. package/dist/useTheme.d.ts +1451 -0
  32. package/dist/useTheme.d.ts.map +1 -0
  33. package/exports/_visual-editing.ts +1 -0
  34. package/package.json +49 -102
  35. package/src/core/_compat.ts +30 -0
  36. package/src/core/components/autocomplete/autocomplete.tsx +8 -0
  37. package/src/core/components/autocomplete/autocompleteOption.tsx +1 -0
  38. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +8 -5
  39. package/src/core/components/breadcrumbs/breadcrumbs.tsx +3 -0
  40. package/src/core/components/dialog/dialog.tsx +5 -2
  41. package/src/core/components/hotkeys/hotkeys.test.tsx +10 -5
  42. package/src/core/components/hotkeys/hotkeys.tsx +2 -0
  43. package/src/core/components/menu/menu.spacing.test.tsx +12 -7
  44. package/src/core/components/menu/menu.test.tsx +9 -6
  45. package/src/core/components/menu/menu.tsx +4 -2
  46. package/src/core/components/menu/menuButton.tsx +8 -0
  47. package/src/core/components/menu/menuDivider.ts +1 -0
  48. package/src/core/components/menu/menuGroup.spacing.test.tsx +9 -6
  49. package/src/core/components/menu/menuGroup.tsx +6 -2
  50. package/src/core/components/menu/menuItem.spacing.test.tsx +8 -5
  51. package/src/core/components/menu/menuItem.tsx +4 -0
  52. package/src/core/components/menu/useMenuController.ts +2 -0
  53. package/src/core/components/skeleton/skeleton.tsx +1 -0
  54. package/src/core/components/tab/tab.tsx +1 -0
  55. package/src/core/components/tab/tabList.test.tsx +7 -5
  56. package/src/core/components/tab/tabList.tsx +1 -0
  57. package/src/core/components/toast/toast.test.tsx +9 -4
  58. package/src/core/components/toast/toast.tsx +1 -0
  59. package/src/core/components/toast/toastLayer.tsx +1 -0
  60. package/src/core/components/tree/tree.test.tsx +10 -5
  61. package/src/core/components/tree/tree.tsx +2 -0
  62. package/src/core/components/tree/treeGroup.tsx +1 -0
  63. package/src/core/components/tree/treeItem.test.tsx +10 -5
  64. package/src/core/components/tree/treeItem.tsx +1 -0
  65. package/src/core/hooks/index.ts +1 -0
  66. package/src/core/hooks/useClickOutside.test.tsx +43 -15
  67. package/src/core/hooks/useClickOutside.ts +1 -1
  68. package/src/core/hooks/useClickOutsideEvent.test.tsx +8 -4
  69. package/src/core/hooks/useDelayed.test.ts +9 -8
  70. package/src/core/hooks/useElementRect/useElementRect.ts +1 -0
  71. package/src/core/hooks/useForwardedRef.ts +1 -0
  72. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +2 -1
  73. package/src/core/hooks/usePrefersDark.hydration.test.tsx +7 -5
  74. package/src/core/hooks/usePrefersDark.test.tsx +3 -1
  75. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +7 -5
  76. package/src/core/hooks/usePrefersReducedMotion.test.tsx +3 -1
  77. package/src/core/lib/createGlobalScopedContext.ts +1 -0
  78. package/src/core/lib/globalScope.ts +1 -0
  79. package/src/core/observers/elementSizeObserver.ts +1 -0
  80. package/src/core/primitives/avatar/avatar.tsx +2 -2
  81. package/src/core/primitives/avatar/avatarStack.tsx +1 -0
  82. package/src/core/primitives/badge/badge.test.tsx +3 -2
  83. package/src/core/primitives/badge/badge.tsx +3 -1
  84. package/src/core/primitives/box/box.test.tsx +18 -5
  85. package/src/core/primitives/box/box.tsx +9 -1
  86. package/src/core/primitives/button/button.test.tsx +10 -6
  87. package/src/core/primitives/button/button.tsx +4 -0
  88. package/src/core/primitives/button/styles.ts +1 -0
  89. package/src/core/primitives/card/card.tsx +2 -5
  90. package/src/core/primitives/card/types.ts +1 -0
  91. package/src/core/primitives/code/code.tsx +1 -0
  92. package/src/core/primitives/code/refractor.tsx +2 -0
  93. package/src/core/primitives/container/container.tsx +1 -0
  94. package/src/core/primitives/flex/flex.tsx +2 -3
  95. package/src/core/primitives/grid/grid.test.tsx +11 -5
  96. package/src/core/primitives/grid/grid.tsx +3 -0
  97. package/src/core/primitives/heading/heading.tsx +1 -0
  98. package/src/core/primitives/inline/inline.test.tsx +9 -5
  99. package/src/core/primitives/inline/inline.tsx +3 -0
  100. package/src/core/primitives/kbd/kbd.tsx +5 -1
  101. package/src/core/primitives/label/label.tsx +1 -0
  102. package/src/core/primitives/popover/popover.tsx +5 -4
  103. package/src/core/primitives/popover/popoverCard.tsx +1 -0
  104. package/src/core/primitives/popover/types.ts +0 -1
  105. package/src/core/primitives/select/select.test.tsx +9 -5
  106. package/src/core/primitives/select/select.tsx +1 -0
  107. package/src/core/primitives/stack/stack.test.tsx +9 -5
  108. package/src/core/primitives/stack/stack.tsx +2 -0
  109. package/src/core/primitives/stack/styles.ts +1 -0
  110. package/src/core/primitives/text/text.tsx +1 -0
  111. package/src/core/primitives/textInput/textInput.test.tsx +9 -5
  112. package/src/core/primitives/textInput/textInput.tsx +3 -0
  113. package/src/core/primitives/tooltip/tooltip.test.tsx +82 -49
  114. package/src/core/primitives/tooltip/tooltip.tsx +3 -1
  115. package/src/core/primitives/tooltip/tooltipCard.tsx +1 -0
  116. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +2 -0
  117. package/src/core/styles/flex/types.ts +0 -1
  118. package/src/core/styles/font/responsiveFont.ts +0 -3
  119. package/src/core/styles/font/types.ts +1 -3
  120. package/src/core/styles/grid/gridStyle.ts +1 -0
  121. package/src/core/styles/margin/marginStyle.ts +1 -0
  122. package/src/core/styles/margin/marginsStyle.test.ts +2 -1
  123. package/src/core/styles/padding/paddingStyle.test.ts +2 -1
  124. package/src/core/styles/padding/paddingStyle.ts +1 -0
  125. package/src/core/theme/theme.test.tsx +7 -3
  126. package/src/core/theme/useRootTheme.ts +1 -0
  127. package/src/core/theme/useTheme.ts +2 -0
  128. package/src/core/utils/arrow/arrow.tsx +1 -0
  129. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +9 -4
  130. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +1 -0
  131. package/src/core/utils/getElementRef.ts +5 -0
  132. package/src/core/utils/layer/getLayerContext.test.ts +2 -0
  133. package/src/core/utils/layer/layer.test.tsx +9 -4
  134. package/src/core/utils/layer/layer.tsx +1 -0
  135. package/src/core/utils/layer/useLayer.ts +2 -0
  136. package/src/core/utils/portal/portal.test.tsx +9 -4
  137. package/src/core/utils/portal/portalProvider.tsx +1 -0
  138. package/src/core/utils/virtualList/virtualList.tsx +2 -1
  139. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +10 -0
  140. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +4 -0
  141. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +5 -0
  142. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +5 -0
  143. package/src/theme/build/_deprecated/color/card/createCardStates.ts +6 -0
  144. package/src/theme/build/_deprecated/color/color.test.ts +5 -1
  145. package/src/theme/build/_deprecated/color/defaults.ts +1 -0
  146. package/src/theme/build/_deprecated/color/factory.ts +36 -0
  147. package/src/theme/build/_deprecated/color/input/createInputModes.ts +5 -0
  148. package/src/theme/build/_deprecated/color/muted/createMuted.ts +4 -0
  149. package/src/theme/build/_deprecated/color/spot/createSpot.ts +3 -0
  150. package/src/theme/build/buildColorTheme.test.ts +2 -0
  151. package/src/theme/build/buildColorTheme.ts +8 -0
  152. package/src/theme/build/buildTheme.test.ts +2 -0
  153. package/src/theme/build/lib/color-fns/color-fns.test.ts +3 -1
  154. package/src/theme/build/merge.ts +5 -0
  155. package/src/theme/build/mixThemeColor.test.ts +2 -0
  156. package/src/theme/build/renderColorTheme.ts +6 -0
  157. package/src/theme/build/renderColorValue.ts +0 -2
  158. package/src/theme/build/resolveColorTokens.ts +6 -0
  159. package/src/theme/build/theme.test.ts +2 -0
  160. package/src/theme/config/helpers.ts +5 -0
  161. package/src/theme/config/system.ts +2 -0
  162. package/src/theme/config/tokens/color/types.ts +6 -4
  163. package/src/theme/config/tokens/parseTokenKey.test.ts +2 -0
  164. package/src/theme/config/tokens/parseTokenValue.test.ts +2 -0
  165. package/src/theme/config/tokens/parseTokenValue.ts +1 -0
  166. package/src/theme/getScopedTheme.ts +6 -1
  167. package/src/theme/system/color/_helpers.ts +4 -0
  168. package/src/theme/system/theme.ts +4 -0
  169. package/src/theme/system/v0/color/_system.ts +1 -0
  170. package/src/theme/system/v0/color/button.ts +14 -0
  171. package/src/theme/system/v0/color/card.ts +6 -0
  172. package/src/theme/system/v0/color/color.ts +11 -0
  173. package/src/theme/system/v0/color/input.ts +6 -0
  174. package/src/theme/system/v0/color/muted.ts +11 -0
  175. package/src/theme/system/v0/color/selectable.ts +11 -0
  176. package/src/theme/system/v0/color/solid.ts +11 -0
  177. package/src/theme/system/v0/color/spot.ts +1 -0
  178. package/src/theme/versioning/getTheme_v2.ts +15 -0
  179. package/src/theme/versioning/themeColor_v0_v2.ts +7 -0
  180. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -0
  181. package/src/theme/versioning/v0_v2.ts +13 -1
  182. package/src/theme/versioning/v2_v0.ts +18 -0
  183. package/dist/_chunks-cjs/_visual-editing.js +0 -5899
  184. package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
  185. package/dist/_chunks-cjs/refractor.js +0 -23
  186. package/dist/_chunks-cjs/refractor.js.map +0 -1
  187. package/dist/_chunks-es/_visual-editing.mjs +0 -5905
  188. package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
  189. package/dist/_chunks-es/refractor.mjs +0 -26
  190. package/dist/_chunks-es/refractor.mjs.map +0 -1
  191. package/dist/_visual-editing.js.map +0 -1
  192. package/dist/_visual-editing.mjs.map +0 -1
  193. package/dist/index.js.map +0 -1
  194. package/dist/theme.js.map +0 -1
  195. package/dist/theme.mjs.map +0 -1
  196. package/src/core/__workshop__/constants.ts +0 -293
  197. package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
  198. package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
  199. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  200. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
  201. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
  202. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
  203. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  204. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
  205. package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
  206. package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
  207. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
  208. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
  209. package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
  210. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  211. package/src/core/components/dialog/__workshop__/index.ts +0 -19
  212. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  213. package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
  214. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
  215. package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
  216. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  217. package/src/core/components/dialog/__workshop__/props.tsx +0 -75
  218. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  219. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  220. package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
  221. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  222. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  223. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
  224. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
  225. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
  226. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  227. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
  228. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  229. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  230. package/src/core/components/menu/__workshop__/index.ts +0 -89
  231. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  232. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
  233. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  234. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
  235. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  236. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
  237. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  238. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  239. package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
  240. package/src/core/components/skeleton/__workshop__/index.ts +0 -11
  241. package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
  242. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  243. package/src/core/components/tab/__workshop__/index.ts +0 -14
  244. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  245. package/src/core/components/toast/__workshop__/index.ts +0 -19
  246. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  247. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  248. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  249. package/src/core/components/tree/__workshop__/index.ts +0 -21
  250. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  251. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
  252. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  253. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
  254. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  255. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  256. package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
  257. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  258. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  259. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
  260. package/src/core/primitives/badge/__workshop__/index.ts +0 -19
  261. package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
  262. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
  263. package/src/core/primitives/box/__workshop__/asComponent.tsx +0 -31
  264. package/src/core/primitives/box/__workshop__/index.ts +0 -24
  265. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  266. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  267. package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
  268. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  269. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
  270. package/src/core/primitives/button/__workshop__/index.ts +0 -59
  271. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  272. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  273. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
  274. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  275. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  276. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  277. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
  278. package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
  279. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  280. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  281. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  282. package/src/core/primitives/card/__workshop__/index.ts +0 -18
  283. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
  284. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
  285. package/src/core/primitives/card/__workshop__/props.tsx +0 -53
  286. package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
  287. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  288. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  289. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
  290. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
  291. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  292. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
  293. package/src/core/primitives/code/__workshop__/index.ts +0 -19
  294. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
  295. package/src/core/primitives/code/__workshop__/props.tsx +0 -21
  296. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  297. package/src/core/primitives/container/__workshop__/index.ts +0 -8
  298. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  299. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  300. package/src/core/primitives/flex/__workshop__/index.ts +0 -11
  301. package/src/core/primitives/grid/__workshop__/index.ts +0 -10
  302. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  303. package/src/core/primitives/heading/__workshop__/index.ts +0 -19
  304. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  305. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
  306. package/src/core/primitives/inline/__workshop__/index.ts +0 -8
  307. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
  308. package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
  309. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  310. package/src/core/primitives/label/__workshop__/index.ts +0 -19
  311. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
  312. package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
  313. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  314. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  315. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  316. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  317. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  318. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  319. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
  320. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
  321. package/src/core/primitives/popover/__workshop__/index.ts +0 -49
  322. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  323. package/src/core/primitives/radio/__workshop__/index.ts +0 -11
  324. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  325. package/src/core/primitives/select/__workshop__/index.ts +0 -11
  326. package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
  327. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  328. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  329. package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
  330. package/src/core/primitives/stack/__workshop__/index.ts +0 -14
  331. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  332. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  333. package/src/core/primitives/switch/__workshop__/index.ts +0 -11
  334. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  335. package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
  336. package/src/core/primitives/text/__workshop__/example.tsx +0 -39
  337. package/src/core/primitives/text/__workshop__/index.ts +0 -24
  338. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
  339. package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
  340. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
  341. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  342. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  343. package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
  344. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
  345. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  346. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  347. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  348. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  349. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  350. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
  351. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  352. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
  353. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  354. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  355. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  356. package/src/core/theme/__workshop__/build/story.tsx +0 -465
  357. package/src/core/theme/__workshop__/canvas.tsx +0 -352
  358. package/src/core/theme/__workshop__/color.tsx +0 -62
  359. package/src/core/theme/__workshop__/debug/story.tsx +0 -408
  360. package/src/core/theme/__workshop__/index.ts +0 -39
  361. package/src/core/theme/__workshop__/layer.tsx +0 -78
  362. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  363. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
  364. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  365. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
  366. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
  367. package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
  368. package/src/core/utils/layer/__workshop__/index.ts +0 -24
  369. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
  370. package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
  371. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
  372. package/src/core/utils/portal/__workshop__/index.ts +0 -14
  373. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  374. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
  375. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
  376. package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
  377. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
  378. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
@@ -1,19 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/heading',
6
- title: 'Heading',
7
- stories: [
8
- {
9
- name: 'plain',
10
- title: 'Plain',
11
- component: lazy(() => import('./plain')),
12
- },
13
- {
14
- name: 'optical-alignment',
15
- title: 'Optical alignment',
16
- component: lazy(() => import('./opticalAlignment')),
17
- },
18
- ],
19
- })
@@ -1,54 +0,0 @@
1
- import {AddCircleIcon} from '@sanity/icons'
2
- import {Box, Card, Flex, Heading, Stack} from '@sanity/ui'
3
-
4
- export default function OpticalAlignment() {
5
- return (
6
- <Box padding={[4, 5, 6]}>
7
- <Stack space={1}>
8
- <Flex>
9
- <Card padding={0} tone="neutral">
10
- <Heading size={5}>Hamburgefonstiv M</Heading>
11
- </Card>
12
- </Flex>
13
-
14
- <Flex>
15
- <Card padding={0} tone="neutral">
16
- <Heading size={4}>Hamburgefonstiv M</Heading>
17
- </Card>
18
- </Flex>
19
-
20
- <Flex>
21
- <Card padding={0} tone="neutral">
22
- <Heading size={3}>Hamburgefonstiv M</Heading>
23
- </Card>
24
- </Flex>
25
-
26
- <Flex>
27
- <Card padding={0} tone="neutral">
28
- <Heading size={2}>Hamburgefonstiv M</Heading>
29
- </Card>
30
- </Flex>
31
-
32
- <Flex>
33
- <Card padding={0} tone="neutral">
34
- <Heading size={1}>Hamburgefonstiv M</Heading>
35
- </Card>
36
- </Flex>
37
-
38
- <Flex>
39
- <Card padding={0} tone="neutral">
40
- <Heading size={0}>Hamburgefonstiv M</Heading>
41
- </Card>
42
- </Flex>
43
-
44
- <Flex>
45
- <Card padding={2} tone="neutral">
46
- <Heading accent>
47
- <AddCircleIcon />
48
- </Heading>
49
- </Card>
50
- </Flex>
51
- </Stack>
52
- </Box>
53
- )
54
- }
@@ -1,32 +0,0 @@
1
- import {Flex, Heading} from '@sanity/ui'
2
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
3
-
4
- import {
5
- WORKSHOP_FONT_WEIGHT_OPTIONS,
6
- WORKSHOP_HEADING_FONT_SIZE_OPTIONS,
7
- WORKSHOP_TEXT_OVERFLOW_OPTIONS,
8
- } from '../../../__workshop__/constants'
9
-
10
- export default function PlainStory() {
11
- const accent = useBoolean('Accent', false, 'Props')
12
- const muted = useBoolean('Muted', false, 'Props')
13
- const size = useSelect('Size', WORKSHOP_HEADING_FONT_SIZE_OPTIONS, 2, 'Props')
14
- const textChild = useText('Text', 'Hello, world', 'Props')
15
- const textOverflow =
16
- useSelect('Text overflow', WORKSHOP_TEXT_OVERFLOW_OPTIONS, '', 'Props') || undefined
17
- const weight = useSelect('Weight', WORKSHOP_FONT_WEIGHT_OPTIONS, '', 'Props') || undefined
18
-
19
- return (
20
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
21
- <Heading
22
- accent={accent}
23
- muted={muted}
24
- size={size}
25
- textOverflow={textOverflow}
26
- weight={weight}
27
- >
28
- {textChild}
29
- </Heading>
30
- </Flex>
31
- )
32
- }
@@ -1,8 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/inline',
6
- title: 'Inline',
7
- stories: [{name: 'plain', title: 'Plain', component: lazy(() => import('./plain'))}],
8
- })
@@ -1,27 +0,0 @@
1
- import {Card, Flex, Inline, 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 PlainStory() {
7
- return (
8
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
9
- <Inline
10
- onClick={useAction('onClick')}
11
- space={useSelect('Space', WORKSHOP_SPACE_OPTIONS, 0, 'Props')}
12
- >
13
- <Card padding={1} shadow={1}>
14
- <Text size={1}>Inline item</Text>
15
- </Card>
16
-
17
- <Card padding={2} shadow={1}>
18
- <Text size={1}>Inline item</Text>
19
- </Card>
20
-
21
- <Card padding={3} shadow={1}>
22
- <Text size={1}>Inline item</Text>
23
- </Card>
24
- </Inline>
25
- </Flex>
26
- )
27
- }
@@ -1,8 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/kbd',
6
- title: 'KBD',
7
- stories: [{name: 'plain', title: 'Plain', component: lazy(() => import('./plain'))}],
8
- })
@@ -1,9 +0,0 @@
1
- import {Flex, KBD} from '@sanity/ui'
2
-
3
- export default function PlainStory() {
4
- return (
5
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
6
- <KBD style={{verticalAlign: 'top'}}>Ctrl</KBD>
7
- </Flex>
8
- )
9
- }
@@ -1,19 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/label',
6
- title: 'Label',
7
- stories: [
8
- {
9
- name: 'plain',
10
- title: 'Plain',
11
- component: lazy(() => import('./plain')),
12
- },
13
- {
14
- name: 'optical-alignment',
15
- title: 'Optical alignment',
16
- component: lazy(() => import('./opticalAlignment')),
17
- },
18
- ],
19
- })
@@ -1,48 +0,0 @@
1
- import {AddCircleIcon} from '@sanity/icons'
2
- import {Box, Card, Flex, Label, Stack} from '@sanity/ui'
3
-
4
- export default function OpticalAlignment() {
5
- return (
6
- <Box padding={[4, 5, 6]}>
7
- <Stack space={1}>
8
- <Flex>
9
- <Card padding={0} tone="suggest">
10
- <Label size={4}>Hamburgefonstiv M</Label>
11
- </Card>
12
- </Flex>
13
-
14
- <Flex>
15
- <Card padding={0} tone="suggest">
16
- <Label size={3}>Hamburgefonstiv M</Label>
17
- </Card>
18
- </Flex>
19
-
20
- <Flex>
21
- <Card padding={0} tone="suggest">
22
- <Label size={2}>Hamburgefonstiv M</Label>
23
- </Card>
24
- </Flex>
25
-
26
- <Flex>
27
- <Card padding={0} tone="suggest">
28
- <Label size={1}>Hamburgefonstiv M</Label>
29
- </Card>
30
- </Flex>
31
-
32
- <Flex>
33
- <Card padding={0} tone="suggest">
34
- <Label size={0}>Hamburgefonstiv M</Label>
35
- </Card>
36
- </Flex>
37
-
38
- <Flex>
39
- <Card padding={2} tone="suggest">
40
- <Label>
41
- <AddCircleIcon />
42
- </Label>
43
- </Card>
44
- </Flex>
45
- </Stack>
46
- </Box>
47
- )
48
- }
@@ -1,24 +0,0 @@
1
- import {Flex, Label} from '@sanity/ui'
2
- import {useSelect, useText} from '@sanity/ui-workshop'
3
-
4
- import {
5
- WORKSHOP_FONT_WEIGHT_OPTIONS,
6
- WORKSHOP_LABEL_FONT_SIZE_OPTIONS,
7
- WORKSHOP_TEXT_OVERFLOW_OPTIONS,
8
- } from '../../../__workshop__/constants'
9
-
10
- export default function PlainStory() {
11
- const size = useSelect('Size', WORKSHOP_LABEL_FONT_SIZE_OPTIONS, undefined, 'Props')
12
- const textChild = useText('Text', 'Label text', 'Props')
13
- const textOverflow =
14
- useSelect('Text overflow', WORKSHOP_TEXT_OVERFLOW_OPTIONS, '', 'Props') || undefined
15
- const weight = useSelect('Weight', WORKSHOP_FONT_WEIGHT_OPTIONS, undefined, 'Props')
16
-
17
- return (
18
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
19
- <Label size={size} textOverflow={textOverflow} weight={weight}>
20
- {textChild}
21
- </Label>
22
- </Flex>
23
- )
24
- }
@@ -1,77 +0,0 @@
1
- import {EllipsisVerticalIcon} from '@sanity/icons'
2
- import {Button, Card, Flex, Popover, Text, useClickOutsideEvent} from '@sanity/ui'
3
- import {useBoolean, useSelect} from '@sanity/ui-workshop'
4
- import {useCallback, useRef, useState} from 'react'
5
-
6
- import {
7
- WORKSHOP_FLEX_ALIGN_OPTIONS,
8
- WORKSHOP_FLEX_JUSTIFY_OPTIONS,
9
- WORKSHOP_PLACEMENT_OPTIONS,
10
- WORKSHOP_WIDTH_OPTIONS,
11
- } from '../../../__workshop__/constants'
12
-
13
- export default function AlignedStory() {
14
- const constrainSize = useBoolean('Constrain size', false)
15
- const placement = useSelect('Placement', WORKSHOP_PLACEMENT_OPTIONS, 'bottom')
16
- const portal = useBoolean('Portal', true)
17
- const width = useSelect('Width', WORKSHOP_WIDTH_OPTIONS, 'auto')
18
-
19
- const flexAlign = useSelect('Align', WORKSHOP_FLEX_ALIGN_OPTIONS, 'flex-start')
20
- const flexJustify = useSelect('Justify', WORKSHOP_FLEX_JUSTIFY_OPTIONS, 'flex-end')
21
-
22
- const [open, setOpen] = useState(false)
23
- const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)
24
- const buttonElementRef = useRef<HTMLButtonElement | null>(null)
25
- const popoverElementRef = useRef<HTMLDivElement | null>(null)
26
-
27
- const content = (
28
- <Text size={1}>
29
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque at nisl at sem tempor
30
- hendrerit scelerisque ut libero. Maecenas iaculis efficitur lorem, ac faucibus mi imperdiet
31
- quis. Cras a consectetur erat. Fusce imperdiet, dolor et pellentesque iaculis, ex quam luctus
32
- felis, non ultrices enim sem vitae quam. Duis lorem velit, lacinia at rhoncus a, tempus vel
33
- neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;
34
- Sed id mauris quam. Nam finibus sapien non lacinia ultricies. Integer fermentum tortor at
35
- pellentesque faucibus. In venenatis commodo placerat. Curabitur commodo tortor libero, vel
36
- pellentesque elit luctus sodales. Donec mattis tristique nunc ac lacinia. Vestibulum non
37
- pulvinar turpis, posuere consequat arcu. Fusce ut urna blandit, finibus nisi a, molestie elit.
38
- Nulla sed eleifend mi.
39
- </Text>
40
- )
41
-
42
- const handleToggleOpen = useCallback(() => setOpen((v) => !v), [])
43
-
44
- useClickOutsideEvent(
45
- () => setOpen(false),
46
- () => [buttonElementRef.current, popoverElementRef.current],
47
- )
48
-
49
- return (
50
- <Card height="fill" padding={[4, 5, 6]} sizing="border" tone="transparent">
51
- <Card height="fill" padding={2} ref={setBoundaryElement} shadow={1} sizing="border">
52
- <Flex align={flexAlign} height="fill" justify={flexJustify}>
53
- <Popover
54
- boundaryElement={boundaryElement}
55
- constrainSize={constrainSize}
56
- content={content}
57
- open={open}
58
- overflow="auto"
59
- padding={3}
60
- portal={portal}
61
- placement={placement}
62
- ref={popoverElementRef}
63
- width={width}
64
- >
65
- <Button
66
- icon={EllipsisVerticalIcon}
67
- mode="bleed"
68
- onClick={handleToggleOpen}
69
- ref={buttonElementRef}
70
- selected={open}
71
- />
72
- </Popover>
73
- </Flex>
74
- </Card>
75
- </Card>
76
- )
77
- }
@@ -1,31 +0,0 @@
1
- import {Box, Card, Container, Flex, Popover, Text} from '@sanity/ui'
2
-
3
- export default function MarginsStory() {
4
- return (
5
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
6
- <Popover
7
- __unstable_margins={[-8, 8, -8, 8]}
8
- arrow={false}
9
- content={
10
- <Box padding={2}>
11
- <Text align="center" muted size={1}>
12
- Popover
13
- </Text>
14
- </Box>
15
- }
16
- matchReferenceWidth
17
- open
18
- placement="bottom-start"
19
- // radius={0}
20
- >
21
- <Container width={0}>
22
- <Card padding={2} muted shadow={1}>
23
- <Text align="center" muted size={1}>
24
- Reference
25
- </Text>
26
- </Card>
27
- </Container>
28
- </Popover>
29
- </Flex>
30
- )
31
- }
@@ -1,32 +0,0 @@
1
- import {Box, Button, Container, Flex, Popover, Stack, Text} from '@sanity/ui'
2
- import {useBoolean, useSelect} from '@sanity/ui-workshop'
3
-
4
- import {WORKSHOP_PLACEMENT_OPTIONS} from '../../../__workshop__/constants'
5
-
6
- export default function MatchReferenceWidthStory() {
7
- const arrow = useBoolean('Arrow', true, 'Props')
8
- const placement = useSelect('Placement', WORKSHOP_PLACEMENT_OPTIONS, 'bottom', 'Props')
9
-
10
- return (
11
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
12
- <Popover
13
- arrow={arrow}
14
- content={
15
- <Box padding={3}>
16
- <Text size={1}>Content</Text>
17
- </Box>
18
- }
19
- matchReferenceWidth
20
- open
21
- placement={placement}
22
- radius={2}
23
- >
24
- <Container width={0}>
25
- <Stack>
26
- <Button fontSize={1} mode="ghost" selected text="Button" />
27
- </Stack>
28
- </Container>
29
- </Popover>
30
- </Flex>
31
- )
32
- }
@@ -1,11 +0,0 @@
1
- import {Button, Card, Popover, Text} from '@sanity/ui'
2
-
3
- export default function OpenOnMountStory() {
4
- return (
5
- <Card height="fill" padding={3} sizing="border">
6
- <Popover content={<Text size={1}>popover content</Text>} open padding={3}>
7
- <Button text="This button is the popover reference" />
8
- </Popover>
9
- </Card>
10
- )
11
- }
@@ -1,71 +0,0 @@
1
- import {Button, Card, Popover, PortalProvider, Text} from '@sanity/ui'
2
- import {useBoolean, useSelect} from '@sanity/ui-workshop'
3
- import {useState} from 'react'
4
-
5
- import {
6
- WORKSHOP_CONTAINER_WIDTH_OPTIONS,
7
- WORKSHOP_PLACEMENT_OPTIONS,
8
- WORKSHOP_RADIUS_OPTIONS,
9
- WORKSHOP_SPACE_OPTIONS,
10
- } from '../../../__workshop__/constants'
11
-
12
- export default function PlainStory() {
13
- const arrow = useBoolean('Arrow', true)
14
- const boundaryElementFlag = useBoolean('Boundary element', true)
15
- const constrainSize = useBoolean('Constrain size', true)
16
- const matchReferenceWidth = useBoolean('Match reference width', false)
17
- const open = useBoolean('Open', true)
18
- const padding = useSelect('Padding', WORKSHOP_SPACE_OPTIONS, 3)
19
- const placement = useSelect('Placement', WORKSHOP_PLACEMENT_OPTIONS, 'bottom')
20
- const portal = useBoolean('Portal', true)
21
- const preventOverflow = useBoolean('Prevent overflow', true)
22
- const radius = useSelect('Radius', WORKSHOP_RADIUS_OPTIONS, 2)
23
- const width = useSelect('Width', WORKSHOP_CONTAINER_WIDTH_OPTIONS, 'auto')
24
- const [portalElement, setPortalElement] = useState<HTMLDivElement | null>(null)
25
- const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)
26
-
27
- return (
28
- <Card height="fill" padding={3} sizing="border">
29
- <PortalProvider element={portalElement}>
30
- <Text align="center" muted size={1}>
31
- Scroll this box to reveal the popover
32
- </Text>
33
- <div
34
- ref={setBoundaryElement}
35
- style={{
36
- height: 'calc(100vh - 120px)',
37
- position: 'absolute',
38
- top: 0,
39
- left: 0,
40
- margin: 60,
41
- overflow: 'auto',
42
- outline: '1px solid red',
43
- width: 'calc(100vw - 120px)',
44
- }}
45
- >
46
- <div style={{padding: '150vh 0', textAlign: 'center'}}>
47
- <Popover
48
- __unstable_margins={[1, 1, 1, 1]}
49
- arrow={arrow}
50
- boundaryElement={boundaryElementFlag ? boundaryElement : undefined}
51
- constrainSize={constrainSize}
52
- content={<Text size={1}>popover content</Text>}
53
- fallbackPlacements={['top', 'bottom']}
54
- matchReferenceWidth={matchReferenceWidth}
55
- open={open}
56
- padding={padding}
57
- placement={placement}
58
- portal={portal}
59
- preventOverflow={preventOverflow}
60
- radius={radius}
61
- width={width}
62
- >
63
- <Button text="This button is the popover reference" />
64
- </Popover>
65
- </div>
66
- </div>
67
- <div ref={setPortalElement} />
68
- </PortalProvider>
69
- </Card>
70
- )
71
- }
@@ -1,71 +0,0 @@
1
- import {Button, Flex, LayerProvider, Placement, Popover, useLayer} from '@sanity/ui'
2
- import {ThemeColorToneKey} from '@sanity/ui/theme'
3
- import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
4
-
5
- export default function RecursiveStory() {
6
- return (
7
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
8
- <LayerProvider>
9
- <RecursiveExample />
10
- </LayerProvider>
11
- </Flex>
12
- )
13
- }
14
-
15
- const placements: Placement[] = ['top', 'right', 'bottom', 'left']
16
- const tones: ThemeColorToneKey[] = ['primary', 'positive', 'caution', 'critical']
17
-
18
- function RecursiveExample({onClose}: {onClose?: () => void}) {
19
- const [open, setOpen] = useState(false)
20
- const buttonRef = useRef<HTMLButtonElement | null>(null)
21
- const {isTopLayer} = useLayer()
22
- const [seed] = useState(() => Math.floor(Math.random() * 4))
23
- const fallbackPlacements = useMemo(() => {
24
- const before = placements.slice(seed)
25
- const after = placements.slice(0, seed)
26
-
27
- return before.concat(after)
28
- }, [seed])
29
-
30
- useEffect(() => {
31
- if (open === false) buttonRef.current?.focus()
32
- }, [open])
33
-
34
- useEffect(() => {
35
- setTimeout(() => {
36
- buttonRef.current?.focus()
37
- }, 0)
38
- }, [])
39
-
40
- const handleOpen = useCallback(() => setOpen(true), [])
41
- const handleClose = useCallback(() => setOpen(false), [])
42
-
43
- const handleKeyDown = useCallback(
44
- (event: React.KeyboardEvent<HTMLButtonElement>) => {
45
- if (!isTopLayer) return
46
- if (event.key === 'Escape' && onClose) onClose()
47
- },
48
- [isTopLayer, onClose],
49
- )
50
-
51
- return (
52
- <Popover
53
- fallbackPlacements={fallbackPlacements}
54
- content={<RecursiveExample onClose={handleClose} />}
55
- open={open}
56
- padding={1}
57
- placement={fallbackPlacements[3]}
58
- portal
59
- tone={tones[seed]}
60
- >
61
- <Button
62
- mode="bleed"
63
- onKeyDown={handleKeyDown}
64
- onClick={handleOpen}
65
- radius={3}
66
- ref={buttonRef}
67
- text="Open"
68
- />
69
- </Popover>
70
- )
71
- }
@@ -1,89 +0,0 @@
1
- import {useSelect} from '@sanity/ui-workshop'
2
- import {useCallback, useEffect, useRef, useState} from 'react'
3
-
4
- import {BoundaryElementProvider} from '../../../utils'
5
- import {Box} from '../../box'
6
- import {Card} from '../../card'
7
- import {Flex} from '../../flex'
8
- import {Stack} from '../../stack'
9
- import {Text} from '../../text'
10
- import {Popover, PopoverProps} from '../popover'
11
- import {PopoverUpdateCallback} from '../types'
12
-
13
- const SIDE_PANEL_WIDTH = {
14
- sm: 300,
15
- md: 400,
16
- lg: 500,
17
- xl: 600,
18
- }
19
-
20
- export default function SidePanelStory() {
21
- const sidePanelWidth = useSelect('Side panel width', SIDE_PANEL_WIDTH, SIDE_PANEL_WIDTH.md)
22
- const [sidePanel, setSidePanel] = useState<HTMLDivElement | null>(null)
23
- const updateRef = useRef<PopoverUpdateCallback>(undefined)
24
-
25
- useEffect(() => updateRef.current?.(), [sidePanelWidth])
26
-
27
- return (
28
- <Flex height="fill">
29
- <Card flex={1}>
30
- <Box padding={4}>
31
- <Text>
32
- This story shows that popovers respect their boundary when used in a side panel.
33
- </Text>
34
- </Box>
35
- </Card>
36
- <BoundaryElementProvider element={sidePanel}>
37
- <Card borderLeft flex="none" ref={setSidePanel} style={{width: sidePanelWidth}}>
38
- <Stack padding={4} space={5}>
39
- <Text muted size={1}>
40
- Click the <code>reference</code> text below to toggle the popover.
41
- </Text>
42
-
43
- <Card border padding={3}>
44
- <Text size={1}>
45
- Some editor <InlineObject updateRef={updateRef} />
46
- </Text>
47
- </Card>
48
- </Stack>
49
- </Card>
50
- </BoundaryElementProvider>
51
- </Flex>
52
- )
53
- }
54
-
55
- function InlineObject(props: {updateRef?: PopoverProps['updateRef']}) {
56
- const {updateRef} = props
57
- const [open, setOpen] = useState(false)
58
-
59
- const handleClick = useCallback(() => {
60
- setOpen((prev) => !prev)
61
- }, [])
62
-
63
- return (
64
- <Popover
65
- content={
66
- <Box padding={3}>
67
- <Text size={1}>
68
- Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
69
- has been the industry's standard dummy text ever since the 1500s, when an unknown
70
- printer took a galley of type and scrambled it to make a type specimen book. It has
71
- survived not only five centuries, but also the leap into electronic typesetting,
72
- remaining essentially unchanged. It was popularised in the 1960s with the release of
73
- Letraset sheets containing Lorem Ipsum passages, and more recently with desktop
74
- publishing software like Aldus PageMaker including versions of Lorem Ipsum.
75
- </Text>
76
- </Box>
77
- }
78
- constrainSize
79
- open={open}
80
- overflow="auto"
81
- portal
82
- width={0}
83
- updateRef={updateRef}
84
- >
85
- {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions */}
86
- <code onClick={handleClick}>reference</code>
87
- </Popover>
88
- )
89
- }