@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,45 +0,0 @@
1
- import {type ResponsiveProp, spinner} from '@sanity/ui-css'
2
- import type {FontTextSize} from '@sanity/ui-tokens'
3
-
4
- import type {ComponentType, Props} from '../../core/types'
5
- import {Text} from '../text/Text'
6
- import {SpinnerAnimatedIcon} from './SpinnerAnimatedIcon'
7
-
8
- /** @public */
9
- export const DEFAULT_SPINNER_ELEMENT = 'div'
10
-
11
- /** @public */
12
- export type SpinnerOwnProps = {
13
- muted?: boolean
14
- size?: ResponsiveProp<FontTextSize>
15
- }
16
-
17
- /** @public */
18
- export type SpinnerElementType = 'div' | 'span' | ComponentType
19
-
20
- /** @public */
21
- export type SpinnerProps<E extends SpinnerElementType = SpinnerElementType> = Props<
22
- SpinnerOwnProps,
23
- E
24
- >
25
-
26
- /**
27
- * Indicate that something is loading for an indeterminate amount of time.
28
- *
29
- * @public
30
- */
31
- export function Spinner<E extends SpinnerElementType = typeof DEFAULT_SPINNER_ELEMENT>(
32
- props: SpinnerProps<E>,
33
- ): React.JSX.Element {
34
- const {
35
- as = DEFAULT_SPINNER_ELEMENT,
36
- className,
37
- ...rest
38
- } = props as SpinnerProps<typeof DEFAULT_SPINNER_ELEMENT>
39
-
40
- return (
41
- <Text as={as} data-ui="Spinner" {...rest} className={spinner({className})}>
42
- <SpinnerAnimatedIcon />
43
- </Text>
44
- )
45
- }
@@ -1,14 +0,0 @@
1
- import {SpinnerIcon} from '@sanity/icons'
2
- import {spinner_animatedIcon} from '@sanity/ui-css'
3
- import type {SVGProps} from 'react'
4
-
5
- /** @internal */
6
- export function SpinnerAnimatedIcon(
7
- props: Omit<SVGProps<SVGSVGElement>, 'className'>,
8
- ): React.JSX.Element {
9
- const {...rest} = props
10
-
11
- return (
12
- <SpinnerIcon data-sanity-icon="spinner-animated" {...rest} className={spinner_animatedIcon()} />
13
- )
14
- }
@@ -1,13 +0,0 @@
1
- import {Flex, FONT_TEXT_SIZE, Spinner} from '@sanity/ui'
2
- import {useBoolean, useSelect} from '@sanity/ui-workshop'
3
-
4
- export default function Props(): React.JSX.Element {
5
- const muted = useBoolean('Muted', false)
6
- const size = useSelect('Size', FONT_TEXT_SIZE, 2)
7
-
8
- return (
9
- <Flex align="center" height="fill" justify="center">
10
- <Spinner muted={muted} size={size} />
11
- </Flex>
12
- )
13
- }
@@ -1,16 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/spinner',
6
- title: 'Spinner',
7
- stories: [
8
- {
9
- name: 'props',
10
- title: 'Props',
11
- component: lazy(() => import('./Props')),
12
- },
13
- ],
14
- }
15
-
16
- export default scope
@@ -1,33 +0,0 @@
1
- import {srOnly} from '@sanity/ui-css'
2
-
3
- import type {ComponentType, Props} from '../../core/types'
4
-
5
- /** @public */
6
- export const DEFAULT_SR_ONLY_ELEMENT = 'span'
7
-
8
- /** @public */
9
- export type SrOnlyOwnProps = {} // eslint-disable-line @typescript-eslint/no-empty-object-type
10
-
11
- /** @public */
12
- export type SrOnlyElementType = 'span' | ComponentType
13
-
14
- /** @public */
15
- export type SrOnlyProps<E extends SrOnlyElementType = SrOnlyElementType> = Props<SrOnlyOwnProps, E>
16
-
17
- /** @public */
18
- export function SrOnly<E extends SrOnlyElementType = typeof DEFAULT_SR_ONLY_ELEMENT>(
19
- props: SrOnlyProps<E>,
20
- ): React.JSX.Element {
21
- const {
22
- as: Element = DEFAULT_SR_ONLY_ELEMENT,
23
- children,
24
- className,
25
- ...rest
26
- } = props as SrOnlyProps<typeof DEFAULT_SR_ONLY_ELEMENT>
27
-
28
- return (
29
- <Element data-ui="SrOnly" {...rest} aria-hidden className={srOnly({className})}>
30
- {children}
31
- </Element>
32
- )
33
- }
@@ -1,38 +0,0 @@
1
- import {stack, STACK_STYLE_PROP_KEYS, type StackStyleProps} 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_STACK_ELEMENT = 'div'
9
-
10
- /** @public */
11
- export type StackOwnProps = StackStyleProps
12
-
13
- /** @public */
14
- export type StackElementType = BoxElementType
15
-
16
- /** @public */
17
- export type StackProps<E extends StackElementType = StackElementType> = Props<StackOwnProps, E>
18
-
19
- /**
20
- * The `Stack` component is used to place elements on top of each other.
21
- *
22
- * @public
23
- */
24
- export function Stack<E extends StackElementType = typeof DEFAULT_STACK_ELEMENT>(
25
- props: StackProps<E>,
26
- ): React.JSX.Element {
27
- const [
28
- // split style props
29
- styleProps,
30
- {
31
- as: Element = DEFAULT_STACK_ELEMENT,
32
- // split DOM props
33
- ...domProps
34
- },
35
- ] = _splitKeys(props as StackProps<typeof DEFAULT_STACK_ELEMENT>, STACK_STYLE_PROP_KEYS)
36
-
37
- return <Element data-ui="Stack" {...domProps} className={stack(styleProps)} />
38
- }
@@ -1,30 +0,0 @@
1
- import {Card, Container, Flex, SPACE, Stack, Text} from '@sanity/ui'
2
- import {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
- <Container width={0}>
8
- <Stack gap={useSelect('Gap', SPACE, 0)}>
9
- <Card padding={[2, 3, 4]} shadow={1}>
10
- <Text align="center" muted>
11
- Stack item
12
- </Text>
13
- </Card>
14
-
15
- <Card padding={[2, 3, 4]} shadow={1}>
16
- <Text align="center" muted>
17
- Stack item
18
- </Text>
19
- </Card>
20
-
21
- <Card padding={[2, 3, 4]} shadow={1}>
22
- <Text align="center" muted>
23
- Stack item
24
- </Text>
25
- </Card>
26
- </Stack>
27
- </Container>
28
- </Flex>
29
- )
30
- }
@@ -1,16 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/stack',
6
- title: 'Stack',
7
- stories: [
8
- {
9
- name: 'plain',
10
- title: 'Plain',
11
- component: lazy(() => import('./Plain')),
12
- },
13
- ],
14
- }
15
-
16
- export default scope
@@ -1,76 +0,0 @@
1
- import {
2
- _switch,
3
- _switch_element,
4
- _switch_presentation,
5
- _switch_thumb,
6
- _switch_track,
7
- } from '@sanity/ui-css'
8
- import {useEffect, useImperativeHandle, useRef} from 'react'
9
-
10
- import type {ComponentType, Props} from '../../core/types'
11
-
12
- /** @public */
13
- export const DEFAULT_SWITCH_ELEMENT = 'input'
14
-
15
- /** @public */
16
- export type SwitchOwnProps = {
17
- indeterminate?: boolean
18
- }
19
-
20
- /** @public */
21
- export type SwitchElementType = 'input' | ComponentType
22
-
23
- /** @public */
24
- export type SwitchProps<E extends SwitchElementType = SwitchElementType> = Props<SwitchOwnProps, E>
25
-
26
- /**
27
- * The `Switch` component allows the user to toggle a setting on and off.
28
- *
29
- * Extends all properties of an `<input type="checkbox" />` element, except type.
30
- *
31
- * @public
32
- */
33
- export function Switch<E extends SwitchElementType = typeof DEFAULT_SWITCH_ELEMENT>(
34
- props: SwitchProps<E>,
35
- ): React.JSX.Element {
36
- const {
37
- as: Element = DEFAULT_SWITCH_ELEMENT,
38
- className,
39
- disabled,
40
- indeterminate,
41
- readOnly,
42
- ref: forwardedRef,
43
- ...rest
44
- } = props as SwitchProps<typeof DEFAULT_SWITCH_ELEMENT>
45
-
46
- const ref = useRef<HTMLInputElement | null>(null)
47
-
48
- useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(
49
- forwardedRef,
50
- () => ref.current,
51
- )
52
-
53
- useEffect(() => {
54
- if (ref.current) {
55
- // Set the indeterminate state
56
- ref.current.indeterminate = indeterminate || false
57
- }
58
- }, [indeterminate])
59
-
60
- return (
61
- <span className={_switch({className})} data-ui="Switch">
62
- <Element
63
- {...rest}
64
- ref={ref}
65
- className={_switch_element()}
66
- data-read-only={!disabled && readOnly ? '' : undefined}
67
- disabled={disabled || readOnly}
68
- type="checkbox"
69
- />
70
- <span aria-hidden className={_switch_presentation()}>
71
- <span className={_switch_track()} />
72
- <span className={_switch_thumb()} />
73
- </span>
74
- </span>
75
- )
76
- }
@@ -1,25 +0,0 @@
1
- import {Box, Flex, Switch, Text} from '@sanity/ui'
2
- import {useCallback, useState} from 'react'
3
-
4
- import {CardWrapper} from '$workshop'
5
-
6
- export default function ExampleStory(): React.JSX.Element {
7
- const [checked, setChecked] = useState<boolean | undefined>(undefined)
8
- const indeterminate = checked === undefined
9
- const handleChange = useCallback((event: React.FormEvent<HTMLInputElement>) => {
10
- setChecked(event.currentTarget.checked)
11
- }, [])
12
-
13
- return (
14
- <CardWrapper alignItems="center" display="flex" justifyContent="center">
15
- <Flex align="center" as="label">
16
- <Switch checked={checked || false} indeterminate={indeterminate} onChange={handleChange} />
17
- <Box marginLeft={3}>
18
- <Text size={1} weight="medium">
19
- Label
20
- </Text>
21
- </Box>
22
- </Flex>
23
- </CardWrapper>
24
- )
25
- }
@@ -1,23 +0,0 @@
1
- import {Switch} from '@sanity/ui'
2
- import {useBoolean} from '@sanity/ui-workshop'
3
- import {useCallback} from 'react'
4
-
5
- import {CardWrapper} from '$workshop'
6
-
7
- export default function PropsStory(): React.JSX.Element {
8
- const checked = useBoolean('Checked', false)
9
- const indeterminate = useBoolean('Indeterminate', false)
10
- const readOnly = useBoolean('Read only', false)
11
- const handleChange = useCallback(() => undefined, [])
12
-
13
- return (
14
- <CardWrapper alignItems="center" display="flex" justifyContent="center">
15
- <Switch
16
- checked={checked}
17
- indeterminate={indeterminate}
18
- readOnly={readOnly}
19
- onChange={handleChange}
20
- />
21
- </CardWrapper>
22
- )
23
- }
@@ -1,13 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/switch',
6
- title: 'Switch',
7
- stories: [
8
- {name: 'props', title: 'Props', component: lazy(() => import('./Props'))},
9
- {name: 'example', title: 'Example', component: lazy(() => import('./Example'))},
10
- ],
11
- }
12
-
13
- export default scope
@@ -1,25 +0,0 @@
1
- import {Suspense} from 'react'
2
-
3
- import {LazySyntax} from '../_syntax/LazySyntax'
4
-
5
- /** @public */
6
- export const DEFAULT_INLINE_CODE_ELEMENT = 'code'
7
-
8
- /** @public */
9
- export interface InlineCodeProps {
10
- children: React.ReactNode
11
- /** Language to use for syntax highlighting. */
12
- language?: string
13
- }
14
-
15
- /** @public */
16
- export function InlineCode(props: InlineCodeProps): React.JSX.Element {
17
- const {children, language: languageProp} = props
18
- const language = typeof languageProp === 'string' ? languageProp : undefined
19
-
20
- return (
21
- <Suspense fallback={<code>{children}</code>}>
22
- <LazySyntax language={language} value={children} />
23
- </Suspense>
24
- )
25
- }
@@ -1,68 +0,0 @@
1
- import {
2
- text,
3
- TEXT_STYLE_PROP_KEYS,
4
- textOverflow,
5
- type TextOverflowStyleProps,
6
- type TextStyleProps,
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_TEXT_ELEMENT = 'div'
14
-
15
- /** @public */
16
- export type TextOwnProps = TextStyleProps & TextOverflowStyleProps
17
-
18
- /** @public */
19
- export type TextElementType =
20
- | 'div'
21
- | 'h1'
22
- | 'h2'
23
- | 'h3'
24
- | 'h4'
25
- | 'h5'
26
- | 'h6'
27
- | 'label'
28
- | 'li'
29
- | 'p'
30
- | 'span'
31
- | 'summary'
32
- | 'time'
33
- | ComponentType
34
-
35
- /** @public */
36
- export type TextProps<E extends TextElementType = TextElementType> = Props<TextOwnProps, E>
37
-
38
- /**
39
- * The `Text` component is an agile, themed typographic element.
40
- *
41
- * @public
42
- */
43
- export function Text<E extends TextElementType = typeof DEFAULT_TEXT_ELEMENT>(
44
- props: TextProps<E>,
45
- ): React.JSX.Element {
46
- const [
47
- styleProps,
48
- {
49
- as: Element = DEFAULT_TEXT_ELEMENT,
50
- children: childrenProp,
51
- textOverflow: textOverflowProp,
52
- // split DOM props
53
- ...domProps
54
- },
55
- ] = _splitKeys(props as TextProps<typeof DEFAULT_TEXT_ELEMENT>, TEXT_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="Text" {...domProps} className={text(styleProps)}>
65
- {children}
66
- </Element>
67
- )
68
- }
@@ -1,26 +0,0 @@
1
- import {FONT_TEXT_SIZE, Text} from '@sanity/ui'
2
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
3
-
4
- import {
5
- CardWrapper,
6
- WORKSHOP_TEXT_ALIGN_OPTIONS,
7
- WORKSHOP_TEXT_OVERFLOW_OPTIONS,
8
- WORKSHOP_TEXT_WEIGHT_OPTIONS,
9
- } from '$workshop'
10
-
11
- export default function TextStory(): React.JSX.Element {
12
- const align = useSelect('Align', WORKSHOP_TEXT_ALIGN_OPTIONS)
13
- const muted = useBoolean('Muted', false)
14
- const size = useSelect('Size', FONT_TEXT_SIZE, 2)
15
- const text = useText('Text', 'Hello, world')
16
- const textOverflow = useSelect('Text overflow', WORKSHOP_TEXT_OVERFLOW_OPTIONS)
17
- const weight = useSelect('Weight', WORKSHOP_TEXT_WEIGHT_OPTIONS)
18
-
19
- return (
20
- <CardWrapper>
21
- <Text align={align} muted={muted} size={size} textOverflow={textOverflow} weight={weight}>
22
- {text}
23
- </Text>
24
- </CardWrapper>
25
- )
26
- }
@@ -1,27 +0,0 @@
1
- import {CropIcon} from '@sanity/icons'
2
- import {Box, FONT_TEXT_SIZE, Stack, Text} 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_TEXT_SIZE.map((size) => (
11
- <Box key={size} display="flex" gap={2}>
12
- <Box flex="none" muted shadow={1}>
13
- <Text muted size={size}>
14
- <CropIcon />
15
- </Text>
16
- </Box>
17
- <Box flex={1} muted shadow={1}>
18
- <Text muted size={size} textOverflow="ellipsis">
19
- Hamburgefonstiv M
20
- </Text>
21
- </Box>
22
- </Box>
23
- ))}
24
- </Stack>
25
- </CardWrapper>
26
- )
27
- }
@@ -1,26 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/text',
6
- title: 'Text',
7
- stories: [
8
- {
9
- name: 'props',
10
- title: 'Props',
11
- component: lazy(() => import('./Example')),
12
- },
13
- {
14
- name: 'optical-alignment',
15
- title: 'Optical alignment',
16
- component: lazy(() => import('./OpticalAlignment')),
17
- },
18
- {
19
- name: 'inline-code',
20
- title: 'Inline code',
21
- component: lazy(() => import('./inline-code')),
22
- },
23
- ],
24
- }
25
-
26
- export default scope
@@ -1,13 +0,0 @@
1
- import {InlineCode, Text} from '@sanity/ui'
2
-
3
- import {CardWrapper} from '$workshop'
4
-
5
- export default function InlineCodeStory() {
6
- return (
7
- <CardWrapper pattern="halftone" width={0}>
8
- <Text align="center" size={1}>
9
- Use the <InlineCode language="jsx">{`<Box>`}</InlineCode> component to build layouts.
10
- </Text>
11
- </CardWrapper>
12
- )
13
- }
@@ -1,97 +0,0 @@
1
- import {
2
- textArea,
3
- textArea_element,
4
- textArea_presentation,
5
- type TextAreaStyleProps,
6
- } from '@sanity/ui-css'
7
- import {useImperativeHandle, useRef} from 'react'
8
-
9
- import type {ComponentType, Props} from '../../core/types'
10
- import {useCustomValidity} from '../../hooks/useCustomValidity'
11
-
12
- /** @public */
13
- export const DEFAULT_TEXT_AREA_ELEMENT = 'textarea'
14
-
15
- /** @public */
16
- export type TextAreaOwnProps = TextAreaStyleProps & {
17
- /**
18
- * @beta
19
- */
20
- __unstable_disableFocusRing?: boolean
21
- customValidity?: string
22
- }
23
-
24
- /** @public */
25
- export type TextAreaElementType = 'textarea' | ComponentType
26
-
27
- /** @public */
28
- export type TextAreaProps<E extends TextAreaElementType = TextAreaElementType> = Props<
29
- TextAreaOwnProps,
30
- E
31
- >
32
-
33
- /**
34
- * A multiline text input.
35
- *
36
- * @public
37
- */
38
- export function TextArea<E extends TextAreaElementType = typeof DEFAULT_TEXT_AREA_ELEMENT>(
39
- props: TextAreaProps<E>,
40
- ): React.JSX.Element {
41
- const {
42
- __unstable_disableFocusRing,
43
- as: Element = DEFAULT_TEXT_AREA_ELEMENT,
44
- border = true,
45
- className,
46
- customValidity,
47
- disabled = false,
48
- flex,
49
- fontSize = 2,
50
- fontWeight,
51
- gap = 3,
52
- padding = 3,
53
- radius = 2,
54
- readOnly,
55
- ref: forwardedRef,
56
- width,
57
- ...rest
58
- } = props as TextAreaProps<typeof DEFAULT_TEXT_AREA_ELEMENT>
59
-
60
- const ref = useRef<HTMLTextAreaElement | null>(null)
61
-
62
- useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(
63
- forwardedRef,
64
- () => ref.current,
65
- )
66
-
67
- useCustomValidity(ref, customValidity)
68
-
69
- return (
70
- <span
71
- className={textArea({
72
- className,
73
- border,
74
- flex,
75
- fontSize,
76
- fontWeight,
77
- gap,
78
- padding,
79
- radius,
80
- width,
81
- })}
82
- data-ui="TextArea"
83
- >
84
- <Element
85
- {...rest}
86
- ref={ref}
87
- className={textArea_element()}
88
- data-invalid={customValidity ? '' : undefined}
89
- data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}
90
- data-read-only={!disabled && readOnly ? '' : undefined}
91
- disabled={disabled}
92
- readOnly={readOnly}
93
- />
94
- <span className={textArea_presentation()} />
95
- </span>
96
- )
97
- }