@sanity/ui 4.0.0-beta.7 → 4.0.0-next.0

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 (393) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +21 -7
  3. package/dist/_chunks/getScopedTheme.cjs +4043 -0
  4. package/dist/_chunks/getScopedTheme.cjs.map +1 -0
  5. package/dist/_chunks/getScopedTheme.js +3803 -0
  6. package/dist/_chunks/getScopedTheme.js.map +1 -0
  7. package/dist/_chunks/portalProvider.cjs +3750 -0
  8. package/dist/_chunks/portalProvider.cjs.map +1 -0
  9. package/dist/_chunks/portalProvider.d.cts +1067 -0
  10. package/dist/_chunks/portalProvider.d.cts.map +1 -0
  11. package/dist/_chunks/portalProvider.d.ts +1067 -0
  12. package/dist/_chunks/portalProvider.d.ts.map +1 -0
  13. package/dist/_chunks/portalProvider.js +3300 -0
  14. package/dist/_chunks/portalProvider.js.map +1 -0
  15. package/dist/_chunks/refractor.cjs +18 -0
  16. package/dist/_chunks/refractor.cjs.map +1 -0
  17. package/dist/_chunks/refractor.js +20 -0
  18. package/dist/_chunks/refractor.js.map +1 -0
  19. package/dist/_chunks/rgba.d.cts +929 -0
  20. package/dist/_chunks/rgba.d.cts.map +1 -0
  21. package/dist/_chunks/rgba.d.ts +929 -0
  22. package/dist/_chunks/rgba.d.ts.map +1 -0
  23. package/dist/_visual-editing.cjs +4 -0
  24. package/dist/_visual-editing.d.cts +2 -0
  25. package/dist/_visual-editing.d.ts +2 -0
  26. package/dist/_visual-editing.js +3 -0
  27. package/dist/index.cjs +3007 -0
  28. package/dist/index.cjs.map +1 -0
  29. package/dist/index.d.cts +1275 -0
  30. package/dist/index.d.cts.map +1 -0
  31. package/dist/index.d.ts +708 -1188
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2964 -4783
  34. package/dist/index.js.map +1 -1
  35. package/dist/theme.cjs +54 -0
  36. package/dist/theme.cjs.map +1 -0
  37. package/dist/theme.d.cts +278 -0
  38. package/dist/theme.d.cts.map +1 -0
  39. package/dist/theme.d.ts +278 -0
  40. package/dist/theme.d.ts.map +1 -0
  41. package/dist/theme.js +53 -0
  42. package/dist/theme.js.map +1 -0
  43. package/package.json +65 -88
  44. package/dist/_chunks-es/Syntax.js +0 -23
  45. package/dist/_chunks-es/Syntax.js.map +0 -1
  46. package/dist/index.css +0 -1
  47. package/exports/index.css +0 -1
  48. package/exports/index.ts +0 -125
  49. package/src/components/autocomplete/Autocomplete.tsx +0 -665
  50. package/src/components/autocomplete/AutocompleteOption.tsx +0 -42
  51. package/src/components/autocomplete/__workshop__/Async.tsx +0 -162
  52. package/src/components/autocomplete/__workshop__/ConstrainedHeight.tsx +0 -121
  53. package/src/components/autocomplete/__workshop__/Custom.tsx +0 -91
  54. package/src/components/autocomplete/__workshop__/Example.tsx +0 -70
  55. package/src/components/autocomplete/__workshop__/FocusAndBlur.tsx +0 -39
  56. package/src/components/autocomplete/__workshop__/Fullscreen.tsx +0 -307
  57. package/src/components/autocomplete/__workshop__/index.ts +0 -41
  58. package/src/components/autocomplete/__workshop__/mock/apiStore.ts +0 -49
  59. package/src/components/autocomplete/__workshop__/mock/countries.ts +0 -245
  60. package/src/components/autocomplete/__workshop__/types.ts +0 -4
  61. package/src/components/autocomplete/autocompleteReducer.ts +0 -47
  62. package/src/components/autocomplete/constants.ts +0 -28
  63. package/src/components/autocomplete/types.ts +0 -103
  64. package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -163
  65. package/src/components/breadcrumbs/__workshop__/Example.tsx +0 -48
  66. package/src/components/breadcrumbs/__workshop__/index.ts +0 -16
  67. package/src/components/dialog/Dialog.tsx +0 -230
  68. package/src/components/dialog/DialogCard.tsx +0 -233
  69. package/src/components/dialog/DialogContext.ts +0 -21
  70. package/src/components/dialog/DialogProvider.tsx +0 -34
  71. package/src/components/dialog/__workshop__/Activate.tsx +0 -141
  72. package/src/components/dialog/__workshop__/AutoFocus.tsx +0 -29
  73. package/src/components/dialog/__workshop__/Layering.tsx +0 -41
  74. package/src/components/dialog/__workshop__/Nested.tsx +0 -71
  75. package/src/components/dialog/__workshop__/OnScroll.tsx +0 -51
  76. package/src/components/dialog/__workshop__/Panes.tsx +0 -75
  77. package/src/components/dialog/__workshop__/Position.tsx +0 -30
  78. package/src/components/dialog/__workshop__/Props.tsx +0 -93
  79. package/src/components/dialog/__workshop__/Provider.tsx +0 -11
  80. package/src/components/dialog/__workshop__/Wrapped.tsx +0 -76
  81. package/src/components/dialog/__workshop__/index.ts +0 -21
  82. package/src/components/dialog/isTargetWithinScope.ts +0 -14
  83. package/src/components/dialog/types.ts +0 -2
  84. package/src/components/dialog/useDialog.ts +0 -11
  85. package/src/components/hotkeys/Hotkeys.tsx +0 -70
  86. package/src/components/hotkeys/__workshop__/Plain.tsx +0 -9
  87. package/src/components/hotkeys/__workshop__/index.ts +0 -16
  88. package/src/components/menu/Menu.test.tsx +0 -125
  89. package/src/components/menu/Menu.tsx +0 -174
  90. package/src/components/menu/MenuButton.tsx +0 -231
  91. package/src/components/menu/MenuContext.ts +0 -19
  92. package/src/components/menu/MenuDivider.tsx +0 -32
  93. package/src/components/menu/MenuGroup.tsx +0 -240
  94. package/src/components/menu/MenuItem.tsx +0 -153
  95. package/src/components/menu/__workshop__/AsComponent.tsx +0 -45
  96. package/src/components/menu/__workshop__/AvatarMenu.tsx +0 -36
  97. package/src/components/menu/__workshop__/ClosableMenuButton.tsx +0 -47
  98. package/src/components/menu/__workshop__/ConstrainedInBoundary.tsx +0 -133
  99. package/src/components/menu/__workshop__/CustomMenuItem.tsx +0 -47
  100. package/src/components/menu/__workshop__/CustomSelectedState.tsx +0 -35
  101. package/src/components/menu/__workshop__/DataProps.tsx +0 -27
  102. package/src/components/menu/__workshop__/DisableFocusOnClose.tsx +0 -40
  103. package/src/components/menu/__workshop__/Groups.tsx +0 -164
  104. package/src/components/menu/__workshop__/MenuButton.tsx +0 -79
  105. package/src/components/menu/__workshop__/MenuGroupRight.tsx +0 -73
  106. package/src/components/menu/__workshop__/NestedMenu.tsx +0 -22
  107. package/src/components/menu/__workshop__/OnCloseMenuButton.tsx +0 -50
  108. package/src/components/menu/__workshop__/SelectedItem.tsx +0 -69
  109. package/src/components/menu/__workshop__/ShouldFocus.tsx +0 -42
  110. package/src/components/menu/__workshop__/Tones.tsx +0 -19
  111. package/src/components/menu/__workshop__/index.ts +0 -91
  112. package/src/components/menu/helpers.ts +0 -82
  113. package/src/components/menu/useMenu.ts +0 -21
  114. package/src/components/menu/useMenuController.ts +0 -245
  115. package/src/components/tab/Tab.tsx +0 -135
  116. package/src/components/tab/TabList.tsx +0 -157
  117. package/src/components/tab/TabListContext.ts +0 -10
  118. package/src/components/tab/TabPanel.tsx +0 -94
  119. package/src/components/tab/__workshop__/Example.tsx +0 -135
  120. package/src/components/tab/__workshop__/index.ts +0 -16
  121. package/src/components/tab/types.ts +0 -11
  122. package/src/components/toast/Toast.test.tsx +0 -103
  123. package/src/components/toast/Toast.tsx +0 -191
  124. package/src/components/toast/ToastContext.ts +0 -7
  125. package/src/components/toast/ToastLayer.tsx +0 -54
  126. package/src/components/toast/ToastProvider.tsx +0 -127
  127. package/src/components/toast/__workshop__/Hook.tsx +0 -71
  128. package/src/components/toast/__workshop__/Toast.tsx +0 -26
  129. package/src/components/toast/__workshop__/index.ts +0 -21
  130. package/src/components/toast/toastState.ts +0 -6
  131. package/src/components/toast/types.ts +0 -24
  132. package/src/components/toast/useToast.ts +0 -23
  133. package/src/components/tree/Tree.tsx +0 -248
  134. package/src/components/tree/TreeContext.ts +0 -10
  135. package/src/components/tree/TreeGroup.tsx +0 -46
  136. package/src/components/tree/TreeItem.tsx +0 -236
  137. package/src/components/tree/__workshop__/Basic.tsx +0 -108
  138. package/src/components/tree/__workshop__/TabFromElement.tsx +0 -84
  139. package/src/components/tree/__workshop__/basic.perf.ts +0 -19
  140. package/src/components/tree/__workshop__/index.ts +0 -23
  141. package/src/components/tree/helpers.ts +0 -105
  142. package/src/components/tree/types.ts +0 -24
  143. package/src/components/tree/useTree.ts +0 -17
  144. package/src/components/virtualList/VirtualList.tsx +0 -254
  145. package/src/components/virtualList/__workshop__/ChangingProps.tsx +0 -41
  146. package/src/components/virtualList/__workshop__/ElementScroll.tsx +0 -43
  147. package/src/components/virtualList/__workshop__/InfiniteList.tsx +0 -40
  148. package/src/components/virtualList/__workshop__/WindowScrolll.tsx +0 -23
  149. package/src/components/virtualList/__workshop__/index.ts +0 -31
  150. package/src/core/_keys.ts +0 -26
  151. package/src/core/constants.ts +0 -67
  152. package/src/core/getElementRef.ts +0 -29
  153. package/src/core/helpers/animation.ts +0 -26
  154. package/src/core/helpers/element.ts +0 -55
  155. package/src/core/helpers/focus.ts +0 -92
  156. package/src/core/helpers/props.ts +0 -51
  157. package/src/core/helpers/scroll.ts +0 -15
  158. package/src/core/lib/createGlobalScopedContext.ts +0 -39
  159. package/src/core/lib/globalScope.ts +0 -19
  160. package/src/core/lib/isArray.ts +0 -3
  161. package/src/core/lib/isRecord.ts +0 -3
  162. package/src/core/types.ts +0 -57
  163. package/src/hooks/useClickOutsideEvent.test.tsx +0 -114
  164. package/src/hooks/useClickOutsideEvent.ts +0 -66
  165. package/src/hooks/useCustomValidity.ts +0 -13
  166. package/src/hooks/useElementSize.ts +0 -19
  167. package/src/hooks/useGlobalKeyDown.ts +0 -23
  168. package/src/hooks/useMatchMedia.ts +0 -28
  169. package/src/hooks/useMediaIndex/__workshop__/Test.tsx +0 -14
  170. package/src/hooks/useMediaIndex/__workshop__/index.ts +0 -16
  171. package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -21
  172. package/src/hooks/useMediaIndex/useMediaIndex.ts +0 -111
  173. package/src/hooks/useMounted.ts +0 -15
  174. package/src/hooks/usePrefersDark.hydration.test.tsx +0 -56
  175. package/src/hooks/usePrefersDark.test.tsx +0 -20
  176. package/src/hooks/usePrefersDark.ts +0 -16
  177. package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  178. package/src/hooks/usePrefersReducedMotion.test.tsx +0 -20
  179. package/src/hooks/usePrefersReducedMotion.ts +0 -16
  180. package/src/hooks/useResponsiveProp.ts +0 -14
  181. package/src/hooks/useUnique.ts +0 -54
  182. package/src/middleware/origin.ts +0 -47
  183. package/src/observers/elementSize.ts +0 -114
  184. package/src/primitives/_syntax/LazySyntax.tsx +0 -4
  185. package/src/primitives/_syntax/Syntax.tsx +0 -26
  186. package/src/primitives/avatar/Avatar.tsx +0 -145
  187. package/src/primitives/avatar/AvatarCounter.tsx +0 -69
  188. package/src/primitives/avatar/AvatarStack.tsx +0 -77
  189. package/src/primitives/avatar/__workshop__/AsButton.tsx +0 -12
  190. package/src/primitives/avatar/__workshop__/PropsStory.tsx +0 -24
  191. package/src/primitives/avatar/__workshop__/Stack.tsx +0 -27
  192. package/src/primitives/avatar/__workshop__/WithinButton.tsx +0 -51
  193. package/src/primitives/avatar/__workshop__/WithinMenuItem.tsx +0 -52
  194. package/src/primitives/avatar/__workshop__/index.ts +0 -36
  195. package/src/primitives/avatar/types.ts +0 -2
  196. package/src/primitives/badge/Badge.test.tsx +0 -16
  197. package/src/primitives/badge/Badge.tsx +0 -53
  198. package/src/primitives/badge/__workshop__/Props.tsx +0 -27
  199. package/src/primitives/badge/__workshop__/Tones.tsx +0 -15
  200. package/src/primitives/badge/__workshop__/index.ts +0 -26
  201. package/src/primitives/badge/__workshop__/within-button.tsx +0 -36
  202. package/src/primitives/box/Box.tsx +0 -73
  203. package/src/primitives/box/__workshop__/Props.tsx +0 -26
  204. package/src/primitives/box/__workshop__/Responsive.tsx +0 -19
  205. package/src/primitives/box/__workshop__/index.ts +0 -21
  206. package/src/primitives/button/Button.test.tsx +0 -30
  207. package/src/primitives/button/Button.tsx +0 -148
  208. package/src/primitives/button/__workshop__/Custom.tsx +0 -39
  209. package/src/primitives/button/__workshop__/CustomIcons.tsx +0 -37
  210. package/src/primitives/button/__workshop__/DataProps.tsx +0 -18
  211. package/src/primitives/button/__workshop__/Disabled.tsx +0 -43
  212. package/src/primitives/button/__workshop__/MixedChildren.tsx +0 -12
  213. package/src/primitives/button/__workshop__/Props.tsx +0 -60
  214. package/src/primitives/button/__workshop__/Stacked.tsx +0 -60
  215. package/src/primitives/button/__workshop__/Styled1.css.ts +0 -7
  216. package/src/primitives/button/__workshop__/Styled1.tsx +0 -11
  217. package/src/primitives/button/__workshop__/TextOverflow.tsx +0 -17
  218. package/src/primitives/button/__workshop__/UploadButton.tsx +0 -28
  219. package/src/primitives/button/__workshop__/index.ts +0 -61
  220. package/src/primitives/button/types.ts +0 -2
  221. package/src/primitives/card/Card.tsx +0 -124
  222. package/src/primitives/card/CardContext.ts +0 -10
  223. package/src/primitives/card/CardInternalContext.ts +0 -10
  224. package/src/primitives/card/CardInternalProvider.tsx +0 -15
  225. package/src/primitives/card/CardProvider.tsx +0 -16
  226. package/src/primitives/card/__workshop__/AsButton.tsx +0 -103
  227. package/src/primitives/card/__workshop__/AsComponent.tsx +0 -25
  228. package/src/primitives/card/__workshop__/Checkered.tsx +0 -25
  229. package/src/primitives/card/__workshop__/DataProps.tsx +0 -25
  230. package/src/primitives/card/__workshop__/Interactive.tsx +0 -29
  231. package/src/primitives/card/__workshop__/ListNavigation.tsx +0 -78
  232. package/src/primitives/card/__workshop__/Props.tsx +0 -59
  233. package/src/primitives/card/__workshop__/Selected.tsx +0 -62
  234. package/src/primitives/card/__workshop__/Styled.tsx +0 -11
  235. package/src/primitives/card/__workshop__/Tones.tsx +0 -26
  236. package/src/primitives/card/__workshop__/index.ts +0 -21
  237. package/src/primitives/card/types.ts +0 -21
  238. package/src/primitives/card/useCard.ts +0 -20
  239. package/src/primitives/checkbox/Checkbox.tsx +0 -80
  240. package/src/primitives/checkbox/__workshop__/Example.tsx +0 -25
  241. package/src/primitives/checkbox/__workshop__/Props.tsx +0 -35
  242. package/src/primitives/checkbox/__workshop__/ReadOnly.tsx +0 -16
  243. package/src/primitives/checkbox/__workshop__/Tones.tsx +0 -26
  244. package/src/primitives/checkbox/__workshop__/index.ts +0 -15
  245. package/src/primitives/code/Code.tsx +0 -47
  246. package/src/primitives/code/__workshop__/OpticalAlignment.tsx +0 -25
  247. package/src/primitives/code/__workshop__/Props.tsx +0 -20
  248. package/src/primitives/code/__workshop__/index.ts +0 -21
  249. package/src/primitives/container/Container.tsx +0 -43
  250. package/src/primitives/container/__workshop__/Example.tsx +0 -16
  251. package/src/primitives/container/__workshop__/index.ts +0 -16
  252. package/src/primitives/container/types.ts +0 -6
  253. package/src/primitives/flex/Flex.tsx +0 -38
  254. package/src/primitives/flex/__workshop__/Example.tsx +0 -26
  255. package/src/primitives/flex/__workshop__/Gap.tsx +0 -25
  256. package/src/primitives/flex/__workshop__/index.ts +0 -13
  257. package/src/primitives/flex/__workshop__/styles.css.ts +0 -12
  258. package/src/primitives/grid/Grid.tsx +0 -38
  259. package/src/primitives/grid/__workshop__/Responsive.tsx +0 -54
  260. package/src/primitives/grid/__workshop__/index.ts +0 -12
  261. package/src/primitives/heading/Heading.tsx +0 -68
  262. package/src/primitives/heading/__workshop__/OpticalAlignment.tsx +0 -27
  263. package/src/primitives/heading/__workshop__/Plain.tsx +0 -25
  264. package/src/primitives/heading/__workshop__/index.ts +0 -21
  265. package/src/primitives/inline/Inline.tsx +0 -37
  266. package/src/primitives/inline/__workshop__/Plain.tsx +0 -22
  267. package/src/primitives/inline/__workshop__/index.ts +0 -10
  268. package/src/primitives/kbd/Kbd.tsx +0 -36
  269. package/src/primitives/kbd/__workshop__/Plain.tsx +0 -9
  270. package/src/primitives/kbd/__workshop__/index.ts +0 -10
  271. package/src/primitives/label/Label.tsx +0 -67
  272. package/src/primitives/label/__workshop__/OpticalAlignment.tsx +0 -27
  273. package/src/primitives/label/__workshop__/Plain.tsx +0 -27
  274. package/src/primitives/label/__workshop__/index.ts +0 -21
  275. package/src/primitives/layer/Layer.test.tsx +0 -110
  276. package/src/primitives/layer/Layer.tsx +0 -35
  277. package/src/primitives/layer/LayerCard.tsx +0 -90
  278. package/src/primitives/layer/LayerContext.ts +0 -7
  279. package/src/primitives/layer/LayerProvider.tsx +0 -106
  280. package/src/primitives/layer/__workshop__/MultipleRoots.tsx +0 -49
  281. package/src/primitives/layer/__workshop__/Nested.tsx +0 -107
  282. package/src/primitives/layer/__workshop__/ResponsiveZOffset.tsx +0 -17
  283. package/src/primitives/layer/__workshop__/_debug.tsx +0 -17
  284. package/src/primitives/layer/__workshop__/index.ts +0 -26
  285. package/src/primitives/layer/getLayerContext.test.ts +0 -32
  286. package/src/primitives/layer/getLayerContext.ts +0 -21
  287. package/src/primitives/layer/types.ts +0 -9
  288. package/src/primitives/layer/useLayer.ts +0 -24
  289. package/src/primitives/popover/Popover.tsx +0 -291
  290. package/src/primitives/popover/PopoverLayer.tsx +0 -101
  291. package/src/primitives/popover/__workshop__/AlignedStory.tsx +0 -75
  292. package/src/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  293. package/src/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  294. package/src/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  295. package/src/primitives/popover/__workshop__/PlainStory.tsx +0 -67
  296. package/src/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  297. package/src/primitives/popover/__workshop__/SidePanelStory.tsx +0 -95
  298. package/src/primitives/popover/__workshop__/TestStory.tsx +0 -97
  299. package/src/primitives/popover/__workshop__/index.ts +0 -56
  300. package/src/primitives/popover/__workshop__/portal-inheritance.tsx +0 -15
  301. package/src/primitives/popover/constants.ts +0 -20
  302. package/src/primitives/popover/floating-ui/size.ts +0 -75
  303. package/src/primitives/popover/types.ts +0 -12
  304. package/src/primitives/popover/useMiddleware.ts +0 -126
  305. package/src/primitives/radio/Radio.tsx +0 -64
  306. package/src/primitives/radio/__workshop__/Example.tsx +0 -63
  307. package/src/primitives/radio/__workshop__/Plain.tsx +0 -28
  308. package/src/primitives/radio/__workshop__/index.ts +0 -13
  309. package/src/primitives/select/Select.tsx +0 -76
  310. package/src/primitives/select/__workshop__/Plain.tsx +0 -37
  311. package/src/primitives/select/__workshop__/ReadOnly.tsx +0 -23
  312. package/src/primitives/select/__workshop__/index.ts +0 -13
  313. package/src/primitives/selectable/Selectable.tsx +0 -48
  314. package/src/primitives/selectable/__workshop__/DataProps.tsx +0 -24
  315. package/src/primitives/selectable/__workshop__/as-link.tsx +0 -13
  316. package/src/primitives/selectable/__workshop__/index.ts +0 -19
  317. package/src/primitives/skeleton/CodeSkeleton.tsx +0 -49
  318. package/src/primitives/skeleton/HeadingSkeleton.tsx +0 -48
  319. package/src/primitives/skeleton/LabelSkeleton.tsx +0 -47
  320. package/src/primitives/skeleton/Skeleton.tsx +0 -70
  321. package/src/primitives/skeleton/TextSkeleton.tsx +0 -49
  322. package/src/primitives/skeleton/__workshop__/Delay.tsx +0 -69
  323. package/src/primitives/skeleton/__workshop__/Skeleton.tsx +0 -63
  324. package/src/primitives/skeleton/__workshop__/index.ts +0 -13
  325. package/src/primitives/spinner/Spinner.tsx +0 -45
  326. package/src/primitives/spinner/SpinnerAnimatedIcon.tsx +0 -14
  327. package/src/primitives/spinner/__workshop__/Props.tsx +0 -13
  328. package/src/primitives/spinner/__workshop__/index.ts +0 -16
  329. package/src/primitives/srOnly/SrOnly.tsx +0 -33
  330. package/src/primitives/stack/Stack.tsx +0 -38
  331. package/src/primitives/stack/__workshop__/Plain.tsx +0 -30
  332. package/src/primitives/stack/__workshop__/index.ts +0 -16
  333. package/src/primitives/switch/Switch.tsx +0 -76
  334. package/src/primitives/switch/__workshop__/Example.tsx +0 -25
  335. package/src/primitives/switch/__workshop__/Props.tsx +0 -23
  336. package/src/primitives/switch/__workshop__/index.ts +0 -13
  337. package/src/primitives/text/InlineCode.tsx +0 -25
  338. package/src/primitives/text/Text.tsx +0 -68
  339. package/src/primitives/text/__workshop__/Example.tsx +0 -26
  340. package/src/primitives/text/__workshop__/OpticalAlignment.tsx +0 -27
  341. package/src/primitives/text/__workshop__/index.ts +0 -26
  342. package/src/primitives/text/__workshop__/inline-code.tsx +0 -13
  343. package/src/primitives/textArea/TextArea.tsx +0 -97
  344. package/src/primitives/textArea/__workshop__/Plain.tsx +0 -46
  345. package/src/primitives/textArea/__workshop__/index.ts +0 -16
  346. package/src/primitives/textInput/TextInput.tsx +0 -279
  347. package/src/primitives/textInput/__workshop__/ClearButton.tsx +0 -32
  348. package/src/primitives/textInput/__workshop__/CustomValidity.tsx +0 -17
  349. package/src/primitives/textInput/__workshop__/Plain.tsx +0 -102
  350. package/src/primitives/textInput/__workshop__/ReadOnly.tsx +0 -14
  351. package/src/primitives/textInput/__workshop__/States.tsx +0 -53
  352. package/src/primitives/textInput/__workshop__/Tones.tsx +0 -40
  353. package/src/primitives/textInput/__workshop__/Typed.tsx +0 -23
  354. package/src/primitives/textInput/__workshop__/index.ts +0 -46
  355. package/src/primitives/tooltip/Tooltip.test.tsx +0 -496
  356. package/src/primitives/tooltip/Tooltip.tsx +0 -546
  357. package/src/primitives/tooltip/TooltipLayer.tsx +0 -72
  358. package/src/primitives/tooltip/__workshop__/CustomPortal.tsx +0 -102
  359. package/src/primitives/tooltip/__workshop__/OverflowingBoundary.tsx +0 -74
  360. package/src/primitives/tooltip/__workshop__/Props.tsx +0 -107
  361. package/src/primitives/tooltip/__workshop__/ResizableBoundary.tsx +0 -91
  362. package/src/primitives/tooltip/__workshop__/index.ts +0 -31
  363. package/src/primitives/tooltip/constants.ts +0 -24
  364. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext.tsx +0 -13
  365. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider.tsx +0 -96
  366. package/src/primitives/tooltip/tooltipDelayGroup/types.ts +0 -7
  367. package/src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  368. package/src/root/Root.tsx +0 -93
  369. package/src/root/RootProvider.tsx +0 -37
  370. package/src/root/__workshop__/Boundary.tsx +0 -43
  371. package/src/root/__workshop__/index.ts +0 -24
  372. package/src/root/__workshop__/primitives.tsx +0 -49
  373. package/src/root/__workshop__/tone-inheritance.tsx +0 -65
  374. package/src/utils/ErrorBoundary.tsx +0 -50
  375. package/src/utils/boundaryElement/BoundaryElementContext.ts +0 -7
  376. package/src/utils/boundaryElement/BoundaryElementProvider.tsx +0 -16
  377. package/src/utils/boundaryElement/__workshop__/Plain.tsx +0 -49
  378. package/src/utils/boundaryElement/__workshop__/index.ts +0 -16
  379. package/src/utils/boundaryElement/types.ts +0 -2
  380. package/src/utils/boundaryElement/useBoundaryElement.ts +0 -12
  381. package/src/utils/elementQuery/ElementQuery.tsx +0 -75
  382. package/src/utils/elementQuery/__workshop__/CustomMedia.tsx +0 -19
  383. package/src/utils/elementQuery/__workshop__/index.ts +0 -16
  384. package/src/utils/elementQuery/__workshop__/styles.css.ts +0 -31
  385. package/src/utils/elementQuery/helpers.ts +0 -27
  386. package/src/utils/portal/Portal.test.tsx +0 -105
  387. package/src/utils/portal/Portal.tsx +0 -42
  388. package/src/utils/portal/PortalContext.ts +0 -37
  389. package/src/utils/portal/PortalProvider.tsx +0 -38
  390. package/src/utils/portal/__workshop__/Named.tsx +0 -69
  391. package/src/utils/portal/__workshop__/index.ts +0 -16
  392. package/src/utils/portal/types.ts +0 -7
  393. package/src/utils/portal/usePortal.ts +0 -30
@@ -1,54 +0,0 @@
1
- import {Card, Code, Container, Flex, Grid} from '@sanity/ui'
2
-
3
- export default function ResponsiveStory(): React.JSX.Element {
4
- return (
5
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
6
- <Container width="auto">
7
- <Grid
8
- gap={[0, 1, 2, 3, 4, 5, 6]}
9
- gridTemplateColumns={[1, 2, 3, 4, 5, 6, 7]}
10
- gridTemplateRows={[1, 2, 3, 4, 5, 6, 7]}
11
- id="responsive-grid"
12
- style={{textAlign: 'center'}}
13
- >
14
- <Card padding={[1, 2, 3]} tone="neutral">
15
- <Code>1</Code>
16
- </Card>
17
- <Card padding={[1, 2, 3]} tone="neutral">
18
- <Code>2</Code>
19
- </Card>
20
- <Card padding={[1, 2, 3]} tone="neutral">
21
- <Code>3</Code>
22
- </Card>
23
- <Card padding={[1, 2, 3]} tone="neutral">
24
- <Code>4</Code>
25
- </Card>
26
- <Card padding={[1, 2, 3]} tone="neutral">
27
- <Code>5</Code>
28
- </Card>
29
- <Card padding={[1, 2, 3]} tone="neutral">
30
- <Code>6</Code>
31
- </Card>
32
- <Card padding={[1, 2, 3]} tone="neutral">
33
- <Code>7</Code>
34
- </Card>
35
- <Card padding={[1, 2, 3]} tone="neutral">
36
- <Code>8</Code>
37
- </Card>
38
- <Card padding={[1, 2, 3]} tone="neutral">
39
- <Code>9</Code>
40
- </Card>
41
- <Card padding={[1, 2, 3]} tone="neutral">
42
- <Code>10</Code>
43
- </Card>
44
- <Card padding={[1, 2, 3]} tone="neutral">
45
- <Code>11</Code>
46
- </Card>
47
- <Card padding={[1, 2, 3]} tone="neutral">
48
- <Code>12</Code>
49
- </Card>
50
- </Grid>
51
- </Container>
52
- </Flex>
53
- )
54
- }
@@ -1,12 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/grid',
6
- title: 'Grid',
7
- stories: [
8
- {name: 'responsive', title: 'Responsive', component: lazy(() => import('./Responsive'))},
9
- ],
10
- }
11
-
12
- export default scope
@@ -1,68 +0,0 @@
1
- import {
2
- heading,
3
- HEADING_STYLE_PROP_KEYS,
4
- type HeadingStyleProps,
5
- textOverflow,
6
- type TextOverflowStyleProps,
7
- } from '@sanity/ui-css'
8
-
9
- import {_splitKeys} from '../../core/_keys'
10
- import type {ComponentType, Props} from '../../core/types'
11
-
12
- /** @public */
13
- export const DEFAULT_HEADING_ELEMENT = 'div'
14
-
15
- /** @public */
16
- export type HeadingOwnProps = HeadingStyleProps & TextOverflowStyleProps
17
-
18
- /** @public */
19
- export type HeadingElementType =
20
- | 'div'
21
- | 'h1'
22
- | 'h2'
23
- | 'h3'
24
- | 'h4'
25
- | 'h5'
26
- | 'h6'
27
- | 'label'
28
- | 'span'
29
- | ComponentType
30
-
31
- /** @public */
32
- export type HeadingProps<E extends HeadingElementType = HeadingElementType> = Props<
33
- HeadingOwnProps,
34
- E
35
- >
36
-
37
- /**
38
- * Typographic headings.
39
- *
40
- * @public
41
- */
42
- export function Heading<E extends HeadingElementType = typeof DEFAULT_HEADING_ELEMENT>(
43
- props: HeadingProps<E>,
44
- ): React.JSX.Element {
45
- const [
46
- // split style props
47
- styleProps,
48
- {
49
- as: Element = DEFAULT_HEADING_ELEMENT,
50
- children: childrenProp,
51
- textOverflow: textOverflowProp,
52
- // split DOM props
53
- ...domProps
54
- },
55
- ] = _splitKeys(props as HeadingProps<typeof DEFAULT_HEADING_ELEMENT>, HEADING_STYLE_PROP_KEYS)
56
-
57
- let children = childrenProp
58
-
59
- if (textOverflowProp) {
60
- children = <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>
61
- }
62
-
63
- return (
64
- <Element data-ui="Heading" {...domProps} className={heading(styleProps)}>
65
- {children}
66
- </Element>
67
- )
68
- }
@@ -1,27 +0,0 @@
1
- import {CropIcon} from '@sanity/icons'
2
- import {Box, FONT_HEADING_SIZE, Heading, Stack} from '@sanity/ui'
3
-
4
- import {CardWrapper} from '$workshop'
5
-
6
- export default function OpticalAlignment(): React.JSX.Element {
7
- return (
8
- <CardWrapper width={1}>
9
- <Stack gap={4}>
10
- {FONT_HEADING_SIZE.map((size) => (
11
- <Box key={size} display="flex" gap={3}>
12
- <Box flex="none" muted shadow={1}>
13
- <Heading muted size={size} weight="semibold">
14
- <CropIcon />
15
- </Heading>
16
- </Box>
17
- <Box flex={1} muted shadow={1}>
18
- <Heading muted size={size} textOverflow="ellipsis" weight="semibold">
19
- Hamburgefonstiv M
20
- </Heading>
21
- </Box>
22
- </Box>
23
- ))}
24
- </Stack>
25
- </CardWrapper>
26
- )
27
- }
@@ -1,25 +0,0 @@
1
- import {Flex, FONT_HEADING_SIZE, Heading} from '@sanity/ui'
2
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
3
-
4
- import {WORKSHOP_FONT_WEIGHT_OPTIONS, WORKSHOP_TEXT_OVERFLOW_OPTIONS} from '$workshop'
5
-
6
- export default function PlainStory(): React.JSX.Element {
7
- const muted = useBoolean('Muted', false)
8
- const size = useSelect('Size', FONT_HEADING_SIZE, 2)
9
- const textChild = useText('Text', 'Hello, world')
10
- const textOverflow = useSelect(
11
- 'Text overflow',
12
- WORKSHOP_TEXT_OVERFLOW_OPTIONS,
13
- undefined,
14
- 'Props',
15
- )
16
- const weight = useSelect('Weight', WORKSHOP_FONT_WEIGHT_OPTIONS)
17
-
18
- return (
19
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
20
- <Heading muted={muted} size={size} textOverflow={textOverflow} weight={weight}>
21
- {textChild}
22
- </Heading>
23
- </Flex>
24
- )
25
- }
@@ -1,21 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
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
- }
20
-
21
- export default scope
@@ -1,37 +0,0 @@
1
- import {inline, INLINE_STYLE_PROP_KEYS, type InlineStyleProps} from '@sanity/ui-css'
2
-
3
- import {_splitKeys} from '../../core/_keys'
4
- import type {Props} from '../../core/types'
5
- import type {BoxElementType} from '../box/Box'
6
-
7
- /** @public */
8
- export const DEFAULT_INLINE_ELEMENT = 'div'
9
-
10
- /** @public */
11
- export type InlineOwnProps = InlineStyleProps
12
-
13
- /** @public */
14
- export type InlineElementType = BoxElementType
15
-
16
- /** @public */
17
- export type InlineProps<E extends InlineElementType = InlineElementType> = Props<InlineOwnProps, E>
18
-
19
- /**
20
- * The `Inline` component is a layout utility for aligning and spacing items horizontally.
21
- *
22
- * @public
23
- */
24
- export function Inline<E extends InlineElementType = typeof DEFAULT_INLINE_ELEMENT>(
25
- props: InlineProps<E>,
26
- ): React.JSX.Element {
27
- const [
28
- styleProps,
29
- {
30
- as: Element = DEFAULT_INLINE_ELEMENT,
31
- // split DOM props
32
- ...domProps
33
- },
34
- ] = _splitKeys(props as InlineProps<typeof DEFAULT_INLINE_ELEMENT>, INLINE_STYLE_PROP_KEYS)
35
-
36
- return <Element data-ui="Inline" {...domProps} className={inline(styleProps)} />
37
- }
@@ -1,22 +0,0 @@
1
- import {Card, Flex, Inline, SPACE, Text} from '@sanity/ui'
2
- import {useAction, useSelect} from '@sanity/ui-workshop'
3
-
4
- export default function PlainStory(): React.JSX.Element {
5
- return (
6
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
7
- <Inline gap={useSelect('Gap', SPACE, 0)} onClick={useAction('onClick')}>
8
- <Card padding={1} shadow={1}>
9
- <Text size={1}>Inline item</Text>
10
- </Card>
11
-
12
- <Card padding={2} shadow={1}>
13
- <Text size={1}>Inline item</Text>
14
- </Card>
15
-
16
- <Card padding={3} shadow={1}>
17
- <Text size={1}>Inline item</Text>
18
- </Card>
19
- </Inline>
20
- </Flex>
21
- )
22
- }
@@ -1,10 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/inline',
6
- title: 'Inline',
7
- stories: [{name: 'plain', title: 'Plain', component: lazy(() => import('./Plain'))}],
8
- }
9
-
10
- export default scope
@@ -1,36 +0,0 @@
1
- import {kbd, KBD_STYLE_PROP_KEYS, type KBDStyleProps} from '@sanity/ui-css'
2
-
3
- import {_splitKeys} from '../../core/_keys'
4
- import type {ComponentType, Props} from '../../core/types'
5
-
6
- /** @public */
7
- export const DEFAULT_KBD_ELEMENT = 'kbd'
8
-
9
- /** @public */
10
- export type KBDOwnProps = KBDStyleProps
11
-
12
- /** @public */
13
- export type KBDElementType = 'kbd' | ComponentType
14
-
15
- /** @public */
16
- export type KBDProps<E extends KBDElementType = KBDElementType> = Props<KBDOwnProps, E>
17
-
18
- /**
19
- * Used to define some text as keyboard input.
20
- *
21
- * @public
22
- */
23
- export function KBD<E extends KBDElementType = typeof DEFAULT_KBD_ELEMENT>(
24
- props: KBDProps<E>,
25
- ): React.JSX.Element {
26
- const [
27
- styleProps,
28
- {
29
- as: Element = DEFAULT_KBD_ELEMENT,
30
- // split DOM props
31
- ...domProps
32
- },
33
- ] = _splitKeys(props as KBDProps<typeof DEFAULT_KBD_ELEMENT>, KBD_STYLE_PROP_KEYS)
34
-
35
- return <Element data-ui="KBD" {...domProps} className={kbd(styleProps)} />
36
- }
@@ -1,9 +0,0 @@
1
- import {Flex, KBD} from '@sanity/ui'
2
-
3
- export default function PlainStory(): React.JSX.Element {
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,10 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/kbd',
6
- title: 'KBD',
7
- stories: [{name: 'plain', title: 'Plain', component: lazy(() => import('./Plain'))}],
8
- }
9
-
10
- export default scope
@@ -1,67 +0,0 @@
1
- import {
2
- label,
3
- LABEL_STYLE_PROP_KEYS,
4
- type LabelStyleProps,
5
- textOverflow,
6
- type TextOverflowStyleProps,
7
- } from '@sanity/ui-css'
8
-
9
- import {_splitKeys} from '../../core/_keys'
10
- import type {ComponentType, Props} from '../../core/types'
11
-
12
- /** @public */
13
- export const DEFAULT_LABEL_ELEMENT = 'div'
14
-
15
- /** @public */
16
- export type LabelOwnProps = LabelStyleProps & TextOverflowStyleProps
17
-
18
- /** @public */
19
- export type LabelElementType =
20
- | 'div'
21
- | 'h1'
22
- | 'h2'
23
- | 'h3'
24
- | 'h4'
25
- | 'h5'
26
- | 'h6'
27
- | 'label'
28
- | 'li'
29
- | 'p'
30
- | 'span'
31
- | ComponentType
32
-
33
- /** @public */
34
- export type LabelProps<E extends LabelElementType = LabelElementType> = Props<LabelOwnProps, E>
35
-
36
- /**
37
- * Typographic labels.
38
- *
39
- * @public
40
- */
41
- export function Label<E extends LabelElementType = typeof DEFAULT_LABEL_ELEMENT>(
42
- props: LabelProps<E>,
43
- ): React.JSX.Element {
44
- const [
45
- // split style props
46
- styleProps,
47
- {
48
- as: Element = DEFAULT_LABEL_ELEMENT,
49
- children: childrenProp,
50
- textOverflow: textOverflowProp,
51
- // split DOM props
52
- ...domProps
53
- },
54
- ] = _splitKeys(props as LabelProps<typeof DEFAULT_LABEL_ELEMENT>, LABEL_STYLE_PROP_KEYS)
55
-
56
- let children = childrenProp
57
-
58
- if (textOverflowProp) {
59
- children = <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>
60
- }
61
-
62
- return (
63
- <Element data-ui="Label" {...domProps} className={label(styleProps)}>
64
- {children}
65
- </Element>
66
- )
67
- }
@@ -1,27 +0,0 @@
1
- import {CropIcon} from '@sanity/icons'
2
- import {Box, FONT_LABEL_SIZE, Label, Stack} from '@sanity/ui'
3
-
4
- import {CardWrapper} from '$workshop'
5
-
6
- export default function OpticalAlignment(): React.JSX.Element {
7
- return (
8
- <CardWrapper width={0}>
9
- <Stack gap={4}>
10
- {FONT_LABEL_SIZE.map((size) => (
11
- <Box key={size} display="flex" gap={2}>
12
- <Box flex="none" muted shadow={1}>
13
- <Label muted size={size}>
14
- <CropIcon />
15
- </Label>
16
- </Box>
17
- <Box flex={1} muted shadow={1}>
18
- <Label muted size={size} textOverflow="ellipsis">
19
- Hamburgefonstiv M
20
- </Label>
21
- </Box>
22
- </Box>
23
- ))}
24
- </Stack>
25
- </CardWrapper>
26
- )
27
- }
@@ -1,27 +0,0 @@
1
- import {Container, Flex, FONT_TEXT_SIZE, Label} from '@sanity/ui'
2
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
3
-
4
- import {
5
- WORKSHOP_FONT_WEIGHT_OPTIONS,
6
- WORKSHOP_TEXT_ALIGN_OPTIONS,
7
- WORKSHOP_TEXT_OVERFLOW_OPTIONS,
8
- } from '$workshop'
9
-
10
- export default function PlainStory(): React.JSX.Element {
11
- const align = useSelect('Align', WORKSHOP_TEXT_ALIGN_OPTIONS)
12
- const muted = useBoolean('Muted', false)
13
- const size = useSelect('Size', FONT_TEXT_SIZE)
14
- const textChild = useText('Text', 'Label text')
15
- const textOverflow = useSelect('Text overflow', WORKSHOP_TEXT_OVERFLOW_OPTIONS)
16
- const weight = useSelect('Weight', WORKSHOP_FONT_WEIGHT_OPTIONS)
17
-
18
- return (
19
- <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
20
- <Container width={0}>
21
- <Label align={align} muted={muted} size={size} textOverflow={textOverflow} weight={weight}>
22
- {textChild}
23
- </Label>
24
- </Container>
25
- </Flex>
26
- )
27
- }
@@ -1,21 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
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
- }
20
-
21
- export default scope
@@ -1,110 +0,0 @@
1
- import {describe, expect, it, vi} from 'vitest'
2
-
3
- import {render} from '$test/utils'
4
-
5
- import {LayerContext} from './LayerContext'
6
- import type {LayerContextValue} from './types'
7
- import {useLayer} from './useLayer'
8
-
9
- describe('primitives/layer', () => {
10
- describe('useLayer', () => {
11
- it('should get context value', async () => {
12
- const log = vi.fn()
13
-
14
- function Debug() {
15
- const rootLayer = useLayer()
16
-
17
- log(rootLayer)
18
-
19
- return <>debug</>
20
- }
21
-
22
- function Root() {
23
- const value: LayerContextValue = {
24
- version: 0.0,
25
- isTopLayer: true,
26
- level: 0,
27
- registerChild: () => () => undefined,
28
- size: 0,
29
- zIndex: 0,
30
- }
31
-
32
- return (
33
- <LayerContext value={value}>
34
- <Debug />
35
- </LayerContext>
36
- )
37
- }
38
-
39
- render(<Root />)
40
-
41
- expect(log.mock.calls[0][0].version).toBe(0.0)
42
- expect(log.mock.calls[0][0].isTopLayer).toBe(true)
43
- expect(typeof log.mock.calls[0][0].registerChild).toBe('function')
44
- expect(log.mock.calls[0][0].size).toBe(0)
45
- expect(log.mock.calls[0][0].zIndex).toBe(0)
46
- })
47
-
48
- it('should fail when no context value is provided', async () => {
49
- const log = vi.fn()
50
-
51
- function Debug() {
52
- try {
53
- useLayer()
54
- } catch (err) {
55
- log(err)
56
- }
57
-
58
- return null
59
- }
60
-
61
- function Root() {
62
- return (
63
- <LayerContext
64
- // @ts-expect-error - we want to test the error case
65
- value={undefined}
66
- >
67
- <Debug />
68
- </LayerContext>
69
- )
70
- }
71
-
72
- render(<Root />)
73
-
74
- expect(log.mock.calls[0][0].message).toEqual('useLayer(): missing context value')
75
- })
76
-
77
- it('should fail when context value is not compatible', async () => {
78
- const log = vi.fn()
79
-
80
- function Debug() {
81
- try {
82
- useLayer()
83
- } catch (err) {
84
- log(err)
85
- }
86
-
87
- return null
88
- }
89
-
90
- function Root() {
91
- // NOTE: we’re testing this because the context value may be a function in the future
92
-
93
- return (
94
- <LayerContext
95
- // @ts-expect-error - we want to test the error case
96
- value={() => ({version: 1})}
97
- >
98
- <Debug />
99
- </LayerContext>
100
- )
101
- }
102
-
103
- render(<Root />)
104
-
105
- expect(log.mock.calls[0][0].message).toEqual(
106
- 'useLayer(): the context value is not compatible',
107
- )
108
- })
109
- })
110
- })
@@ -1,35 +0,0 @@
1
- import type {ResponsiveProp} from '@sanity/ui-css'
2
-
3
- import type {Props} from '../../core/types'
4
- import type {CardElementType, CardOwnProps} from '../../primitives/card/Card'
5
- import {LayerCard} from './LayerCard'
6
- import {LayerProvider} from './LayerProvider'
7
-
8
- /** @public */
9
- export const DEFAULT_LAYER_ELEMENT = 'div'
10
-
11
- /** @public */
12
- export interface LayerOwnProps extends CardOwnProps {
13
- /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */
14
- onActivate?: (props: {activeElement: HTMLElement | null}) => void
15
- zOffset?: ResponsiveProp<number>
16
- }
17
-
18
- /** @public */
19
- export type LayerElementType = CardElementType
20
-
21
- /** @public */
22
- export type LayerProps<E extends LayerElementType = LayerElementType> = Props<LayerOwnProps, E>
23
-
24
- /** @public */
25
- export function Layer<E extends LayerElementType = typeof DEFAULT_LAYER_ELEMENT>(
26
- props: LayerProps<E>,
27
- ): React.JSX.Element {
28
- const {zOffset = 1, ...rest} = props as LayerProps<typeof DEFAULT_LAYER_ELEMENT>
29
-
30
- return (
31
- <LayerProvider zOffset={zOffset}>
32
- <LayerCard {...rest} />
33
- </LayerProvider>
34
- )
35
- }