@sanity/ui 3.1.13 → 4.0.0-beta.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 (957) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -9
  3. package/dist/_chunks-es/Syntax.js +23 -0
  4. package/dist/_chunks-es/Syntax.js.map +1 -0
  5. package/dist/css/index.css +1 -0
  6. package/dist/css.d.ts +11 -0
  7. package/dist/css.js +7 -0
  8. package/dist/css.js.map +1 -0
  9. package/dist/index.d.ts +1352 -1848
  10. package/dist/index.js +4621 -1827
  11. package/dist/index.js.map +1 -1
  12. package/dist/tokens.d.ts +4 -0
  13. package/dist/tokens.js +2 -0
  14. package/dist/tokens.js.map +1 -0
  15. package/exports/css/index.css +1 -0
  16. package/exports/css.ts +2 -0
  17. package/exports/index.ts +117 -1
  18. package/exports/tokens.ts +2 -0
  19. package/package.json +86 -172
  20. package/src/components/autocomplete/Autocomplete.tsx +665 -0
  21. package/src/components/autocomplete/AutocompleteOption.tsx +42 -0
  22. package/src/components/autocomplete/__workshop__/Async.tsx +162 -0
  23. package/src/components/autocomplete/__workshop__/ConstrainedHeight.tsx +121 -0
  24. package/src/components/autocomplete/__workshop__/Custom.tsx +91 -0
  25. package/src/components/autocomplete/__workshop__/Example.tsx +71 -0
  26. package/src/components/autocomplete/__workshop__/FocusAndBlur.tsx +39 -0
  27. package/src/components/autocomplete/__workshop__/Fullscreen.tsx +307 -0
  28. package/src/components/autocomplete/__workshop__/index.ts +41 -0
  29. package/src/components/autocomplete/__workshop__/mock/apiStore.ts +49 -0
  30. package/src/components/autocomplete/__workshop__/mock/countries.ts +245 -0
  31. package/src/components/autocomplete/autocompleteReducer.ts +47 -0
  32. package/src/components/autocomplete/constants.ts +28 -0
  33. package/src/components/autocomplete/types.ts +103 -0
  34. package/src/components/breadcrumbs/Breadcrumbs.tsx +163 -0
  35. package/src/components/breadcrumbs/__workshop__/Example.tsx +49 -0
  36. package/src/components/breadcrumbs/__workshop__/index.ts +16 -0
  37. package/src/components/dialog/Dialog.tsx +230 -0
  38. package/src/components/dialog/DialogCard.tsx +233 -0
  39. package/src/components/dialog/DialogContext.ts +21 -0
  40. package/src/components/dialog/DialogProvider.tsx +34 -0
  41. package/src/components/dialog/__workshop__/Activate.tsx +141 -0
  42. package/src/components/dialog/__workshop__/AutoFocus.tsx +29 -0
  43. package/src/components/dialog/__workshop__/Layering.tsx +41 -0
  44. package/src/components/dialog/__workshop__/Nested.tsx +71 -0
  45. package/src/components/dialog/__workshop__/OnScroll.tsx +51 -0
  46. package/src/components/dialog/__workshop__/Panes.tsx +75 -0
  47. package/src/components/dialog/__workshop__/Position.tsx +30 -0
  48. package/src/components/dialog/__workshop__/Props.tsx +84 -0
  49. package/src/components/dialog/__workshop__/Provider.tsx +11 -0
  50. package/src/components/dialog/__workshop__/Wrapped.tsx +76 -0
  51. package/src/components/dialog/__workshop__/index.ts +21 -0
  52. package/src/components/dialog/isTargetWithinScope.ts +14 -0
  53. package/src/components/dialog/types.ts +2 -0
  54. package/src/components/dialog/useDialog.ts +11 -0
  55. package/src/components/hotkeys/Hotkeys.tsx +70 -0
  56. package/src/components/hotkeys/__workshop__/Plain.tsx +9 -0
  57. package/src/components/hotkeys/__workshop__/index.ts +16 -0
  58. package/src/components/menu/Menu.test.tsx +125 -0
  59. package/src/components/menu/Menu.tsx +174 -0
  60. package/src/components/menu/MenuButton.tsx +231 -0
  61. package/src/components/menu/MenuContext.ts +19 -0
  62. package/src/components/menu/MenuDivider.tsx +32 -0
  63. package/src/components/menu/MenuGroup.tsx +240 -0
  64. package/src/components/menu/MenuItem.tsx +153 -0
  65. package/src/components/menu/__workshop__/AsComponent.tsx +45 -0
  66. package/src/components/menu/__workshop__/AvatarMenu.tsx +36 -0
  67. package/src/components/menu/__workshop__/ClosableMenuButton.tsx +47 -0
  68. package/src/components/menu/__workshop__/ConstrainedInBoundary.tsx +133 -0
  69. package/src/components/menu/__workshop__/CustomMenuItem.tsx +47 -0
  70. package/src/components/menu/__workshop__/CustomSelectedState.tsx +35 -0
  71. package/src/components/menu/__workshop__/DataProps.tsx +28 -0
  72. package/src/components/menu/__workshop__/DisableFocusOnClose.tsx +40 -0
  73. package/src/components/menu/__workshop__/Groups.tsx +164 -0
  74. package/src/components/menu/__workshop__/MenuButton.tsx +79 -0
  75. package/src/components/menu/__workshop__/MenuGroupRight.tsx +73 -0
  76. package/src/components/menu/__workshop__/NestedMenu.tsx +22 -0
  77. package/src/components/menu/__workshop__/OnCloseMenuButton.tsx +50 -0
  78. package/src/components/menu/__workshop__/SelectedItem.tsx +69 -0
  79. package/src/components/menu/__workshop__/ShouldFocus.tsx +42 -0
  80. package/src/components/menu/__workshop__/Tones.tsx +20 -0
  81. package/src/components/menu/__workshop__/index.ts +91 -0
  82. package/src/components/menu/helpers.ts +82 -0
  83. package/src/components/menu/useMenu.ts +21 -0
  84. package/src/components/menu/useMenuController.ts +245 -0
  85. package/src/components/tab/Tab.tsx +135 -0
  86. package/src/components/tab/TabList.tsx +157 -0
  87. package/src/components/tab/TabListContext.ts +10 -0
  88. package/src/components/tab/TabPanel.tsx +94 -0
  89. package/src/components/tab/__workshop__/Example.tsx +135 -0
  90. package/src/components/tab/__workshop__/index.ts +16 -0
  91. package/src/components/tab/types.ts +11 -0
  92. package/src/components/toast/Toast.test.tsx +103 -0
  93. package/src/components/toast/Toast.tsx +191 -0
  94. package/src/components/toast/ToastContext.ts +7 -0
  95. package/src/components/toast/ToastLayer.tsx +54 -0
  96. package/src/components/toast/ToastProvider.tsx +127 -0
  97. package/src/components/toast/__workshop__/Hook.tsx +71 -0
  98. package/src/components/toast/__workshop__/Toast.tsx +26 -0
  99. package/src/components/toast/__workshop__/index.ts +21 -0
  100. package/src/components/toast/types.ts +24 -0
  101. package/src/components/toast/useToast.ts +23 -0
  102. package/src/components/tree/Tree.tsx +248 -0
  103. package/src/components/tree/TreeContext.ts +10 -0
  104. package/src/components/tree/TreeGroup.tsx +46 -0
  105. package/src/components/tree/TreeItem.tsx +236 -0
  106. package/src/components/tree/__workshop__/Basic.tsx +109 -0
  107. package/src/components/tree/__workshop__/TabFromElement.tsx +84 -0
  108. package/src/components/tree/__workshop__/basic.perf.ts +19 -0
  109. package/src/components/tree/__workshop__/index.ts +23 -0
  110. package/src/components/tree/helpers.ts +105 -0
  111. package/src/components/tree/types.ts +24 -0
  112. package/src/components/tree/useTree.ts +17 -0
  113. package/src/components/virtualList/VirtualList.tsx +254 -0
  114. package/src/components/virtualList/__workshop__/ChangingProps.tsx +41 -0
  115. package/src/components/virtualList/__workshop__/ElementScroll.tsx +43 -0
  116. package/src/components/virtualList/__workshop__/InfiniteList.tsx +40 -0
  117. package/src/components/virtualList/__workshop__/WindowScrolll.tsx +23 -0
  118. package/src/components/virtualList/__workshop__/index.ts +31 -0
  119. package/src/core/_keys.ts +26 -0
  120. package/src/core/constants.ts +4 -16
  121. package/src/core/getElementRef.ts +29 -0
  122. package/src/core/helpers/animation.ts +4 -5
  123. package/src/core/helpers/focus.ts +0 -8
  124. package/src/core/helpers/props.ts +51 -0
  125. package/src/core/lib/createGlobalScopedContext.ts +7 -4
  126. package/src/core/lib/globalScope.ts +1 -1
  127. package/src/core/lib/isArray.ts +3 -0
  128. package/src/core/types.ts +57 -0
  129. package/src/hooks/useClickOutsideEvent.test.tsx +114 -0
  130. package/src/hooks/useClickOutsideEvent.ts +66 -0
  131. package/src/hooks/useElementSize.ts +19 -0
  132. package/src/hooks/useGlobalKeyDown.ts +23 -0
  133. package/src/hooks/useMatchMedia.ts +28 -0
  134. package/src/hooks/useMediaIndex/__workshop__/Test.tsx +14 -0
  135. package/src/hooks/useMediaIndex/__workshop__/index.ts +16 -0
  136. package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +21 -0
  137. package/src/hooks/useMediaIndex/useMediaIndex.ts +111 -0
  138. package/src/hooks/usePrefersDark.hydration.test.tsx +56 -0
  139. package/src/hooks/usePrefersDark.test.tsx +20 -0
  140. package/src/hooks/usePrefersDark.ts +16 -0
  141. package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +56 -0
  142. package/src/hooks/usePrefersReducedMotion.test.tsx +20 -0
  143. package/src/hooks/usePrefersReducedMotion.ts +16 -0
  144. package/src/hooks/useResponsiveProp.ts +14 -0
  145. package/src/hooks/useUnique.ts +54 -0
  146. package/src/middleware/origin.ts +47 -0
  147. package/src/observers/elementSize.ts +114 -0
  148. package/src/primitives/_syntax/LazySyntax.tsx +4 -0
  149. package/src/primitives/_syntax/Syntax.tsx +26 -0
  150. package/src/primitives/avatar/Avatar.tsx +145 -0
  151. package/src/primitives/avatar/AvatarCounter.tsx +69 -0
  152. package/src/primitives/avatar/AvatarStack.tsx +77 -0
  153. package/src/primitives/avatar/__workshop__/AsButton.tsx +13 -0
  154. package/src/primitives/avatar/__workshop__/PropsStory.tsx +25 -0
  155. package/src/primitives/avatar/__workshop__/Stack.tsx +28 -0
  156. package/src/primitives/avatar/__workshop__/WithinButton.tsx +51 -0
  157. package/src/primitives/avatar/__workshop__/WithinMenuItem.tsx +52 -0
  158. package/src/primitives/avatar/__workshop__/index.ts +36 -0
  159. package/src/primitives/avatar/types.ts +2 -0
  160. package/src/primitives/badge/Badge.test.tsx +16 -0
  161. package/src/primitives/badge/Badge.tsx +53 -0
  162. package/src/primitives/badge/__workshop__/Props.tsx +28 -0
  163. package/src/primitives/badge/__workshop__/Tones.tsx +16 -0
  164. package/src/primitives/badge/__workshop__/index.ts +26 -0
  165. package/src/primitives/badge/__workshop__/within-button.tsx +36 -0
  166. package/src/primitives/box/Box.tsx +73 -0
  167. package/src/primitives/box/__workshop__/Props.tsx +26 -0
  168. package/src/primitives/box/__workshop__/Responsive.tsx +20 -0
  169. package/src/primitives/box/__workshop__/index.ts +21 -0
  170. package/src/primitives/button/Button.test.tsx +30 -0
  171. package/src/primitives/button/Button.tsx +145 -0
  172. package/src/primitives/button/__workshop__/Custom.tsx +29 -0
  173. package/src/primitives/button/__workshop__/CustomIcons.tsx +38 -0
  174. package/src/primitives/button/__workshop__/DataProps.tsx +19 -0
  175. package/src/primitives/button/__workshop__/Disabled.tsx +43 -0
  176. package/src/primitives/button/__workshop__/MixedChildren.tsx +12 -0
  177. package/src/primitives/button/__workshop__/Props.tsx +60 -0
  178. package/src/primitives/button/__workshop__/Stacked.tsx +51 -0
  179. package/src/primitives/button/__workshop__/Styled1.css.ts +7 -0
  180. package/src/primitives/button/__workshop__/Styled1.tsx +11 -0
  181. package/src/primitives/button/__workshop__/TextOverflow.tsx +17 -0
  182. package/src/primitives/button/__workshop__/UploadButton.tsx +28 -0
  183. package/src/primitives/button/__workshop__/index.ts +61 -0
  184. package/src/primitives/button/types.ts +2 -0
  185. package/src/primitives/card/Card.tsx +124 -0
  186. package/src/primitives/card/CardContext.ts +10 -0
  187. package/src/primitives/card/CardInternalContext.ts +10 -0
  188. package/src/primitives/card/CardInternalProvider.tsx +15 -0
  189. package/src/primitives/card/CardProvider.tsx +16 -0
  190. package/src/primitives/card/__workshop__/AsButton.tsx +104 -0
  191. package/src/primitives/card/__workshop__/AsComponent.tsx +25 -0
  192. package/src/primitives/card/__workshop__/Checkered.tsx +26 -0
  193. package/src/primitives/card/__workshop__/DataProps.tsx +25 -0
  194. package/src/primitives/card/__workshop__/Interactive.tsx +29 -0
  195. package/src/primitives/card/__workshop__/ListNavigation.tsx +78 -0
  196. package/src/primitives/card/__workshop__/Props.tsx +49 -0
  197. package/src/primitives/card/__workshop__/Selected.tsx +62 -0
  198. package/src/primitives/card/__workshop__/Styled.tsx +11 -0
  199. package/src/primitives/card/__workshop__/Tones.tsx +27 -0
  200. package/src/primitives/card/__workshop__/index.ts +21 -0
  201. package/src/primitives/card/types.ts +21 -0
  202. package/src/primitives/card/useCard.ts +20 -0
  203. package/src/primitives/checkbox/Checkbox.tsx +80 -0
  204. package/src/primitives/checkbox/__workshop__/Example.tsx +25 -0
  205. package/src/primitives/checkbox/__workshop__/Props.tsx +35 -0
  206. package/src/primitives/checkbox/__workshop__/ReadOnly.tsx +16 -0
  207. package/src/primitives/checkbox/__workshop__/Tones.tsx +27 -0
  208. package/src/primitives/checkbox/__workshop__/index.ts +15 -0
  209. package/src/primitives/code/Code.tsx +47 -0
  210. package/src/primitives/code/__workshop__/OpticalAlignment.tsx +26 -0
  211. package/src/primitives/code/__workshop__/Props.tsx +19 -0
  212. package/src/primitives/code/__workshop__/index.ts +21 -0
  213. package/src/primitives/container/Container.tsx +43 -0
  214. package/src/primitives/container/__workshop__/Example.tsx +17 -0
  215. package/src/primitives/container/__workshop__/index.ts +16 -0
  216. package/src/primitives/flex/Flex.tsx +38 -0
  217. package/src/primitives/flex/__workshop__/Example.tsx +26 -0
  218. package/src/primitives/flex/__workshop__/Gap.tsx +25 -0
  219. package/src/primitives/flex/__workshop__/index.ts +13 -0
  220. package/src/primitives/flex/__workshop__/styles.css.ts +12 -0
  221. package/src/primitives/grid/Grid.tsx +38 -0
  222. package/src/primitives/grid/__workshop__/Responsive.tsx +54 -0
  223. package/src/primitives/grid/__workshop__/index.ts +12 -0
  224. package/src/primitives/heading/Heading.tsx +68 -0
  225. package/src/primitives/heading/__workshop__/OpticalAlignment.tsx +28 -0
  226. package/src/primitives/heading/__workshop__/Plain.tsx +26 -0
  227. package/src/primitives/heading/__workshop__/index.ts +21 -0
  228. package/src/primitives/inline/Inline.tsx +37 -0
  229. package/src/primitives/inline/__workshop__/Plain.tsx +23 -0
  230. package/src/primitives/inline/__workshop__/index.ts +10 -0
  231. package/src/primitives/kbd/Kbd.tsx +36 -0
  232. package/src/primitives/kbd/__workshop__/Plain.tsx +9 -0
  233. package/src/primitives/kbd/__workshop__/index.ts +10 -0
  234. package/src/primitives/label/Label.tsx +67 -0
  235. package/src/primitives/label/__workshop__/OpticalAlignment.tsx +28 -0
  236. package/src/primitives/label/__workshop__/Plain.tsx +28 -0
  237. package/src/primitives/label/__workshop__/index.ts +21 -0
  238. package/src/primitives/layer/Layer.test.tsx +110 -0
  239. package/src/primitives/layer/Layer.tsx +35 -0
  240. package/src/primitives/layer/LayerCard.tsx +90 -0
  241. package/src/primitives/layer/LayerContext.ts +7 -0
  242. package/src/primitives/layer/LayerProvider.tsx +106 -0
  243. package/src/primitives/layer/__workshop__/MultipleRoots.tsx +49 -0
  244. package/src/primitives/layer/__workshop__/Nested.tsx +107 -0
  245. package/src/primitives/layer/__workshop__/ResponsiveZOffset.tsx +17 -0
  246. package/src/primitives/layer/__workshop__/_debug.tsx +17 -0
  247. package/src/primitives/layer/__workshop__/index.ts +26 -0
  248. package/src/primitives/layer/getLayerContext.test.ts +32 -0
  249. package/src/primitives/layer/getLayerContext.ts +21 -0
  250. package/src/primitives/layer/useLayer.ts +24 -0
  251. package/src/primitives/popover/Popover.tsx +291 -0
  252. package/src/primitives/popover/PopoverLayer.tsx +101 -0
  253. package/src/primitives/popover/__workshop__/AlignedStory.tsx +76 -0
  254. package/src/primitives/popover/__workshop__/MarginsStory.tsx +31 -0
  255. package/src/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +32 -0
  256. package/src/primitives/popover/__workshop__/OpenOnMountStory.tsx +11 -0
  257. package/src/primitives/popover/__workshop__/PlainStory.tsx +68 -0
  258. package/src/primitives/popover/__workshop__/RecursiveStory.tsx +71 -0
  259. package/src/primitives/popover/__workshop__/SidePanelStory.tsx +94 -0
  260. package/src/primitives/popover/__workshop__/TestStory.tsx +97 -0
  261. package/src/primitives/popover/__workshop__/index.ts +56 -0
  262. package/src/primitives/popover/__workshop__/portal-inheritance.tsx +15 -0
  263. package/src/primitives/popover/constants.ts +20 -0
  264. package/src/primitives/popover/floating-ui/size.ts +75 -0
  265. package/src/primitives/popover/types.ts +12 -0
  266. package/src/primitives/popover/useMiddleware.ts +126 -0
  267. package/src/primitives/radio/Radio.tsx +64 -0
  268. package/src/primitives/radio/__workshop__/Example.tsx +63 -0
  269. package/src/primitives/radio/__workshop__/Plain.tsx +28 -0
  270. package/src/primitives/radio/__workshop__/index.ts +13 -0
  271. package/src/primitives/select/Select.tsx +76 -0
  272. package/src/primitives/select/__workshop__/Plain.tsx +38 -0
  273. package/src/primitives/select/__workshop__/ReadOnly.tsx +23 -0
  274. package/src/primitives/select/__workshop__/index.ts +13 -0
  275. package/src/primitives/selectable/Selectable.tsx +48 -0
  276. package/src/primitives/selectable/__workshop__/DataProps.tsx +24 -0
  277. package/src/primitives/selectable/__workshop__/as-link.tsx +13 -0
  278. package/src/primitives/selectable/__workshop__/index.ts +19 -0
  279. package/src/primitives/skeleton/CodeSkeleton.tsx +49 -0
  280. package/src/primitives/skeleton/HeadingSkeleton.tsx +48 -0
  281. package/src/primitives/skeleton/LabelSkeleton.tsx +47 -0
  282. package/src/primitives/skeleton/Skeleton.tsx +70 -0
  283. package/src/primitives/skeleton/TextSkeleton.tsx +49 -0
  284. package/src/primitives/skeleton/__workshop__/Delay.tsx +69 -0
  285. package/src/primitives/skeleton/__workshop__/Skeleton.tsx +63 -0
  286. package/src/primitives/skeleton/__workshop__/index.ts +13 -0
  287. package/src/primitives/spinner/Spinner.tsx +45 -0
  288. package/src/primitives/spinner/SpinnerAnimatedIcon.tsx +14 -0
  289. package/src/primitives/spinner/__workshop__/Props.tsx +14 -0
  290. package/src/primitives/spinner/__workshop__/index.ts +16 -0
  291. package/src/primitives/srOnly/SrOnly.tsx +33 -0
  292. package/src/primitives/stack/Stack.tsx +38 -0
  293. package/src/primitives/stack/__workshop__/Plain.tsx +31 -0
  294. package/src/primitives/stack/__workshop__/index.ts +16 -0
  295. package/src/primitives/switch/Switch.tsx +76 -0
  296. package/src/primitives/switch/__workshop__/Example.tsx +25 -0
  297. package/src/primitives/switch/__workshop__/Props.tsx +23 -0
  298. package/src/primitives/switch/__workshop__/index.ts +13 -0
  299. package/src/primitives/text/InlineCode.tsx +25 -0
  300. package/src/primitives/text/Text.tsx +68 -0
  301. package/src/primitives/text/__workshop__/Example.tsx +27 -0
  302. package/src/primitives/text/__workshop__/OpticalAlignment.tsx +28 -0
  303. package/src/primitives/text/__workshop__/index.ts +26 -0
  304. package/src/primitives/text/__workshop__/inline-code.tsx +13 -0
  305. package/src/primitives/textArea/TextArea.tsx +97 -0
  306. package/src/primitives/textArea/__workshop__/Plain.tsx +47 -0
  307. package/src/primitives/textArea/__workshop__/index.ts +16 -0
  308. package/src/primitives/textInput/TextInput.tsx +279 -0
  309. package/src/primitives/textInput/__workshop__/ClearButton.tsx +32 -0
  310. package/src/primitives/textInput/__workshop__/CustomValidity.tsx +17 -0
  311. package/src/primitives/textInput/__workshop__/Plain.tsx +103 -0
  312. package/src/primitives/textInput/__workshop__/ReadOnly.tsx +14 -0
  313. package/src/primitives/textInput/__workshop__/States.tsx +53 -0
  314. package/src/primitives/textInput/__workshop__/Tones.tsx +41 -0
  315. package/src/primitives/textInput/__workshop__/Typed.tsx +23 -0
  316. package/src/primitives/textInput/__workshop__/index.ts +46 -0
  317. package/src/primitives/tooltip/Tooltip.test.tsx +496 -0
  318. package/src/primitives/tooltip/Tooltip.tsx +546 -0
  319. package/src/primitives/tooltip/TooltipLayer.tsx +72 -0
  320. package/src/primitives/tooltip/__workshop__/CustomPortal.tsx +102 -0
  321. package/src/primitives/tooltip/__workshop__/OverflowingBoundary.tsx +74 -0
  322. package/src/primitives/tooltip/__workshop__/Props.tsx +99 -0
  323. package/src/primitives/tooltip/__workshop__/ResizableBoundary.tsx +91 -0
  324. package/src/primitives/tooltip/__workshop__/index.ts +31 -0
  325. package/src/primitives/tooltip/constants.ts +24 -0
  326. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext.tsx +13 -0
  327. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider.tsx +96 -0
  328. package/src/primitives/tooltip/tooltipDelayGroup/types.ts +7 -0
  329. package/src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +13 -0
  330. package/src/root/Root.tsx +93 -0
  331. package/src/root/RootProvider.tsx +37 -0
  332. package/src/root/__workshop__/Boundary.tsx +43 -0
  333. package/src/root/__workshop__/index.ts +24 -0
  334. package/src/root/__workshop__/primitives.tsx +49 -0
  335. package/src/root/__workshop__/tone-inheritance.tsx +65 -0
  336. package/src/utils/ErrorBoundary.tsx +50 -0
  337. package/src/utils/boundaryElement/BoundaryElementContext.ts +7 -0
  338. package/src/utils/boundaryElement/BoundaryElementProvider.tsx +16 -0
  339. package/src/utils/boundaryElement/__workshop__/Plain.tsx +49 -0
  340. package/src/utils/boundaryElement/__workshop__/index.ts +16 -0
  341. package/src/utils/boundaryElement/types.ts +2 -0
  342. package/src/utils/boundaryElement/useBoundaryElement.ts +12 -0
  343. package/src/utils/elementQuery/ElementQuery.tsx +75 -0
  344. package/src/utils/elementQuery/__workshop__/CustomMedia.tsx +19 -0
  345. package/src/utils/elementQuery/__workshop__/index.ts +16 -0
  346. package/src/utils/elementQuery/__workshop__/styles.css.ts +31 -0
  347. package/src/utils/portal/Portal.test.tsx +105 -0
  348. package/src/utils/portal/Portal.tsx +42 -0
  349. package/src/utils/portal/PortalContext.ts +37 -0
  350. package/src/utils/portal/PortalProvider.tsx +38 -0
  351. package/src/utils/portal/__workshop__/Named.tsx +69 -0
  352. package/src/utils/portal/__workshop__/index.ts +16 -0
  353. package/src/utils/portal/types.ts +7 -0
  354. package/src/utils/portal/usePortal.ts +30 -0
  355. package/dist/_chunks-cjs/_visual-editing.js +0 -5864
  356. package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
  357. package/dist/_chunks-cjs/refractor.js +0 -23
  358. package/dist/_chunks-cjs/refractor.js.map +0 -1
  359. package/dist/_chunks-es/_visual-editing.mjs +0 -5870
  360. package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
  361. package/dist/_chunks-es/refractor.mjs +0 -26
  362. package/dist/_chunks-es/refractor.mjs.map +0 -1
  363. package/dist/_visual-editing.d.mts +0 -1007
  364. package/dist/_visual-editing.d.ts +0 -1007
  365. package/dist/_visual-editing.js +0 -31
  366. package/dist/_visual-editing.js.map +0 -1
  367. package/dist/_visual-editing.mjs +0 -31
  368. package/dist/_visual-editing.mjs.map +0 -1
  369. package/dist/index.d.mts +0 -2972
  370. package/dist/index.mjs +0 -2041
  371. package/dist/index.mjs.map +0 -1
  372. package/dist/theme.d.mts +0 -1500
  373. package/dist/theme.d.ts +0 -1500
  374. package/dist/theme.js +0 -4127
  375. package/dist/theme.js.map +0 -1
  376. package/dist/theme.mjs +0 -4127
  377. package/dist/theme.mjs.map +0 -1
  378. package/exports/_visual-editing.ts +0 -31
  379. package/exports/theme.ts +0 -1
  380. package/src/core/__workshop__/constants.ts +0 -293
  381. package/src/core/_compat.ts +0 -264
  382. package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
  383. package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
  384. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  385. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
  386. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
  387. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
  388. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  389. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
  390. package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
  391. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  392. package/src/core/components/autocomplete/autocomplete.tsx +0 -767
  393. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -45
  394. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  395. package/src/core/components/autocomplete/constants.ts +0 -28
  396. package/src/core/components/autocomplete/index.ts +0 -2
  397. package/src/core/components/autocomplete/types.ts +0 -108
  398. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
  399. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
  400. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  401. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -129
  402. package/src/core/components/breadcrumbs/index.ts +0 -1
  403. package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
  404. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  405. package/src/core/components/dialog/__workshop__/index.ts +0 -19
  406. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  407. package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
  408. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
  409. package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
  410. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  411. package/src/core/components/dialog/__workshop__/props.tsx +0 -75
  412. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  413. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  414. package/src/core/components/dialog/dialog.tsx +0 -430
  415. package/src/core/components/dialog/dialogContext.ts +0 -20
  416. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  417. package/src/core/components/dialog/index.ts +0 -4
  418. package/src/core/components/dialog/styles.ts +0 -77
  419. package/src/core/components/dialog/useDialog.ts +0 -11
  420. package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
  421. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  422. package/src/core/components/hotkeys/hotkeys.tsx +0 -62
  423. package/src/core/components/hotkeys/index.ts +0 -1
  424. package/src/core/components/index.ts +0 -9
  425. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  426. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
  427. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
  428. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
  429. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  430. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
  431. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  432. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  433. package/src/core/components/menu/__workshop__/index.ts +0 -89
  434. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  435. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
  436. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  437. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
  438. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  439. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
  440. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  441. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  442. package/src/core/components/menu/helpers.ts +0 -82
  443. package/src/core/components/menu/index.ts +0 -5
  444. package/src/core/components/menu/menu.test.tsx +0 -125
  445. package/src/core/components/menu/menu.tsx +0 -172
  446. package/src/core/components/menu/menuButton.tsx +0 -268
  447. package/src/core/components/menu/menuContext.ts +0 -18
  448. package/src/core/components/menu/menuDivider.ts +0 -12
  449. package/src/core/components/menu/menuGroup.tsx +0 -219
  450. package/src/core/components/menu/menuItem.tsx +0 -180
  451. package/src/core/components/menu/useMenu.ts +0 -21
  452. package/src/core/components/menu/useMenuController.ts +0 -231
  453. package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
  454. package/src/core/components/skeleton/__workshop__/index.ts +0 -11
  455. package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
  456. package/src/core/components/skeleton/index.ts +0 -2
  457. package/src/core/components/skeleton/skeleton.tsx +0 -57
  458. package/src/core/components/skeleton/styles.ts +0 -50
  459. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  460. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  461. package/src/core/components/tab/__workshop__/index.ts +0 -14
  462. package/src/core/components/tab/index.ts +0 -3
  463. package/src/core/components/tab/tab.tsx +0 -101
  464. package/src/core/components/tab/tabList.tsx +0 -70
  465. package/src/core/components/tab/tabPanel.tsx +0 -39
  466. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  467. package/src/core/components/toast/__workshop__/index.ts +0 -19
  468. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  469. package/src/core/components/toast/index.ts +0 -4
  470. package/src/core/components/toast/styles.ts +0 -77
  471. package/src/core/components/toast/toast.test.tsx +0 -101
  472. package/src/core/components/toast/toast.tsx +0 -198
  473. package/src/core/components/toast/toastContext.ts +0 -7
  474. package/src/core/components/toast/toastLayer.tsx +0 -51
  475. package/src/core/components/toast/toastProvider.tsx +0 -113
  476. package/src/core/components/toast/types.ts +0 -26
  477. package/src/core/components/toast/useToast.ts +0 -25
  478. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  479. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  480. package/src/core/components/tree/__workshop__/index.ts +0 -21
  481. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  482. package/src/core/components/tree/helpers.ts +0 -105
  483. package/src/core/components/tree/index.ts +0 -4
  484. package/src/core/components/tree/style.ts +0 -105
  485. package/src/core/components/tree/tree.tsx +0 -231
  486. package/src/core/components/tree/treeContext.ts +0 -10
  487. package/src/core/components/tree/treeGroup.tsx +0 -28
  488. package/src/core/components/tree/treeItem.tsx +0 -217
  489. package/src/core/components/tree/types.ts +0 -21
  490. package/src/core/components/tree/useTree.ts +0 -17
  491. package/src/core/helpers/index.ts +0 -4
  492. package/src/core/hooks/index.ts +0 -12
  493. package/src/core/hooks/useArrayProp.ts +0 -17
  494. package/src/core/hooks/useClickOutside.test.tsx +0 -482
  495. package/src/core/hooks/useClickOutside.ts +0 -118
  496. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -115
  497. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  498. package/src/core/hooks/useDelayed.test.ts +0 -68
  499. package/src/core/hooks/useDelayedState.ts +0 -28
  500. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
  501. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  502. package/src/core/hooks/useElementRect/index.ts +0 -1
  503. package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
  504. package/src/core/hooks/useElementSize.ts +0 -19
  505. package/src/core/hooks/useForwardedRef.ts +0 -19
  506. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  507. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  508. package/src/core/hooks/useMatchMedia.ts +0 -28
  509. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
  510. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  511. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  512. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
  513. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  514. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -56
  515. package/src/core/hooks/usePrefersDark.test.tsx +0 -19
  516. package/src/core/hooks/usePrefersDark.ts +0 -16
  517. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  518. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -19
  519. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  520. package/src/core/index.ts +0 -10
  521. package/src/core/middleware/origin.ts +0 -47
  522. package/src/core/observers/elementSizeObserver.ts +0 -116
  523. package/src/core/observers/index.ts +0 -2
  524. package/src/core/observers/resizeObserver.ts +0 -9
  525. package/src/core/primitives/_selectable/index.ts +0 -1
  526. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  527. package/src/core/primitives/_selectable/style.ts +0 -115
  528. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  529. package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
  530. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  531. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  532. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
  533. package/src/core/primitives/avatar/avatar.tsx +0 -192
  534. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  535. package/src/core/primitives/avatar/avatarStack.tsx +0 -100
  536. package/src/core/primitives/avatar/index.ts +0 -4
  537. package/src/core/primitives/avatar/styles.ts +0 -167
  538. package/src/core/primitives/avatar/types.ts +0 -17
  539. package/src/core/primitives/badge/__workshop__/index.ts +0 -19
  540. package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
  541. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
  542. package/src/core/primitives/badge/badge.test.tsx +0 -16
  543. package/src/core/primitives/badge/badge.tsx +0 -62
  544. package/src/core/primitives/badge/index.ts +0 -1
  545. package/src/core/primitives/badge/styles.ts +0 -20
  546. package/src/core/primitives/badge/types.ts +0 -8
  547. package/src/core/primitives/box/__workshop__/index.ts +0 -19
  548. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  549. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  550. package/src/core/primitives/box/box.tsx +0 -131
  551. package/src/core/primitives/box/index.ts +0 -1
  552. package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
  553. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  554. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
  555. package/src/core/primitives/button/__workshop__/index.ts +0 -59
  556. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  557. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  558. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
  559. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  560. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  561. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  562. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
  563. package/src/core/primitives/button/button.test.tsx +0 -44
  564. package/src/core/primitives/button/button.tsx +0 -186
  565. package/src/core/primitives/button/index.ts +0 -1
  566. package/src/core/primitives/button/styles.ts +0 -117
  567. package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
  568. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  569. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  570. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  571. package/src/core/primitives/card/__workshop__/index.ts +0 -18
  572. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
  573. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
  574. package/src/core/primitives/card/__workshop__/props.tsx +0 -53
  575. package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
  576. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  577. package/src/core/primitives/card/card.tsx +0 -117
  578. package/src/core/primitives/card/index.ts +0 -2
  579. package/src/core/primitives/card/styles.ts +0 -147
  580. package/src/core/primitives/card/types.ts +0 -11
  581. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  582. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
  583. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
  584. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  585. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
  586. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  587. package/src/core/primitives/checkbox/index.ts +0 -1
  588. package/src/core/primitives/checkbox/styles.ts +0 -128
  589. package/src/core/primitives/code/__workshop__/index.ts +0 -19
  590. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
  591. package/src/core/primitives/code/__workshop__/props.tsx +0 -21
  592. package/src/core/primitives/code/code.tsx +0 -46
  593. package/src/core/primitives/code/index.ts +0 -1
  594. package/src/core/primitives/code/refractor.tsx +0 -20
  595. package/src/core/primitives/code/styles.ts +0 -77
  596. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  597. package/src/core/primitives/container/__workshop__/index.ts +0 -8
  598. package/src/core/primitives/container/container.tsx +0 -41
  599. package/src/core/primitives/container/index.ts +0 -2
  600. package/src/core/primitives/container/styles.ts +0 -23
  601. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  602. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  603. package/src/core/primitives/flex/__workshop__/index.ts +0 -11
  604. package/src/core/primitives/flex/flex.tsx +0 -54
  605. package/src/core/primitives/flex/index.ts +0 -1
  606. package/src/core/primitives/grid/__workshop__/index.ts +0 -10
  607. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  608. package/src/core/primitives/grid/grid.tsx +0 -48
  609. package/src/core/primitives/grid/index.ts +0 -1
  610. package/src/core/primitives/heading/__workshop__/index.ts +0 -19
  611. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  612. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
  613. package/src/core/primitives/heading/heading.tsx +0 -80
  614. package/src/core/primitives/heading/index.ts +0 -1
  615. package/src/core/primitives/heading/styles.ts +0 -64
  616. package/src/core/primitives/heading/types.ts +0 -7
  617. package/src/core/primitives/index.ts +0 -27
  618. package/src/core/primitives/inline/__workshop__/index.ts +0 -8
  619. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
  620. package/src/core/primitives/inline/index.ts +0 -1
  621. package/src/core/primitives/inline/inline.tsx +0 -47
  622. package/src/core/primitives/inline/styles.ts +0 -32
  623. package/src/core/primitives/inline/types.ts +0 -6
  624. package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
  625. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  626. package/src/core/primitives/kbd/index.ts +0 -1
  627. package/src/core/primitives/kbd/kbd.tsx +0 -61
  628. package/src/core/primitives/label/__workshop__/index.ts +0 -19
  629. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
  630. package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
  631. package/src/core/primitives/label/index.ts +0 -1
  632. package/src/core/primitives/label/label.tsx +0 -79
  633. package/src/core/primitives/label/styles.ts +0 -45
  634. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  635. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  636. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  637. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  638. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  639. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  640. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
  641. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
  642. package/src/core/primitives/popover/__workshop__/index.ts +0 -49
  643. package/src/core/primitives/popover/constants.ts +0 -22
  644. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  645. package/src/core/primitives/popover/helpers.ts +0 -31
  646. package/src/core/primitives/popover/index.ts +0 -2
  647. package/src/core/primitives/popover/popover.tsx +0 -511
  648. package/src/core/primitives/popover/popoverCard.tsx +0 -166
  649. package/src/core/primitives/popover/types.ts +0 -7
  650. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  651. package/src/core/primitives/radio/__workshop__/index.ts +0 -11
  652. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  653. package/src/core/primitives/radio/index.ts +0 -1
  654. package/src/core/primitives/radio/radio.tsx +0 -51
  655. package/src/core/primitives/radio/styles.ts +0 -117
  656. package/src/core/primitives/select/__workshop__/index.ts +0 -11
  657. package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
  658. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  659. package/src/core/primitives/select/index.ts +0 -1
  660. package/src/core/primitives/select/select.tsx +0 -88
  661. package/src/core/primitives/select/styles.ts +0 -166
  662. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  663. package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
  664. package/src/core/primitives/spinner/index.ts +0 -1
  665. package/src/core/primitives/spinner/spinner.tsx +0 -46
  666. package/src/core/primitives/stack/__workshop__/index.ts +0 -14
  667. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  668. package/src/core/primitives/stack/index.ts +0 -1
  669. package/src/core/primitives/stack/stack.tsx +0 -43
  670. package/src/core/primitives/stack/styles.ts +0 -32
  671. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  672. package/src/core/primitives/switch/__workshop__/index.ts +0 -11
  673. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  674. package/src/core/primitives/switch/index.ts +0 -1
  675. package/src/core/primitives/switch/styles.ts +0 -173
  676. package/src/core/primitives/switch/switch.tsx +0 -68
  677. package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
  678. package/src/core/primitives/text/__workshop__/example.tsx +0 -39
  679. package/src/core/primitives/text/__workshop__/index.ts +0 -24
  680. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
  681. package/src/core/primitives/text/index.ts +0 -1
  682. package/src/core/primitives/text/styles.ts +0 -74
  683. package/src/core/primitives/text/text.tsx +0 -81
  684. package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
  685. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
  686. package/src/core/primitives/textArea/index.ts +0 -1
  687. package/src/core/primitives/textArea/textArea.tsx +0 -120
  688. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  689. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  690. package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
  691. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
  692. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  693. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  694. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  695. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  696. package/src/core/primitives/textInput/index.ts +0 -1
  697. package/src/core/primitives/textInput/textInput.tsx +0 -390
  698. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  699. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
  700. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  701. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
  702. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  703. package/src/core/primitives/tooltip/constants.ts +0 -23
  704. package/src/core/primitives/tooltip/index.ts +0 -2
  705. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -452
  706. package/src/core/primitives/tooltip/tooltip.tsx +0 -495
  707. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -109
  708. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  709. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  710. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  711. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -10
  712. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  713. package/src/core/primitives/types.ts +0 -146
  714. package/src/core/styles/border/borderStyle.ts +0 -56
  715. package/src/core/styles/border/index.ts +0 -2
  716. package/src/core/styles/border/types.ts +0 -10
  717. package/src/core/styles/box/boxStyle.ts +0 -69
  718. package/src/core/styles/box/index.ts +0 -2
  719. package/src/core/styles/box/types.ts +0 -11
  720. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  721. package/src/core/styles/card/index.ts +0 -1
  722. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  723. package/src/core/styles/flex/flexStyle.ts +0 -70
  724. package/src/core/styles/flex/index.ts +0 -3
  725. package/src/core/styles/flex/types.ts +0 -25
  726. package/src/core/styles/focusRing/index.ts +0 -25
  727. package/src/core/styles/font/codeFontStyle.ts +0 -13
  728. package/src/core/styles/font/headingFontStyle.ts +0 -13
  729. package/src/core/styles/font/index.ts +0 -6
  730. package/src/core/styles/font/labelFontStyle.ts +0 -13
  731. package/src/core/styles/font/responsiveFont.ts +0 -103
  732. package/src/core/styles/font/textAlignStyle.ts +0 -19
  733. package/src/core/styles/font/textFontStyle.ts +0 -13
  734. package/src/core/styles/font/types.ts +0 -35
  735. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  736. package/src/core/styles/grid/gridStyle.ts +0 -108
  737. package/src/core/styles/grid/index.ts +0 -3
  738. package/src/core/styles/grid/types.ts +0 -37
  739. package/src/core/styles/helpers.ts +0 -72
  740. package/src/core/styles/index.ts +0 -5
  741. package/src/core/styles/input/index.ts +0 -2
  742. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  743. package/src/core/styles/input/textInputStyle.ts +0 -263
  744. package/src/core/styles/internal.ts +0 -12
  745. package/src/core/styles/margin/index.ts +0 -2
  746. package/src/core/styles/margin/marginStyle.ts +0 -21
  747. package/src/core/styles/margin/marginsStyle.test.ts +0 -33
  748. package/src/core/styles/margin/types.ts +0 -9
  749. package/src/core/styles/padding/index.ts +0 -2
  750. package/src/core/styles/padding/paddingStyle.test.ts +0 -33
  751. package/src/core/styles/padding/paddingStyle.ts +0 -21
  752. package/src/core/styles/padding/types.ts +0 -12
  753. package/src/core/styles/radius/index.ts +0 -2
  754. package/src/core/styles/radius/radiusStyle.ts +0 -23
  755. package/src/core/styles/radius/types.ts +0 -8
  756. package/src/core/styles/shadow/index.ts +0 -2
  757. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  758. package/src/core/styles/shadow/types.ts +0 -6
  759. package/src/core/styles/types.ts +0 -8
  760. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  761. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  762. package/src/core/theme/__workshop__/build/story.tsx +0 -465
  763. package/src/core/theme/__workshop__/canvas.tsx +0 -352
  764. package/src/core/theme/__workshop__/color.tsx +0 -62
  765. package/src/core/theme/__workshop__/debug/story.tsx +0 -408
  766. package/src/core/theme/__workshop__/index.ts +0 -39
  767. package/src/core/theme/__workshop__/layer.tsx +0 -78
  768. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  769. package/src/core/theme/index.ts +0 -5
  770. package/src/core/theme/theme.test.tsx +0 -73
  771. package/src/core/theme/themeColorProvider.tsx +0 -29
  772. package/src/core/theme/themeContext.ts +0 -10
  773. package/src/core/theme/themeProvider.tsx +0 -62
  774. package/src/core/theme/types.ts +0 -12
  775. package/src/core/theme/useRootTheme.ts +0 -17
  776. package/src/core/theme/useTheme.ts +0 -16
  777. package/src/core/types/avatar.ts +0 -14
  778. package/src/core/types/badge.ts +0 -12
  779. package/src/core/types/box.ts +0 -19
  780. package/src/core/types/button.ts +0 -21
  781. package/src/core/types/card.ts +0 -6
  782. package/src/core/types/dialog.ts +0 -4
  783. package/src/core/types/flex.ts +0 -30
  784. package/src/core/types/grid.ts +0 -14
  785. package/src/core/types/gridItem.ts +0 -29
  786. package/src/core/types/index.ts +0 -14
  787. package/src/core/types/placement.ts +0 -18
  788. package/src/core/types/popover.ts +0 -4
  789. package/src/core/types/radius.ts +0 -4
  790. package/src/core/types/selectable.ts +0 -6
  791. package/src/core/types/text.ts +0 -4
  792. package/src/core/utils/arrow/arrow.tsx +0 -123
  793. package/src/core/utils/arrow/cmds.ts +0 -91
  794. package/src/core/utils/arrow/index.ts +0 -1
  795. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
  796. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  797. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -100
  798. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  799. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  800. package/src/core/utils/boundaryElement/index.ts +0 -3
  801. package/src/core/utils/boundaryElement/types.ts +0 -7
  802. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  803. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -21
  804. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  805. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
  806. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
  807. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  808. package/src/core/utils/elementQuery/index.ts +0 -1
  809. package/src/core/utils/errorBoundary.tsx +0 -48
  810. package/src/core/utils/getElementRef.ts +0 -26
  811. package/src/core/utils/index.ts +0 -9
  812. package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
  813. package/src/core/utils/layer/__workshop__/index.ts +0 -24
  814. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
  815. package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
  816. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
  817. package/src/core/utils/layer/getLayerContext.test.ts +0 -30
  818. package/src/core/utils/layer/getLayerContext.ts +0 -21
  819. package/src/core/utils/layer/index.ts +0 -4
  820. package/src/core/utils/layer/layer.test.tsx +0 -108
  821. package/src/core/utils/layer/layer.tsx +0 -98
  822. package/src/core/utils/layer/layerContext.ts +0 -7
  823. package/src/core/utils/layer/layerProvider.tsx +0 -111
  824. package/src/core/utils/layer/useLayer.ts +0 -26
  825. package/src/core/utils/portal/__workshop__/index.ts +0 -14
  826. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  827. package/src/core/utils/portal/index.ts +0 -4
  828. package/src/core/utils/portal/portal.test.tsx +0 -103
  829. package/src/core/utils/portal/portal.ts +0 -32
  830. package/src/core/utils/portal/portalContext.ts +0 -31
  831. package/src/core/utils/portal/portalProvider.tsx +0 -47
  832. package/src/core/utils/portal/types.ts +0 -9
  833. package/src/core/utils/portal/usePortal.ts +0 -25
  834. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  835. package/src/core/utils/srOnly/index.ts +0 -1
  836. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  837. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
  838. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
  839. package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
  840. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
  841. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
  842. package/src/core/utils/virtualList/index.ts +0 -1
  843. package/src/core/utils/virtualList/virtualList.tsx +0 -200
  844. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
  845. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
  846. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -22
  847. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
  848. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
  849. package/src/theme/build/_deprecated/color/color.test.ts +0 -63
  850. package/src/theme/build/_deprecated/color/defaults.ts +0 -390
  851. package/src/theme/build/_deprecated/color/factory.ts +0 -142
  852. package/src/theme/build/_deprecated/color/index.ts +0 -1
  853. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
  854. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
  855. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
  856. package/src/theme/build/buildColorTheme.test.ts +0 -183
  857. package/src/theme/build/buildColorTheme.ts +0 -499
  858. package/src/theme/build/buildTheme.test.ts +0 -87
  859. package/src/theme/build/buildTheme.ts +0 -36
  860. package/src/theme/build/colorToken/colorToken.ts +0 -19
  861. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  862. package/src/theme/build/colorToken/index.ts +0 -2
  863. package/src/theme/build/colorToken/types.ts +0 -6
  864. package/src/theme/build/index.ts +0 -3
  865. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  866. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  867. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  868. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  869. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
  870. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  871. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  872. package/src/theme/build/lib/color-fns/index.ts +0 -6
  873. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  874. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  875. package/src/theme/build/lib/color-fns/types.ts +0 -28
  876. package/src/theme/build/lib/isRecord.ts +0 -3
  877. package/src/theme/build/lib/lazy.ts +0 -30
  878. package/src/theme/build/lib/utils.ts +0 -19
  879. package/src/theme/build/merge.ts +0 -26
  880. package/src/theme/build/mixThemeColor.test.ts +0 -21
  881. package/src/theme/build/mixThemeColor.ts +0 -53
  882. package/src/theme/build/renderColorTheme.ts +0 -532
  883. package/src/theme/build/renderColorValue.ts +0 -85
  884. package/src/theme/build/resolveColorTokens.ts +0 -268
  885. package/src/theme/build/theme.test.ts +0 -27
  886. package/src/theme/config/helpers.ts +0 -55
  887. package/src/theme/config/index.ts +0 -4
  888. package/src/theme/config/system.ts +0 -115
  889. package/src/theme/config/tokens/color/index.ts +0 -1
  890. package/src/theme/config/tokens/color/types.ts +0 -133
  891. package/src/theme/config/tokens/index.ts +0 -4
  892. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  893. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  894. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
  895. package/src/theme/config/tokens/parseTokenValue.ts +0 -133
  896. package/src/theme/config/tokens/types.ts +0 -53
  897. package/src/theme/config/types.ts +0 -46
  898. package/src/theme/defaults/colorPalette.ts +0 -5
  899. package/src/theme/defaults/colorTokens.ts +0 -648
  900. package/src/theme/defaults/config.ts +0 -84
  901. package/src/theme/defaults/fonts.ts +0 -227
  902. package/src/theme/getScopedTheme.ts +0 -98
  903. package/src/theme/index.ts +0 -5
  904. package/src/theme/system/avatar.ts +0 -14
  905. package/src/theme/system/color/_constants.ts +0 -45
  906. package/src/theme/system/color/_helpers.ts +0 -24
  907. package/src/theme/system/color/_system.ts +0 -40
  908. package/src/theme/system/color/avatar.ts +0 -15
  909. package/src/theme/system/color/badge.ts +0 -16
  910. package/src/theme/system/color/button.ts +0 -17
  911. package/src/theme/system/color/color.ts +0 -34
  912. package/src/theme/system/color/index.ts +0 -13
  913. package/src/theme/system/color/input.ts +0 -25
  914. package/src/theme/system/color/kbd.ts +0 -8
  915. package/src/theme/system/color/selectable.ts +0 -12
  916. package/src/theme/system/color/shadow.ts +0 -7
  917. package/src/theme/system/color/state.ts +0 -43
  918. package/src/theme/system/color/syntax.ts +0 -41
  919. package/src/theme/system/css.ts +0 -8
  920. package/src/theme/system/focusRing.ts +0 -7
  921. package/src/theme/system/font.ts +0 -52
  922. package/src/theme/system/index.ts +0 -11
  923. package/src/theme/system/input.ts +0 -33
  924. package/src/theme/system/layer.ts +0 -8
  925. package/src/theme/system/shadow.ts +0 -19
  926. package/src/theme/system/styles.ts +0 -13
  927. package/src/theme/system/theme.ts +0 -138
  928. package/src/theme/system/v0/avatar.ts +0 -10
  929. package/src/theme/system/v0/color/_generic.ts +0 -35
  930. package/src/theme/system/v0/color/_system.ts +0 -17
  931. package/src/theme/system/v0/color/base.ts +0 -21
  932. package/src/theme/system/v0/color/button.ts +0 -42
  933. package/src/theme/system/v0/color/card.ts +0 -19
  934. package/src/theme/system/v0/color/color.ts +0 -40
  935. package/src/theme/system/v0/color/index.ts +0 -11
  936. package/src/theme/system/v0/color/input.ts +0 -34
  937. package/src/theme/system/v0/color/muted.ts +0 -26
  938. package/src/theme/system/v0/color/selectable.ts +0 -31
  939. package/src/theme/system/v0/color/solid.ts +0 -26
  940. package/src/theme/system/v0/color/spot.ts +0 -13
  941. package/src/theme/system/v0/index.ts +0 -3
  942. package/src/theme/system/v0/input.ts +0 -23
  943. package/src/theme/versioning/getTheme_v2.ts +0 -57
  944. package/src/theme/versioning/index.ts +0 -5
  945. package/src/theme/versioning/is_v0.ts +0 -6
  946. package/src/theme/versioning/is_v2.ts +0 -6
  947. package/src/theme/versioning/themeColor_v0_v2.ts +0 -243
  948. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
  949. package/src/theme/versioning/v0_v2.ts +0 -94
  950. package/src/theme/versioning/v2_v0.ts +0 -135
  951. /package/src/{core/components → components}/autocomplete/__workshop__/types.ts +0 -0
  952. /package/src/{core/components → components}/toast/toastState.ts +0 -0
  953. /package/src/{core/hooks → hooks}/useCustomValidity.ts +0 -0
  954. /package/src/{core/hooks → hooks}/useMounted.ts +0 -0
  955. /package/src/{core/primitives → primitives}/container/types.ts +0 -0
  956. /package/src/{core/utils → primitives}/layer/types.ts +0 -0
  957. /package/src/{core/utils → utils}/elementQuery/helpers.ts +0 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useMemo} from 'react'\n\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * @deprecated instead of `useArrayProp(width)` use `Array.isArray(width) ? width : [width]` instead\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n return useMemo(() => _getArrayProp(val, defaultVal), [val, defaultVal])\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {Component, PropsWithChildren} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n forwardRef,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n startTransition,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n // Element refs that need to be accessed during render\n const [inputElement, _setInputElement] = useState<HTMLInputElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setInputElement = useCallback((node: HTMLInputElement | null) => {\n startTransition(() => _setInputElement(node))\n }, [])\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward inputElement state to inputElementRef\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n inputElementRef,\n () => inputElement,\n [inputElement],\n )\n // Forward inputElement to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = _getArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n })\n const openButtonPadding = padding.map((v) => Math.max(v - 1, 0))\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return (\n <RenderPopover\n content={content}\n hidden={!expanded}\n inputElement={inputElement}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n resultsPopoverElementRef={resultsPopoverElementRef}\n renderPopover={renderPopover}\n />\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setInputElement}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n {results}\n </StyledAutocomplete>\n )\n})\n\nfunction RenderPopover({\n renderPopover,\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n resultsPopoverElementRef,\n}: {\n renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n return renderPopover(\n {\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n },\n resultsPopoverElementRef,\n )\n}\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => React.JSX.Element\n","import {styled} from 'styled-components'\n\nimport {Button} from '../../primitives'\n\nexport const StyledBreadcrumbs = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = _getArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n })\n\n return (\n <StyledBreadcrumbs data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </StyledBreadcrumbs>\n )\n})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n\nfunction useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n}: {\n collapse: () => void\n expand: () => void\n expandElementRef: React.RefObject<HTMLButtonElement | null>\n maxLength: number | undefined\n open: boolean\n popoverElementRef: React.RefObject<HTMLDivElement | null>\n rawItems: React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[]\n space: number[]\n}) {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {useClickOutsideEvent, useGlobalKeyDown, usePrefersReducedMotion} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const width = _getArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = _getArrayProp(cardRadiusProp)\n const padding = _getArrayProp(paddingProp)\n const position = _getArrayProp(positionProp)\n const width = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.JSX.Element\n id: string\n menu?: React.JSX.Element\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={_getArrayProp(radius)}\n $visible={delay ? visible : true}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {getTheme_v2, ThemeFontKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp, _responsive, ThemeProps} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {getTheme_v2, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\n\nimport {Card, Flex} from '../../primitives'\nimport type {ButtonTone} from '../../types'\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport const STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nexport const BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nexport const StyledToast = styled(Card)`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n\n &[data-has-duration] {\n padding-bottom: calc(${LOADING_BAR_HEIGHT}px / 2);\n }\n`\n\nexport const LoadingBar = styled.div`\n display: flex;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left: 0px;\n right: 0px;\n pointer-events: none;\n z-index: -1;\n overflow: hidden;\n overflow: clip;\n background: transparent;\n align-items: flex-end;\n will-change: opacity;\n`\n\nexport const LoadingBarMask = styled(Card)`\n position: absolute;\n top: 0;\n left: -${LOADING_BAR_HEIGHT}px;\n right: -${LOADING_BAR_HEIGHT}px;\n bottom: ${LOADING_BAR_HEIGHT}px;\n z-index: 1;\n`\n\ntype LoadingBarProgressProps = Omit<React.ComponentProps<typeof Card>, 'tone'> & {\n tone: ThemeColorStateToneKey\n}\nexport const LoadingBarProgress = styled<React.ComponentType<LoadingBarProgressProps>>(Card)`\n display: block;\n height: 100%;\n width: 100%;\n transform-origin: 0% 50%;\n background-color: ${(props) => {\n const {color} = getTheme_v2(props.theme)\n\n return color.button.default[props.tone].enabled.bg\n }};\n`\n","import {CloseIcon} from '@sanity/icons'\nimport {motion, type Variant, type Variants} from 'motion/react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Flex, Stack, Text} from '../../primitives'\nimport {\n BUTTON_TONE,\n LoadingBar,\n LoadingBarMask,\n LoadingBarProgress,\n STATUS_CARD_TONE,\n StyledToast,\n TextBox,\n} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n | 'as'\n | 'height'\n | 'ref'\n | 'title'\n | 'onAnimationStart'\n | 'onDragStart'\n | 'onDragEnd'\n | 'onDrag'\n >,\n): React.JSX.Element {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration\n ? {type: 'spring' as const, visualDuration, bounce: 0.25}\n : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n forwardedAs=\"li\"\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionLoadingBar variants={content} transition={transition}>\n <LoadingBarMask tone={cardTone} radius={radius} />\n <MotionLoadingBarProgress\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionLoadingBar>\n )}\n </MotionToast>\n )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionToast = motion.create(StyledToast)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionLoadingBar = motion.create(LoadingBar)\nconst MotionLoadingBarProgress = motion.create(LoadingBarProgress)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {styled} from 'styled-components'\n\nimport {Grid} from '../../primitives/grid'\nimport {useLayer} from '../../utils'\n\n/**\n * @public\n */\nexport interface ToastLayerProps {\n children: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n gap?: number | number[]\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <StyledLayer\n forwardedAs=\"ul\"\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </StyledLayer>\n )\n}\n\nToastLayer.displayName = 'ToastLayer'\n\nconst StyledLayer = styled(Grid)`\n box-sizing: border-box;\n position: fixed;\n right: 0;\n bottom: 0;\n list-style: none;\n pointer-events: none;\n max-width: 420px;\n width: 100%;\n`\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'motion/react'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {children, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n})\nTree.displayName = 'ForwardRef(Tree)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {startTransition, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n treeItemRootColorStyle,\n treeItemRootStyle,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = styled.li(treeItemRootStyle, treeItemRootColorStyle)\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, _setRootElement] = useState<HTMLLIElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setRootElement = useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])\n\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const [itemPath, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n}\nTreeItem.displayName = 'TreeItem'\n"],"names":["_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","useArrayProp","val","defaultVal","$","_c","t0","_getArrayProp","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","boundaryElement","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","jsx","Code","children","StyledAutocomplete","styled","div","withConfig","displayName","componentId","ListBox","Box","rotate","keyframes","AnimatedSpinnerIcon","SpinnerIcon","AutocompleteOption","id","onSelect","selected","value","setTimeout","handleClick","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","InnerAutocomplete","forwardRef","forwardedRef","customValidity","filterOptionProp","icon","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","optionsProp","prefix","readOnly","relatedElements","renderOptionProp","renderPopover","restProps","suffix","t6","valueProp","border","filterOption","fontSize","listBox","options","padding","popover","radius","renderOption","renderValue","EMPTY_RECORD","paddingProp","t7","t8","t9","dispatch","useReducer","t10","t11","value_0","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","inputElement","_setInputElement","node","startTransition","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","t15","listBoxId","t16","find","o","currentOption","t17","t18","filteredOptions","filteredOptionsLen","activeItemId","expanded","concat","focusInside","e","handleRootBlur","t19","event_0","listBoxElement","focusedElement","HTMLElement","listFocused_0","handleRootFocus","t20","v","handleOptionSelect","t21","event_1","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","t22","event_2","nextQuery","handleInputChange","t23","dispatchOpen","t24","event_3","handleInputFocus","t25","handlePopoverMouseEnter","t26","handlePopoverMouseLeave","t27","handleClearButtonClick","t28","handleClearButtonFocus","t29","t30","t31","t32","t33","t34","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","t35","bb0","t36","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t37","Button","ChevronDownIcon","openButtonNode","t38","bb1","t39","inputValue","event_5","handleListBoxKeyDown","t40","bb2","t41","t42","option_0","active","cloneElement","Stack","t43","content","bb3","Popover","results","t44","TextInput","t45","jsxs","RenderPopover","hidden","onMouseEnter","onMouseLeave","Autocomplete","v_0","v_1","Math","max","StyledBreadcrumbs","ol","ExpandButton","Breadcrumbs","maxLength","separator","space","spaceRaw","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","Children","toArray","isValidElement","rawItems","items","useItems","item","itemIndex","Fragment","len","beforeLength","ceil","afterLength","floor","slice","dialogStyle","theme","color","getTheme_v2","display","backdrop","responsiveDialogPositionStyle","media","_responsive","$position","position","animationDialogStyle","$animate","css","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","StyledDialog","Layer","responsivePaddingStyle","DialogContainer","Container","DialogCardRoot","DialogLayout","Flex","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","shadowProp","width","widthProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","target_0","CloseIcon","Dialog","dialog","useTheme_v2","_positionProp","_zOffsetProp","onActivate","cardRadius","cardShadow","zOffset","animate","cardRadiusProp","_animate","positionProp","zOffsetProp","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","Portal","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","overflow","popoverProps","keyframe","animation","skeletonStyle","$visible","$animated","StyledSkeleton","responsiveRadiusStyle","Skeleton","delay","animated","visible","setVisible","timeout","$size","$style","font","fontStyle","sizeIndex","sizes","height","lineHeight","ascenderHeight","descenderHeight","TextSkeleton","size","LabelSkeleton","HeadingSkeleton","CodeSkeleton","TabPanel","flex","LOADING_BAR_HEIGHT","STATUS_CARD_TONE","warning","success","BUTTON_TONE","TextBox","StyledToast","LoadingBar","LoadingBarMask","LoadingBarProgress","default","tone","enabled","bg","ROLES","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","closable","description","duration","status","title","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","verticalAlign","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionToast","motion","create","MotionFlex","MotionText","MotionLoadingBar","MotionLoadingBarProgress","useMounted","useSyncExternalStore","subscribe","ToastContext","ToastLayer","paddingX","paddingY","gap","StyledLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","prevState","toast","dismiss","currentState","toast_0","toast_1","Date","now","LayerProvider","AnimatePresence","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","Tree","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","$tone","selectable","_cardColorStyle","pressed","hovered","treeItemBoxStyle","$level","rem","useTree","tree","TreeGroup","StyledTreeItem","li","TreeItemBox","attrs","forwardedAs","ToggleArrowText","TreeItem","IconComponent","idProp","linkAs","muted","text","weight","expandedProp","rootElement","_setRootElement","setRootElement","treeitemRef","_id","useId","itemPath_0","closest","click","visibility","pointerEvents","ToggleArrowRightIcon","transform"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/core/constants.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/lib/isArray.ts","../src/core/lib/isRecord.ts","../src/core/helpers/props.ts","../src/core/_keys.ts","../src/primitives/box/Box.tsx","../src/primitives/text/Text.tsx","../src/primitives/spinner/SpinnerAnimatedIcon.tsx","../src/primitives/spinner/Spinner.tsx","../src/primitives/kbd/Kbd.tsx","../src/components/hotkeys/Hotkeys.tsx","../src/core/getElementRef.ts","../src/hooks/useMatchMedia.ts","../src/hooks/usePrefersReducedMotion.ts","../src/hooks/useUnique.ts","../src/middleware/origin.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/utils/boundaryElement/BoundaryElementContext.ts","../src/primitives/card/CardContext.ts","../src/primitives/card/CardInternalContext.ts","../src/primitives/card/CardInternalProvider.tsx","../src/primitives/card/CardProvider.tsx","../src/primitives/card/useCard.ts","../src/utils/portal/PortalContext.ts","../src/utils/portal/usePortal.ts","../src/utils/portal/Portal.tsx","../src/primitives/tooltip/constants.ts","../src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext.tsx","../src/primitives/card/Card.tsx","../src/primitives/layer/getLayerContext.ts","../src/primitives/layer/LayerContext.ts","../src/primitives/layer/useLayer.ts","../src/primitives/layer/LayerCard.tsx","../src/hooks/useMediaIndex/useMediaIndex.ts","../src/primitives/layer/LayerProvider.tsx","../src/primitives/layer/Layer.tsx","../src/primitives/tooltip/TooltipLayer.tsx","../src/primitives/tooltip/Tooltip.tsx","../src/primitives/button/Button.tsx","../src/primitives/popover/constants.ts","../src/primitives/flex/Flex.tsx","../src/primitives/popover/PopoverLayer.tsx","../src/primitives/popover/floating-ui/size.ts","../src/primitives/popover/useMiddleware.ts","../src/primitives/popover/Popover.tsx","../src/primitives/selectable/Selectable.tsx","../src/primitives/stack/Stack.tsx","../src/hooks/useCustomValidity.ts","../src/primitives/textInput/TextInput.tsx","../src/components/autocomplete/AutocompleteOption.tsx","../src/components/autocomplete/autocompleteReducer.ts","../src/components/autocomplete/constants.ts","../src/components/autocomplete/Autocomplete.tsx","../src/hooks/useClickOutsideEvent.ts","../src/components/breadcrumbs/Breadcrumbs.tsx","../src/primitives/container/Container.tsx","../src/hooks/useGlobalKeyDown.ts","../src/components/dialog/isTargetWithinScope.ts","../src/components/dialog/DialogCard.tsx","../src/components/dialog/DialogContext.ts","../src/components/dialog/useDialog.ts","../src/components/dialog/Dialog.tsx","../src/components/dialog/DialogProvider.tsx","../src/components/menu/MenuContext.ts","../src/components/menu/helpers.ts","../src/components/menu/useMenuController.ts","../src/components/menu/Menu.tsx","../src/components/menu/MenuButton.tsx","../src/components/menu/MenuDivider.tsx","../src/components/menu/useMenu.ts","../src/components/menu/MenuGroup.tsx","../src/components/menu/MenuItem.tsx","../src/components/tab/TabListContext.ts","../src/components/tab/Tab.tsx","../src/components/tab/TabList.tsx","../src/components/tab/TabPanel.tsx","../src/components/toast/Toast.tsx","../src/hooks/useMounted.ts","../src/components/toast/ToastContext.ts","../src/primitives/grid/Grid.tsx","../src/components/toast/ToastLayer.tsx","../src/components/toast/toastState.ts","../src/components/toast/ToastProvider.tsx","../src/components/toast/useToast.ts","../src/components/tree/helpers.ts","../src/components/tree/TreeContext.ts","../src/components/tree/Tree.tsx","../src/components/tree/useTree.ts","../src/components/tree/TreeGroup.tsx","../src/components/tree/TreeItem.tsx","../src/core/helpers/scroll.ts","../src/components/virtualList/VirtualList.tsx","../src/observers/elementSize.ts","../src/hooks/useElementSize.ts","../src/hooks/usePrefersDark.ts","../src/primitives/_syntax/LazySyntax.tsx","../src/primitives/label/Label.tsx","../src/primitives/avatar/Avatar.tsx","../src/primitives/avatar/AvatarCounter.tsx","../src/primitives/avatar/AvatarStack.tsx","../src/primitives/badge/Badge.tsx","../src/primitives/checkbox/Checkbox.tsx","../src/primitives/code/Code.tsx","../src/primitives/heading/Heading.tsx","../src/primitives/inline/Inline.tsx","../src/primitives/radio/Radio.tsx","../src/primitives/select/Select.tsx","../src/primitives/skeleton/Skeleton.tsx","../src/primitives/skeleton/CodeSkeleton.tsx","../src/primitives/skeleton/HeadingSkeleton.tsx","../src/primitives/skeleton/LabelSkeleton.tsx","../src/primitives/skeleton/TextSkeleton.tsx","../src/primitives/srOnly/SrOnly.tsx","../src/primitives/switch/Switch.tsx","../src/primitives/text/InlineCode.tsx","../src/primitives/textArea/TextArea.tsx","../src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider.tsx","../src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/utils/boundaryElement/BoundaryElementProvider.tsx","../src/utils/boundaryElement/useBoundaryElement.ts","../src/utils/elementQuery/helpers.ts","../src/utils/elementQuery/ElementQuery.tsx","../src/utils/ErrorBoundary.tsx","../src/utils/portal/PortalProvider.tsx","../src/root/RootProvider.tsx","../src/root/Root.tsx"],"sourcesContent":["import type {Transition, Variant} from 'motion/react'\n\nexport const EMPTY_ARRAY: never[] = []\n\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\nexport const Z_OFFSETS = {\n dialog: 600,\n popover: 400,\n tooltip: 200,\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | undefined = undefined\n\n const dispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n innerDispose?.()\n dispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","export function isArray(val: unknown): val is unknown[] {\n return Array.isArray(val)\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {BREAKPOINT_KEYS, type ResponsiveProp, type ResponsivePropArray} from '@sanity/ui-css'\n\nimport {EMPTY_ARRAY} from '../constants'\nimport {isArray} from '../lib/isArray'\nimport {isRecord} from '../lib/isRecord'\n\n// WeakMap for object/array values (automatic GC when objects are no longer referenced)\nconst objectCache = new WeakMap<object, ResponsivePropArray<unknown>>()\n\n// Map for primitive values (bounded growth - only primitives like numbers/strings)\nconst primitiveCache = new Map<unknown, ResponsivePropArray<unknown>>()\n\n/**\n * @internal\n */\nexport function _getResponsiveProp<T>(\n val: ResponsiveProp<T> | undefined,\n defaultVal?: ResponsivePropArray<T>,\n): ResponsivePropArray<T> {\n // Fast path: undefined\n if (val === undefined) {\n return defaultVal || (EMPTY_ARRAY as unknown as ResponsivePropArray<T>)\n }\n\n // Fast path: already an array or object - use WeakMap for identity-based caching\n if (isArray(val)) {\n let v = val\n\n // convert to array\n if (isRecord(val)) {\n v = BREAKPOINT_KEYS.map((key) => val[key]) as ResponsivePropArray<T>\n }\n\n const cached = objectCache.get(v)\n if (cached) return cached as ResponsivePropArray<T>\n\n const ret = v as ResponsivePropArray<T>\n objectCache.set(v, ret)\n return ret\n }\n\n // Primitive value - wrap in array and cache by value\n const cached = primitiveCache.get(val)\n if (cached) return cached as ResponsivePropArray<T>\n\n const ret = [val] as ResponsivePropArray<T>\n\n primitiveCache.set(val, ret)\n\n return ret\n}\n","type PropertyKey = string | number | symbol\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Any = any\n\n/** @internal */\nexport function _splitKeys<\n P extends Record<PropertyKey, Any>,\n const K extends readonly (keyof P)[],\n>(props: P, keys: K) {\n const style = {} as Pick<P, K[number]>\n const rest = {} as Omit<P, K[number]>\n\n // Faster membership than Array.includes for large key lists\n const keySet = new Set<PropertyKey>(keys as readonly PropertyKey[])\n\n for (const k in props) {\n if (keySet.has(k)) {\n ;(style as Any)[k] = (props as Any)[k]\n } else {\n ;(rest as Any)[k] = (props as Any)[k]\n }\n }\n\n return [style, rest] as const\n}\n","import {box, BOX_STYLE_PROP_KEYS, type BoxStyleProps} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_BOX_ELEMENT = 'div'\n\n/** @public */\nexport type BoxOwnProps = BoxStyleProps\n\n/** @public */\nexport type BoxElementType =\n | 'a'\n | 'article'\n | 'aside'\n | 'blockquote'\n | 'body'\n | 'button'\n | 'details'\n | 'div'\n | 'header'\n | 'fieldset'\n | 'figure'\n | 'figcaption'\n | 'footer'\n | 'form'\n | 'html'\n | 'iframe'\n | 'kbd'\n | 'label'\n | 'legend'\n | 'li'\n | 'main'\n | 'nav'\n | 'ol'\n | 'pre'\n | 'section'\n | 'span'\n | 'summary'\n | 'table'\n | 'tbody'\n | 'td'\n | 'tfoot'\n | 'th'\n | 'thead'\n | 'tr'\n | 'ul'\n | ComponentType\n\n/** @public */\nexport type BoxProps<E extends BoxElementType = BoxElementType> = Props<BoxOwnProps, E>\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport function Box<E extends BoxElementType = typeof DEFAULT_BOX_ELEMENT>(\n props: BoxProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_BOX_ELEMENT,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as BoxProps<typeof DEFAULT_BOX_ELEMENT>, BOX_STYLE_PROP_KEYS)\n\n return <Element data-ui=\"Box\" {...domProps} className={box(styleProps)} />\n}\n","import {\n text,\n TEXT_STYLE_PROP_KEYS,\n textOverflow,\n type TextOverflowStyleProps,\n type TextStyleProps,\n} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_TEXT_ELEMENT = 'div'\n\n/** @public */\nexport type TextOwnProps = TextStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type TextElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | 'summary'\n | 'time'\n | ComponentType\n\n/** @public */\nexport type TextProps<E extends TextElementType = TextElementType> = Props<TextOwnProps, E>\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport function Text<E extends TextElementType = typeof DEFAULT_TEXT_ELEMENT>(\n props: TextProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_TEXT_ELEMENT,\n children: childrenProp,\n textOverflow: textOverflowProp,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as TextProps<typeof DEFAULT_TEXT_ELEMENT>, TEXT_STYLE_PROP_KEYS)\n\n let children = childrenProp\n\n if (textOverflowProp) {\n children = <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n }\n\n return (\n <Element data-ui=\"Text\" {...domProps} className={text(styleProps)}>\n {children}\n </Element>\n )\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {spinner_animatedIcon} from '@sanity/ui-css'\nimport type {SVGProps} from 'react'\n\n/** @internal */\nexport function SpinnerAnimatedIcon(\n props: Omit<SVGProps<SVGSVGElement>, 'className'>,\n): React.JSX.Element {\n const {...rest} = props\n\n return (\n <SpinnerIcon data-sanity-icon=\"spinner-animated\" {...rest} className={spinner_animatedIcon()} />\n )\n}\n","import {type ResponsiveProp, spinner} from '@sanity/ui-css'\nimport type {FontTextSize} from '@sanity/ui-tokens'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Text} from '../text/Text'\nimport {SpinnerAnimatedIcon} from './SpinnerAnimatedIcon'\n\n/** @public */\nexport const DEFAULT_SPINNER_ELEMENT = 'div'\n\n/** @public */\nexport type SpinnerOwnProps = {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @public */\nexport type SpinnerElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type SpinnerProps<E extends SpinnerElementType = SpinnerElementType> = Props<\n SpinnerOwnProps,\n E\n>\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport function Spinner<E extends SpinnerElementType = typeof DEFAULT_SPINNER_ELEMENT>(\n props: SpinnerProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_SPINNER_ELEMENT,\n className,\n ...rest\n } = props as SpinnerProps<typeof DEFAULT_SPINNER_ELEMENT>\n\n return (\n <Text as={as} data-ui=\"Spinner\" {...rest} className={spinner({className})}>\n <SpinnerAnimatedIcon />\n </Text>\n )\n}\n","import {kbd, KBD_STYLE_PROP_KEYS, type KBDStyleProps} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_KBD_ELEMENT = 'kbd'\n\n/** @public */\nexport type KBDOwnProps = KBDStyleProps\n\n/** @public */\nexport type KBDElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type KBDProps<E extends KBDElementType = KBDElementType> = Props<KBDOwnProps, E>\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport function KBD<E extends KBDElementType = typeof DEFAULT_KBD_ELEMENT>(\n props: KBDProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_KBD_ELEMENT,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as KBDProps<typeof DEFAULT_KBD_ELEMENT>, KBD_STYLE_PROP_KEYS)\n\n return <Element data-ui=\"KBD\" {...domProps} className={kbd(styleProps)} />\n}\n","import {\n type GapStyleProps,\n hotkeys,\n HOTKEYS_STYLE_PROP_KEYS,\n type RadiusStyleProps,\n} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\nimport {KBD} from '../../primitives/kbd/Kbd'\n\n/** @public */\nexport const DEFAULT_HOTKEYS_ELEMENT = 'kbd'\n\n/** @public */\nexport interface HotkeysOwnProps extends GapStyleProps, RadiusStyleProps {\n /** @deprecated No longer supported. */\n fontSize?: never\n /** @deprecated No longer supported. */\n padding?: never\n keys: string[]\n}\n\n/** @public */\nexport type HotkeysElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type HotkeysProps<E extends HotkeysElementType = HotkeysElementType> = Props<\n HotkeysOwnProps,\n E\n>\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @example\n * ```tsx\n * import {Hotkeys} from '@sanity/ui'\n *\n * <Hotkeys keys={['⌘', 'K']} />\n * ```\n *\n * @public\n */\nexport function Hotkeys<E extends HotkeysElementType = typeof DEFAULT_HOTKEYS_ELEMENT>(\n props: HotkeysProps<E>,\n): React.JSX.Element | undefined {\n const [\n styleProps,\n {\n as: Element = DEFAULT_HOTKEYS_ELEMENT,\n fontSize: _fontSize,\n keys,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as HotkeysProps<typeof DEFAULT_HOTKEYS_ELEMENT>, HOTKEYS_STYLE_PROP_KEYS)\n\n if (!keys || keys.length === 0) {\n return undefined\n }\n\n return (\n <Element data-ui=\"Hotkeys\" {...domProps} className={hotkeys(styleProps)}>\n {keys.map((key, i) => (\n <KBD key={i}>{key}</KBD>\n ))}\n </Element>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** @internal */\n// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement): React.Ref<unknown> | undefined {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {useMemo, useRef} from 'react'\n\n/**\n * Shallow equality check for objects and arrays\n * @internal\n */\nfunction shallowEqual<T>(a: T, b: T): boolean {\n if (a === b) return true\n if (typeof a !== 'object' || typeof b !== 'object') return false\n if (a === null || b === null) return false\n\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false\n return a.every((item, index) => item === b[index])\n }\n\n const keysA = Object.keys(a as object)\n const keysB = Object.keys(b as object)\n\n if (keysA.length !== keysB.length) return false\n\n return keysA.every(\n (key) =>\n Object.prototype.hasOwnProperty.call(b, key) &&\n (a as Record<string, unknown>)[key] === (b as Record<string, unknown>)[key],\n )\n}\n\n/**\n * Hook that returns a stable reference when the value is shallowly equal\n * Prevents unnecessary re-renders and re-registrations\n *\n * @deprecated prefer `useMemo` in the wrapping component instead\n *\n * @internal\n * @param value - The value to stabilize\n * @returns Stable reference to the value\n */\nexport function useUnique<T>(value: T): T {\n const ref = useRef<T>(value)\n\n // Use useMemo to compute the stable value\n // Intentionally accessing and updating ref for memoization\n return useMemo(() => {\n // eslint-disable-next-line react-hooks/refs\n if (shallowEqual(ref.current, value)) {\n // eslint-disable-next-line react-hooks/refs\n return ref.current\n }\n // eslint-disable-next-line react-hooks/refs\n ref.current = value\n return value\n }, [value])\n}\n","import type {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope: typeof globalThis = getGlobalScope()\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/v4/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n const context = createContext<ContextType>(defaultValue)\n context.displayName = key\n return context\n }\n\n // Use the global scope as a map of symbols to contexts\n const symbolMap = globalScope as Record<symbol, Context<ContextType>>\n\n symbolMap[symbol] = symbolMap[symbol] || createContext<T>(defaultValue)\n\n return symbolMap[symbol]\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport type {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext: Context<BoundaryElementContextValue> =\n createGlobalScopedContext<BoundaryElementContextValue>('@sanity/ui/v4/boundaryElement', null)\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport type {CardContextValue} from './types'\n\n/**\n * @internal\n */\nexport const CardContext: Context<CardContextValue | null> =\n createGlobalScopedContext<CardContextValue | null>('@sanity/ui/v4/card', null)\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport type {_CardInternalContextValue} from './types'\n\n/**\n * @internal\n */\nexport const CardInternalContext: Context<_CardInternalContextValue | null> =\n createGlobalScopedContext<_CardInternalContextValue | null>('@sanity/ui/v4/card-internal', null)\n","import {type ReactNode} from 'react'\n\nimport {CardInternalContext} from './CardInternalContext'\nimport type {_CardCompatProviderComponent} from './types'\n\n/** @internal */\nexport function CardInternalProvider(props: {\n children?: ReactNode\n CompatProvider?: _CardCompatProviderComponent\n root?: boolean\n}): React.JSX.Element {\n const {children, root = false, CompatProvider} = props\n\n return <CardInternalContext value={{root, CompatProvider}}>{children}</CardInternalContext>\n}\n","import type {CardTone, ColorScheme} from '@sanity/ui-tokens'\nimport {type ReactNode} from 'react'\n\nimport {CardContext} from './CardContext'\nimport type {_CardCompatProviderComponent} from './types'\n\n/** @public */\nexport function CardProvider(props: {\n children?: ReactNode\n tone: CardTone\n scheme: ColorScheme\n}): React.JSX.Element {\n const {children, tone, scheme} = props\n\n return <CardContext value={{tone, scheme}}>{children}</CardContext>\n}\n","import {use} from 'react'\n\nimport {CardContext} from './CardContext'\nimport type {CardContextValue} from './types'\n\n/** @public */\nexport function useCard(): CardContextValue {\n const card = use(CardContext)\n\n assertCardContext(card)\n\n return card\n}\n\n/** @internal */\nexport function assertCardContext(card: CardContextValue | null): asserts card is CardContextValue {\n if (!card) {\n throw new Error('useCard(): missing context value', {cause: card})\n }\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport {globalScope} from '../../core/lib/globalScope'\nimport type {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/v4/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\n// Use the global scope as a map of symbols to elements\nconst elementMap = globalScope as Record<symbol, HTMLDivElement | null>\n\nelementMap[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (elementMap[elementKey]) {\n return elementMap[elementKey]\n }\n\n elementMap[elementKey] = document.createElement('div')\n elementMap[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(elementMap[elementKey])\n\n return elementMap[elementKey]\n },\n}\n\nexport const PortalContext: Context<PortalContextValue> =\n createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {use} from 'react'\n\nimport {isRecord} from '../../core/lib/isRecord'\nimport {PortalContext} from './PortalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport function usePortal(): PortalContextValue {\n const value = use(PortalContext)\n\n assertPortalContext(value)\n\n return value\n}\n\n/** @internal */\nexport function assertPortalContext(\n value: PortalContextValue | null,\n): asserts value is PortalContextValue {\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n}\n","import {type ReactNode, type ReactPortal, use} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {CardContext} from '../../primitives/card/CardContext'\nimport {CardInternalProvider} from '../../primitives/card/CardInternalProvider'\nimport {CardProvider} from '../../primitives/card/CardProvider'\nimport {assertCardContext} from '../../primitives/card/useCard'\nimport {usePortal} from './usePortal'\n\n/** @public */\nexport interface PortalProps {\n children: ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/** @public */\nexport function Portal(props: PortalProps): ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) ||\n portal.elements?.['default']\n\n if (!portalElement) {\n return null\n }\n\n const card = use(CardContext)\n assertCardContext(card)\n\n return createPortal(\n <CardInternalProvider root>\n <CardProvider scheme={card.scheme} tone={card.tone}>\n {children}\n </CardProvider>\n </CardInternalProvider>,\n portalElement,\n )\n}\n","import type {Placement} from '../../core/types'\n\nexport const DEFAULT_TOOLTIP_DELAY = {\n open: 500,\n close: 100,\n}\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../../core/lib/createGlobalScopedContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: Context<TooltipDelayGroupContextValue | null> =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/v4/tooltipDelayGroup',\n null,\n )\n","import {card, CARD_STYLE_PROP_KEYS, type CardStyleProps} from '@sanity/ui-css'\nimport type {CardTone} from '@sanity/ui-tokens'\nimport {use} from 'react'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {Props} from '../../core/types'\nimport type {BoxElementType} from '../box/Box'\nimport {CardInternalContext} from './CardInternalContext'\nimport {CardInternalProvider} from './CardInternalProvider'\nimport {CardProvider} from './CardProvider'\nimport {useCard} from './useCard'\n\n/** @public */\nexport const DEFAULT_CARD_ELEMENT = 'div'\n\n/** @public */\nexport interface CardOwnProps extends Omit<CardStyleProps, 'tone'> {\n /**\n * Do not use in production.\n * @beta\n * @deprecated Use `__unstable_pattern` instead.\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n disabled?: boolean\n pressed?: boolean\n selected?: boolean\n target?: string\n tone?: CardTone | 'inherit'\n}\n\n/** @public */\nexport type CardElementType = BoxElementType\n\n/** @public */\nexport type CardProps<E extends CardElementType = CardElementType> = Props<CardOwnProps, E>\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(\n props: CardProps<E>,\n): React.JSX.Element {\n const [\n {\n scheme: schemeProp,\n tone: toneProp = 'inherit',\n // split style props\n ...styleProps\n },\n // split DOM props\n domProps,\n ] = _splitKeys(props as CardProps<typeof DEFAULT_CARD_ELEMENT>, CARD_STYLE_PROP_KEYS)\n\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: As = DEFAULT_CARD_ELEMENT,\n\n pressed,\n\n selected,\n ...restDomProps\n } = domProps\n\n const context = useCard()\n const internalContext = use(CardInternalContext)\n const tone = toneProp === 'inherit' ? context?.tone : toneProp\n const scheme = schemeProp ?? context?.scheme\n\n const styleTone = tone === context.tone && !internalContext?.root ? undefined : tone\n const styleScheme = scheme === context.scheme && !internalContext?.root ? undefined : scheme\n\n let node = (\n <As\n data-ui=\"Card\"\n {...restDomProps}\n className={card({\n ...styleProps,\n __unstable_pattern: styleProps.__unstable_pattern ?? (checkered ? 'checkered' : undefined),\n // If the style scheme is different from the context scheme, then set the tone\n tone: styleScheme ? tone : styleTone,\n scheme: styleScheme,\n })}\n // Extract the disabled prop without removing it from `...rest` so that the underlying\n // <button> or <a> has `[data-disabled]` when needed\n data-disabled={props.disabled ? '' : props['data-disabled']}\n data-focus-ring={focusRing ? '' : props['data-focus-ring']}\n data-pressed={pressed ? '' : props['data-pressed']}\n data-selected={selected ? '' : props['data-selected']}\n />\n )\n\n if (scheme === context.scheme && tone === context.tone) {\n return node\n }\n\n node = (\n <CardInternalProvider CompatProvider={internalContext?.CompatProvider}>\n <CardProvider scheme={scheme ?? 'light'} tone={tone ?? 'default'}>\n {node}\n </CardProvider>\n </CardInternalProvider>\n )\n\n if (internalContext?.CompatProvider) {\n const CompatProvider = internalContext.CompatProvider\n\n return (\n <CompatProvider scheme={scheme ?? 'light'} tone={tone ?? context.tone}>\n {node}\n </CompatProvider>\n )\n }\n\n return node\n}\n","import {isRecord} from '../../core/lib/isRecord'\nimport type {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport type {LayerContextValue} from './types'\n\nexport const LayerContext: Context<LayerContextValue | null> =\n createGlobalScopedContext<LayerContextValue | null>('@sanity/ui/v4/layer', null)\n","import {use} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './LayerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport function useLayer(): LayerContextValue {\n const value = use(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {type FocusEvent, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {EMPTY_RECORD} from '../../core/constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../core/helpers/element'\nimport type {Props} from '../../core/types'\nimport {Card, type CardElementType} from '../../primitives/card/Card'\nimport type {LayerElementType, LayerOwnProps} from './Layer'\nimport {useLayer} from './useLayer'\n\n/** @internal */\nexport const DEFAULT_LAYER_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type LayerCardOwnProps = Omit<LayerOwnProps, 'zOffset'>\n\n/** @internal */\nexport type LayerCardElementType = LayerElementType\n\n/** @internal */\nexport type LayerCardProps<E extends LayerCardElementType = LayerCardElementType> = Props<\n LayerCardOwnProps,\n E\n>\n\n/** @internal */\nexport function LayerCard<E extends LayerCardElementType = typeof DEFAULT_LAYER_CARD_ELEMENT>(\n props: LayerCardProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_LAYER_CARD_ELEMENT,\n children,\n onActivate,\n onFocus,\n position = 'relative',\n ref: forwardedRef,\n style = EMPTY_RECORD,\n ...rest\n } = props as LayerCardProps<typeof DEFAULT_LAYER_CARD_ELEMENT>\n\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Card\n data-ui=\"Layer\"\n {...rest}\n ref={ref}\n as={as as CardElementType}\n position={position}\n style={{...style, zIndex}}\n onFocus={handleFocus}\n >\n {children}\n </Card>\n )\n}\n","import {type Breakpoint, BREAKPOINTS} from '@sanity/ui-css'\nimport {useMemo, useSyncExternalStore} from 'react'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => Breakpoint\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${BREAKPOINTS[index + 1] - 1}px)`\n }\n\n if (index === BREAKPOINTS.length - 1) {\n return `screen and (min-width: ${BREAKPOINTS[index]}px)`\n }\n\n return `screen and (min-width: ${BREAKPOINTS[index]}px) and (max-width: ${BREAKPOINTS[index + 1] - 1}px)`\n}\n\nfunction _createMediaStore(): _MediaStore {\n const mediaLen = BREAKPOINTS.length\n\n let sizes:\n | {\n index: number\n mq: MediaQueryList\n }[]\n | undefined = undefined\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (typeof window === 'undefined') {\n return sizes\n }\n\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n sizes.push({\n index,\n mq: window.matchMedia(_getMediaQuery(index)),\n })\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes() ?? []) {\n if (mq.matches) return index as Breakpoint\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes() ?? []) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot(): Breakpoint {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): Breakpoint {\n const store = useMemo(() => _createMediaStore(), [])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui-css'\nimport {type ReactNode, use, useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {_getResponsiveProp} from '../../core/helpers/props'\nimport {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './LayerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = use(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = _getResponsiveProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex) as Breakpoint\n const zIndex = parent ? parent.zIndex + (zOffset[mediaIndex] ?? 0) : (zOffset[mediaIndex] ?? 0)\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext value={value}>{children}</LayerContext>\n}\n","import type {ResponsiveProp} from '@sanity/ui-css'\n\nimport type {Props} from '../../core/types'\nimport type {CardElementType, CardOwnProps} from '../../primitives/card/Card'\nimport {LayerCard} from './LayerCard'\nimport {LayerProvider} from './LayerProvider'\n\n/** @public */\nexport const DEFAULT_LAYER_ELEMENT = 'div'\n\n/** @public */\nexport interface LayerOwnProps extends CardOwnProps {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport type LayerElementType = CardElementType\n\n/** @public */\nexport type LayerProps<E extends LayerElementType = LayerElementType> = Props<LayerOwnProps, E>\n\n/** @public */\nexport function Layer<E extends LayerElementType = typeof DEFAULT_LAYER_ELEMENT>(\n props: LayerProps<E>,\n): React.JSX.Element {\n const {zOffset = 1, ...rest} = props as LayerProps<typeof DEFAULT_LAYER_ELEMENT>\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerCard {...rest} />\n </LayerProvider>\n )\n}\n","import {motion, type MotionStyle} from 'motion/react'\nimport {useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../core/constants'\nimport type {Placement} from '../../core/types'\nimport {Layer, type LayerOwnProps, type LayerProps} from '../layer/Layer'\n\n/** @internal */\nexport const DEFAULT_TOOLTIP_LAYER_ELEMENT = 'div'\n\n/** @internal */\nexport interface TooltipLayerOwnProps extends LayerOwnProps {\n animate?: boolean\n originX?: number\n originY?: number\n placement?: Placement\n}\n\n/** @internal */\nexport type TooltipLayerProps = TooltipLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function TooltipLayer(props: TooltipLayerProps): React.JSX.Element {\n const {\n animate,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n tone,\n ...rest\n } = props\n\n const rootStyle: MotionStyle = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n data-ui=\"Tooltip__layer\"\n {...rest}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n as={motion.div}\n data-animate={animate ? '' : undefined}\n data-placement={placement}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n initial={animate ? ['hidden', 'initial'] : undefined}\n padding={padding}\n radius={radius}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n tone={tone}\n transition={POPOVER_MOTION_PROPS.transition}\n variants={POPOVER_MOTION_PROPS.card}\n >\n {children}\n </Layer>\n )\n}\n","import {\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {\n type RadiusStyleProps,\n type ResponsiveProp,\n type ShadowStyleProps,\n tooltip,\n} from '@sanity/ui-css'\nimport type {CardTone, ColorScheme, FontTextSize} from '@sanity/ui-tokens'\nimport {AnimatePresence} from 'motion/react'\nimport {\n cloneElement,\n startTransition,\n use,\n useCallback,\n useEffect,\n useEffectEvent,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Hotkeys} from '../../components/hotkeys/Hotkeys'\nimport {Z_OFFSETS} from '../../core/constants'\nimport {getElementRef} from '../../core/getElementRef'\nimport type {ComponentType, Delay, Placement, Props} from '../../core/types'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {useUnique} from '../../hooks/useUnique'\nimport {origin} from '../../middleware/origin'\nimport {BoundaryElementContext} from '../../utils/boundaryElement/BoundaryElementContext'\nimport {Portal} from '../../utils/portal/Portal'\nimport {PortalContext} from '../../utils/portal/PortalContext'\nimport {assertPortalContext} from '../../utils/portal/usePortal'\nimport type {LayerOwnProps} from '../layer/Layer'\nimport {Text} from '../text/Text'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DELAY,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroup/TooltipDelayGroupContext'\nimport {TooltipLayer} from './TooltipLayer'\n\n/** @public */\nexport const DEFAULT_TOOLTIP_ELEMENT = 'div'\n\n/** @public */\nexport type TooltipOwnProps = LayerOwnProps &\n RadiusStyleProps &\n ShadowStyleProps & {\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n /** @deprecated Will be removed in the next major version */\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement<\n React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>\n >\n content?: React.ReactNode\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n disabled?: boolean\n fallbackPlacements?: Placement[]\n hotkeys?: string[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n scheme?: ColorScheme\n text?: React.ReactNode\n textSize?: ResponsiveProp<FontTextSize>\n tone?: CardTone\n }\n\n/** @public */\nexport type TooltipElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TooltipProps<E extends TooltipElementType = TooltipElementType> = Props<\n TooltipOwnProps,\n E\n>\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_ELEMENT>(\n props: TooltipProps<E>,\n): React.JSX.Element {\n const {\n animate: animateProp = true,\n arrow: _arrow,\n as = DEFAULT_TOOLTIP_ELEMENT,\n boundaryElement: _boundaryElement,\n children: childProp,\n className,\n content: contentProp,\n delay = DEFAULT_TOOLTIP_DELAY,\n disabled,\n id: idProp,\n fallbackPlacements: _fallbackPlacements,\n hotkeys: hotkeysProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal = true,\n radius = 3,\n ref: forwardedRef,\n shadow = 2,\n text,\n textSize = 1,\n zOffset = Z_OFFSETS.tooltip,\n ...rest\n } = props as TooltipProps<typeof DEFAULT_TOOLTIP_ELEMENT>\n\n const _randomId = useId()\n const id = idProp ?? _randomId\n\n const boundaryElement = _boundaryElement ?? use(BoundaryElementContext)\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : animateProp\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n let portalElement: HTMLElement | null = null\n if (portal) {\n const portalContext = use(PortalContext)\n assertPortalContext(portalContext)\n portalElement =\n typeof portal === 'string' ? portalContext.elements?.[portal] || null : portalContext.element\n }\n\n const middleware = useMiddleware({\n animate,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\n\n const {floatingStyles, placement, middlewareData, refs} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n transform: false,\n })\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const delayGroupContext = use(TooltipDelayGroupContext)\n const handleGroupOpenChange = delayGroupContext?.handleOpenChange\n\n const groupVisible = delayGroupContext?.visibleTooltipId === id\n\n const openDelay = typeof delay === 'number' ? delay : (delay.open ?? DEFAULT_TOOLTIP_DELAY.open)\n const closeDelay =\n typeof delay === 'number' ? delay : (delay.close ?? DEFAULT_TOOLTIP_DELAY.close)\n\n const openDelayRef = useRef(openDelay)\n useEffect(() => {\n // update `openDelayRef` when `openDelay` changes\n openDelayRef.current = openDelay\n }, [openDelay])\n\n const closeDelayRef = useRef(closeDelay)\n useEffect(() => {\n // update `closeDelayRef` when `closeDelay` changes\n closeDelayRef.current = closeDelay\n }, [closeDelay])\n\n const [referenceHovered, setReferenceHovered] = useState(false)\n const [referenceFocused, setReferenceFocused] = useState(false)\n\n const isOpen = referenceHovered || referenceFocused\n\n const [localVisible, setVisible] = useState(false)\n\n const visible = groupVisible || localVisible\n\n const timerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n\n useEffect(() => {\n if (handleGroupOpenChange) {\n handleGroupOpenChange({open: isOpen, id})\n return\n }\n\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = undefined\n\n if (isOpen) {\n // start open timer\n timerRef.current = setTimeout(() => {\n setVisible(true)\n timerRef.current = undefined\n }, openDelayRef.current)\n return\n }\n\n // start close timer\n timerRef.current = setTimeout(() => {\n setVisible(false)\n timerRef.current = undefined\n }, closeDelayRef.current)\n\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = undefined\n }\n }, [isOpen, handleGroupOpenChange, id])\n\n const hotkeys = useUnique(hotkeysProp)\n\n const content = useMemo(() => {\n if (contentProp || text || hotkeys) {\n return (\n <>\n {text && <Text size={textSize}>{text}</Text>}\n {contentProp}\n {hotkeys && <Hotkeys aria-hidden={true} keys={hotkeys} />}\n </>\n )\n }\n\n return undefined\n }, [contentProp, hotkeys, text, textSize])\n\n // Hide immediately\n const hide = useCallback(() => {\n handleGroupOpenChange?.({open: false, id, immediate: true})\n setVisible(false)\n setReferenceHovered(false)\n setReferenceFocused(false)\n }, [handleGroupOpenChange, id])\n\n const childOnBlur = childProp?.props?.onBlur\n const childOnFocus = childProp?.props?.onFocus\n const childOnMouseEnter = childProp?.props?.onMouseEnter\n const childOnMouseLeave = childProp?.props?.onMouseLeave\n const childOnContextMenu = childProp?.props?.onContextMenu\n\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLElement>) => {\n childOnBlur?.(e)\n setReferenceFocused(false)\n },\n [childOnBlur],\n )\n const handleContextMenu = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n childOnContextMenu?.(e)\n setReferenceHovered(false)\n setReferenceFocused(false)\n hide()\n },\n [childOnContextMenu, hide],\n )\n const handleFocus = useCallback(\n (e: React.FocusEvent<HTMLElement>) => {\n childOnFocus?.(e)\n setReferenceFocused(true)\n },\n [childOnFocus],\n )\n const handleMouseEnter = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n childOnMouseEnter?.(e)\n setReferenceHovered(true)\n },\n [childOnMouseEnter],\n )\n const handleMouseLeave = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n childOnMouseLeave?.(e)\n setReferenceHovered(false)\n },\n [childOnMouseLeave],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({\n referenceElement,\n visible,\n onClose: useCallback(() => {\n setReferenceHovered(false)\n }, []),\n })\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled) {\n startTransition(() => hide())\n }\n }, [disabled, hide])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content) {\n startTransition(() => hide())\n }\n }, [content, hide])\n\n useEffect(() => {\n if (!visible) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n // If the user clicks on escape key, close the tooltip.\n if (event.key === 'Escape') {\n startTransition(() => hide())\n return\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [hide, visible])\n\n // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n startTransition(() => {\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n })\n }, [boundaryElement, portalElement])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n 'aria-describedby': visible ? id : undefined,\n 'onBlur': handleBlur,\n 'onFocus': handleFocus,\n 'onMouseEnter': handleMouseEnter,\n 'onMouseLeave': handleMouseLeave,\n 'onContextMenu': handleContextMenu,\n 'ref': setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n id,\n visible,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const node = (\n <TooltipLayer\n data-ui=\"Tooltip\"\n {...rest}\n ref={setFloating}\n animate={animate}\n as={as}\n className={tooltip({className})}\n display=\"flex\"\n gap={padding}\n id={id}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n role=\"tooltip\"\n shadow={shadow}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n {content}\n </TooltipLayer>\n )\n\n let children = visible ? node : null\n\n if (visible && portal) {\n children = (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{node}</Portal>\n )\n }\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\nfunction useMiddleware({\n animate,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, boundaryElement, fallbackPlacements, rootBoundary])\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n onClose,\n referenceElement,\n visible,\n}: {\n onClose: () => void\n referenceElement: HTMLElement | null\n visible: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n onClose()\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!visible) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [visible])\n}\n","import {\n button,\n button_loadingBox,\n BUTTON_STYLE_PROP_KEYS,\n type ButtonStyleProps,\n type ResponsiveProp,\n} from '@sanity/ui-css'\nimport type {FontTextSize} from '@sanity/ui-tokens'\nimport {isValidElement} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box} from '../box/Box'\nimport {Spinner} from '../spinner/Spinner'\nimport {Text, type TextOwnProps} from '../text/Text'\nimport {Tooltip, type TooltipProps} from '../tooltip/Tooltip'\n\n/** @public */\nexport const DEFAULT_BUTTON_ELEMENT = 'button'\n\n/** @public */\nexport interface ButtonOwnProps extends ButtonStyleProps {\n 'data-ui'?: string\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'icon'?: React.ElementType | React.ReactNode\n 'iconRight'?: React.ElementType | React.ReactNode\n /** @beta Do not use in production, as this might change.*/\n 'loading'?: boolean\n 'muted'?: boolean\n 'selected'?: boolean\n 'textAlign'?: TextOwnProps['align']\n 'text'?: React.ReactNode\n 'textOverflow'?: TextOwnProps['textOverflow']\n 'textWeight'?: TextOwnProps['weight']\n 'tooltip'?: Omit<TooltipProps<'div'>, 'as' | 'children'>\n}\n\n/** @public */\nexport type ButtonElementType = 'a' | 'button' | 'label' | ComponentType\n\n/** @public */\nexport type ButtonProps<E extends ButtonElementType = ButtonElementType> = Props<ButtonOwnProps, E>\n\n/** @public */\nexport function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEMENT>(\n props: ButtonProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_BUTTON_ELEMENT,\n children,\n disabled,\n fontSize = 1,\n icon: Icon,\n iconRight: IconRight,\n loading,\n muted,\n selected,\n text,\n textAlign,\n textOverflow = 'ellipsis',\n textWeight = 'medium',\n tooltip,\n type = 'button',\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as ButtonProps<typeof DEFAULT_BUTTON_ELEMENT>, BUTTON_STYLE_PROP_KEYS)\n\n let href: string | undefined = undefined\n\n if ('href' in domProps) {\n href = typeof domProps.href === 'string' ? domProps.href : href\n delete domProps.href\n }\n\n const node = (\n <Element\n data-ui=\"Button\"\n {...domProps}\n className={button(styleProps)}\n data-disabled={loading || disabled ? '' : props['data-disabled']}\n data-selected={selected ? '' : props['data-selected']}\n disabled={Boolean(loading || disabled)}\n // WORKAROUND: Since `a` elements don't support the `disabled` prop,\n // we need to remove the `href` prop from the DOM props when the button is disabled.\n // @ts-expect-error - the default element is a `button` and does not have the `href` prop\n href={disabled ? undefined : href}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n alignItems=\"center\"\n as=\"span\"\n className={button_loadingBox()}\n display=\"flex\"\n flex={1}\n justifyContent=\"center\"\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {Icon && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(Icon) && Icon}\n {isValidElementType(Icon) && <Icon />}\n </Text>\n )}\n\n {text && (\n <Box as=\"span\" maxWidth=\"auto\">\n <Text\n align={textAlign}\n as=\"span\"\n muted={muted}\n size={fontSize}\n textOverflow={textOverflow}\n weight={textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {children}\n\n {IconRight && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconRight) && IconRight}\n {isValidElementType(IconRight) && <IconRight />}\n </Text>\n )}\n </Element>\n )\n\n if (tooltip) {\n return <Tooltip {...tooltip}>{node}</Tooltip>\n }\n\n return node\n}\n","import type {Placement} from '../../core/types'\nimport type {PopoverMargins} from './types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {flex, FLEX_STYLE_PROP_KEYS, type FlexStyleProps} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {Props} from '../../core/types'\nimport type {BoxElementType} from '../box/Box'\n\n/** @public */\nexport const DEFAULT_FLEX_ELEMENT = 'div'\n\n/** @public */\nexport type FlexOwnProps = FlexStyleProps\n\n/** @public */\nexport type FlexElementType = BoxElementType\n\n/** @public */\nexport type FlexProps<E extends FlexElementType = FlexElementType> = Props<FlexOwnProps, E>\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport function Flex<E extends FlexElementType = typeof DEFAULT_FLEX_ELEMENT>(\n props: FlexProps<E>,\n): React.JSX.Element {\n const [\n // split style props\n styleProps,\n {\n as: Element = DEFAULT_FLEX_ELEMENT,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as FlexProps<typeof DEFAULT_FLEX_ELEMENT>, FLEX_STYLE_PROP_KEYS)\n\n return <Element data-ui=\"Flex\" {...domProps} className={flex(styleProps)} />\n}\n","import type {Strategy} from '@floating-ui/react-dom'\nimport {popover_card} from '@sanity/ui-css'\nimport {type HTMLMotionProps, motion} from 'motion/react'\nimport {useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../core/constants'\nimport type {Assign} from '../../core/types'\nimport {Flex} from '../flex/Flex'\nimport {Layer, type LayerOwnProps} from '../layer/Layer'\n\n/** @internal */\nexport interface PopoverLayerOwnProps extends LayerOwnProps {\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n children?: React.ReactNode\n originX?: number\n originY?: number\n referenceWidth?: number\n strategy?: Strategy\n x?: number\n y?: number\n}\n\n/** @public */\nexport type PopoverLayerProps = Assign<HTMLMotionProps<'div'>, PopoverLayerOwnProps>\n\n/** @internal */\nexport function PopoverLayer(props: PopoverLayerProps): React.JSX.Element {\n const {\n animate = false,\n children,\n maxWidth,\n padding,\n originX,\n originY,\n overflow,\n radius,\n referenceWidth,\n shadow,\n strategy,\n style,\n tone = 'inherit',\n x,\n y,\n ...rest\n } = props\n\n const rootStyle = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n top: y,\n width: referenceWidth,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, referenceWidth, style, x, y],\n )\n\n return (\n <Layer\n className={popover_card()}\n data-ui=\"Popover\"\n {...rest}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n as={motion.div}\n display=\"flex\"\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n flexDirection=\"column\"\n initial={animate ? ['hidden', 'initial'] : undefined}\n position={strategy}\n radius={radius}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n transition={POPOVER_MOTION_PROPS.transition}\n variants={POPOVER_MOTION_PROPS.card}\n >\n <Flex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n maxWidth={maxWidth}\n overflow={overflow}\n radius={radius}\n tabIndex={-1}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n </Layer>\n )\n}\n","import {detectOverflow, type Middleware} from '@floating-ui/react-dom'\n\nexport function size(options: {\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n matchReferenceWidth?: boolean\n padding?: number\n referenceWidthRef: React.RefObject<number | undefined>\n}): Middleware {\n const {padding = 0, constrainSize, matchReferenceWidth, referenceWidthRef} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n referenceWidthRef.current = reference.width\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n if (matchReferenceWidth) {\n elements.floating.style.width = `${reference.width}px`\n }\n if (constrainSize) {\n elements.floating.style.maxWidth = `${maxWidth}px`\n elements.floating.style.maxHeight = `${maxHeight}px`\n }\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {\n autoPlacement,\n flip,\n hide,\n type Middleware,\n offset,\n type RootBoundary,\n shift as shiftMiddleware,\n} from '@floating-ui/react-dom'\nimport {useMemo} from 'react'\n\nimport type {Placement} from '../../core/types'\nimport {origin} from '../../middleware/origin'\nimport {DEFAULT_POPOVER_PADDING} from './constants'\nimport {size} from './floating-ui/size'\n\nexport function useMiddleware({\n animate,\n constrainSize,\n distance,\n shift,\n fallbackPlacements,\n floatingBoundary,\n matchReferenceWidth,\n placement,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n}: {\n animate: boolean\n constrainSize: boolean\n distance: number\n shift: number\n fallbackPlacements: Placement[]\n floatingBoundary: HTMLElement | null\n matchReferenceWidth: boolean | undefined\n placement: Placement\n placementStrategy: 'flip' | 'autoPlacement'\n preventOverflow: boolean\n referenceBoundary: HTMLElement | null\n referenceWidthRef: React.RefObject<number | undefined>\n rootBoundary: RootBoundary\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placement].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: distance, crossAxis: shift}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n referenceWidthRef,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shiftMiddleware({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n constrainSize,\n distance,\n fallbackPlacements,\n floatingBoundary,\n matchReferenceWidth,\n placement,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n shift,\n ])\n}\n","import {autoUpdate, type RootBoundary, useFloating} from '@floating-ui/react-dom'\nimport {type MaxWidth, popover as popoverCss, type ResponsiveProp} from '@sanity/ui-css'\nimport {AnimatePresence} from 'motion/react'\nimport {\n cloneElement,\n type ForwardedRef,\n type ReactElement,\n type ReactNode,\n type Ref,\n use,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Z_OFFSETS} from '../../core/constants'\nimport {getElementRef} from '../../core/getElementRef'\nimport type {Assign, Placement} from '../../core/types'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {BoundaryElementContext} from '../../utils/boundaryElement/BoundaryElementContext'\nimport {Portal} from '../../utils/portal/Portal'\nimport {useLayer} from '../layer/useLayer'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\nimport {PopoverLayer, type PopoverLayerOwnProps, type PopoverLayerProps} from './PopoverLayer'\nimport type {PopoverMargins, PopoverUpdateCallback} from './types'\nimport {useMiddleware} from './useMiddleware'\n\n/** @public */\nexport type PopoverOwnProps = Omit<PopoverLayerOwnProps, 'maxWidth'> & {\n /** @beta */\n __unstable_distance?: number\n /**\n * @beta\n * @deprecated Will be removed in the next major version */\n __unstable_margins?: PopoverMargins\n /** @beta */\n __unstable_shift?: number\n /**\n * @deprecated Will be removed in the next major version\n */\n arrow?: boolean\n children?: ReactElement<{ref: ForwardedRef<HTMLElement>}>\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n *\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n placement?: Placement\n /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: ResponsiveProp<MaxWidth>\n}\n\n/** @public */\nexport type PopoverElementType = 'div'\n\n/** @public */\nexport type PopoverProps = Assign<PopoverLayerProps, PopoverOwnProps>\n\nfunction ViewportOverlay() {\n const {zIndex} = useLayer()\n\n return (\n <div\n style={{\n position: 'fixed',\n inset: 0,\n width: '100vw',\n height: '100vh',\n zIndex,\n }}\n />\n )\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport function Popover(props: PopoverProps): React.JSX.Element {\n const {\n // Remove `__unstable_margins` prop in next major version\n __unstable_margins: _margins = DEFAULT_POPOVER_MARGINS,\n __unstable_distance: distance = DEFAULT_POPOVER_DISTANCE,\n __unstable_shift: shift = 0,\n animate: _animate = false,\n // Remove `arrow` prop in next major version\n arrow: _arrow,\n children: childProp,\n className,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n modal,\n onActivate,\n open,\n overflow = 'hidden',\n padding,\n placement: placement = 'bottom',\n placementStrategy = 'flip',\n portal = true,\n preventOverflow = true,\n radius = 4,\n ref: forwardedRef,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n shadow = 3,\n width: widthProp = 'auto',\n zOffset = Z_OFFSETS.popover,\n updateRef,\n ...rest\n } = props\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary = _floatingBoundary ?? use(BoundaryElementContext)\n const referenceBoundary = _referenceBoundary ?? use(BoundaryElementContext)\n\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n const middleware = useMiddleware({\n animate,\n constrainSize,\n distance,\n fallbackPlacements,\n floatingBoundary,\n matchReferenceWidth,\n placement,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n shift,\n })\n\n const {x, y, middlewareData, refs, strategy, update} = useFloating({\n middleware,\n placement: placement,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => refs.reference.current)\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: refs.setReference})\n }, [childProp, referenceElement, refs.setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const node = (\n <>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned\n before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverLayer\n {...rest}\n ref={setFloating}\n animate={animate}\n className={popoverCss({className})}\n hidden={referenceHidden}\n maxWidth={widthProp}\n originX={originX}\n originY={originY}\n overflow={overflow}\n padding={padding}\n radius={radius}\n shadow={shadow}\n strategy={strategy}\n x={x}\n y={y}\n zOffset={zOffset}\n >\n {content}\n </PopoverLayer>\n </>\n )\n\n let children = open ? node : null\n\n if (open && portal) {\n children = (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{node}</Portal>\n )\n }\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n","import {selectable, SELECTABLE_STYLE_PROP_KEYS, type SelectableStyleProps} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_SELECTABLE_ELEMENT = 'button'\n\n/** @public */\nexport interface SelectableOwnProps extends SelectableStyleProps {\n selected?: boolean\n}\n\n/** @public */\nexport type SelectableElementType = 'a' | 'button' | 'span' | ComponentType\n\n/** @public */\nexport type SelectableProps<E extends SelectableElementType = SelectableElementType> = Props<\n SelectableOwnProps,\n E\n>\n\n/** @public */\nexport function Selectable<E extends SelectableElementType = typeof DEFAULT_SELECTABLE_ELEMENT>(\n props: SelectableProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_SELECTABLE_ELEMENT,\n selected,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(\n props as SelectableProps<typeof DEFAULT_SELECTABLE_ELEMENT>,\n SELECTABLE_STYLE_PROP_KEYS,\n )\n\n return (\n <Element\n data-ui=\"Selectable\"\n {...domProps}\n className={selectable(styleProps)}\n data-pressed={selected ? '' : props['data-pressed']}\n />\n )\n}\n","import {stack, STACK_STYLE_PROP_KEYS, type StackStyleProps} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {Props} from '../../core/types'\nimport type {BoxElementType} from '../box/Box'\n\n/** @public */\nexport const DEFAULT_STACK_ELEMENT = 'div'\n\n/** @public */\nexport type StackOwnProps = StackStyleProps\n\n/** @public */\nexport type StackElementType = BoxElementType\n\n/** @public */\nexport type StackProps<E extends StackElementType = StackElementType> = Props<StackOwnProps, E>\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport function Stack<E extends StackElementType = typeof DEFAULT_STACK_ELEMENT>(\n props: StackProps<E>,\n): React.JSX.Element {\n const [\n // split style props\n styleProps,\n {\n as: Element = DEFAULT_STACK_ELEMENT,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as StackProps<typeof DEFAULT_STACK_ELEMENT>, STACK_STYLE_PROP_KEYS)\n\n return <Element data-ui=\"Stack\" {...domProps} className={stack(styleProps)} />\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n _input_element,\n _input_presentation,\n type InputStyleProps,\n type ResponsiveProp,\n textInput,\n textInput_element,\n textInput_prefix,\n textInput_suffix,\n} from '@sanity/ui-css'\nimport type {FontWeight, Space} from '@sanity/ui-tokens'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useImperativeHandle,\n useRef,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {EMPTY_RECORD} from '../../core/constants'\nimport {_getResponsiveProp} from '../../core/helpers/props'\nimport {isRecord} from '../../core/lib/isRecord'\nimport type {ComponentType, Props} from '../../core/types'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {Box} from '../box/Box'\nimport {Button, type ButtonProps} from '../button/Button'\nimport {Text} from '../text/Text'\n\n/** @public */\nexport const DEFAULT_TEXT_INPUT_ELEMENT = 'input'\n\n/** @public */\nexport type TextInputClearButtonProps = Omit<\n ButtonProps<'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/** @public */\nexport type TextInputOwnProps = InputStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n prefix?: ReactNode\n suffix?: ReactNode\n /**\n * @deprecated Use `fontWeight` instead\n */\n weight?: FontWeight\n}\n\n/** @public */\nexport type TextInputElementType = 'input' | ComponentType\n\n/** @public */\nexport type TextInputProps<E extends TextInputElementType = TextInputElementType> = Props<\n TextInputOwnProps,\n E\n>\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport function TextInput<E extends TextInputElementType = typeof DEFAULT_TEXT_INPUT_ELEMENT>(\n props: TextInputProps<E>,\n): React.JSX.Element {\n const {\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_INPUT_ELEMENT,\n border,\n className,\n clearButton,\n disabled = false,\n flex,\n fontSize = 2,\n fontWeight: _fontWeight,\n gap = 3,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius,\n readOnly,\n ref: forwardedRef,\n suffix,\n customValidity,\n type = 'text',\n weight: _weight,\n width,\n ...rest\n } = props as TextInputProps<typeof DEFAULT_TEXT_INPUT_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n const fontWeight = _fontWeight ?? _weight\n const padding = _getResponsiveProp(paddingProp)\n\n const withClearButton = Boolean(clearButton)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n return (\n <span\n className={textInput({\n className,\n border,\n flex,\n fontSize,\n fontWeight,\n padding,\n radius,\n gap,\n width,\n })}\n data-icon-left={IconComponent ? '' : undefined}\n data-icon-right={IconRightComponent ? '' : undefined}\n data-prefix={prefix ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n >\n {prefix && (\n <span className={textInput_prefix()}>\n <span>{prefix}</span>\n </span>\n )}\n\n <span className={textInput_element()}>\n <Element\n {...rest}\n ref={ref}\n className={_input_element()}\n data-invalid={customValidity ? '' : undefined}\n data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled}\n readOnly={readOnly}\n type={type}\n />\n\n <span className={_input_presentation()}>\n {IconComponent && (\n <Box as=\"span\" insetLeft={0} insetTop={0} padding={paddingProp} position=\"absolute\">\n <Text as=\"span\" size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </Box>\n )}\n\n {!withClearButton && IconRightComponent && (\n <Box as=\"span\" insetRight={0} insetTop={0} padding={paddingProp} position=\"absolute\">\n <Text as=\"span\" size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </Box>\n )}\n </span>\n\n {!disabled && !readOnly && clearButton && (\n <ClearButton\n clearButtonProps={isRecord(clearButton) ? clearButton : EMPTY_RECORD}\n fontSize={fontSize}\n handleClearClick={handleClearClick}\n handleClearMouseDown={handleClearMouseDown}\n padding={padding}\n radius={radius}\n />\n )}\n </span>\n\n {suffix && (\n <span className={textInput_suffix()}>\n <span>{suffix}</span>\n </span>\n )}\n </span>\n )\n}\n\nfunction ClearButton({\n fontSize,\n radius,\n clearButtonProps,\n handleClearClick,\n handleClearMouseDown,\n padding: paddingProp,\n}: {\n clearButtonProps: TextInputClearButtonProps\n handleClearClick: (event: MouseEvent<HTMLButtonElement>) => void\n handleClearMouseDown: (event: MouseEvent<HTMLButtonElement>) => void\n padding: ResponsiveProp<Space>\n} & Pick<TextInputOwnProps, 'fontSize' | 'radius'>) {\n const padding = _getResponsiveProp(paddingProp)\n\n const boxPadding = padding.map((p): Space => {\n if (p === 0) return 0\n if (p === 1) return 1\n if (p === 2) return 1\n if (p === 3) return 1\n\n return typeof p === 'number' ? ((p - 2) as Space) : 0\n }) as ResponsiveProp<Space>\n\n const buttonPadding = padding.map((p): Space => {\n if (p === 0) return 0\n if (p === 1) return 0\n if (p === 2) return 1\n if (p === 3) return 2\n\n return typeof p === 'number' ? ((p - 1) as Space) : 0\n }) as ResponsiveProp<Space>\n\n return (\n <Box\n as=\"span\"\n insetRight={0}\n insetTop={0}\n padding={boxPadding}\n position=\"absolute\"\n style={{zIndex: 2}}\n >\n <Button\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={buttonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </Box>\n )\n}\n","import {type KeyboardEvent, type ReactNode} from 'react'\n\nimport {_isEnterToClickElement} from '../../core/helpers/element'\n\nexport interface AutocompleteOptionProps {\n children: ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = () => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n }\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import type {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import type {Placement} from '../../core/types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS: string[] = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport type {ResponsiveProp} from '@sanity/ui-css'\nimport type {Radius, Space} from '@sanity/ui-tokens'\nimport {\n type ChangeEvent,\n cloneElement,\n type ElementType,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useEffect,\n useImperativeHandle,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../core/constants'\nimport {_raf} from '../../core/helpers/animation'\nimport {_hasFocus, focusFirstDescendant} from '../../core/helpers/focus'\nimport {_getResponsiveProp} from '../../core/helpers/props'\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box, type BoxOwnProps} from '../../primitives/box/Box'\nimport {Button} from '../../primitives/button/Button'\nimport {Popover, type PopoverProps} from '../../primitives/popover/Popover'\nimport {Selectable} from '../../primitives/selectable/Selectable'\nimport {SpinnerAnimatedIcon} from '../../primitives/spinner/SpinnerAnimatedIcon'\nimport {Stack} from '../../primitives/stack/Stack'\nimport {Text} from '../../primitives/text/Text'\nimport {TextInput, type TextInputOwnProps} from '../../primitives/textInput/TextInput'\nimport {AutocompleteOption} from './AutocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport type {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/** @public */\nexport const DEFAULT_AUTOCOMPLETE_ELEMENT = 'input'\n\n/** @public */\nexport type AutocompleteOwnProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> =\n TextInputOwnProps & {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n icon?: ElementType | ReactNode\n /** @beta */\n listBox?: BoxOwnProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: ResponsiveProp<Space>\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: ForwardedRef<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n value?: string\n }\n\n/** @public */\nexport type AutocompleteElementType = 'input' | ComponentType\n\n/** @public */\nexport type AutocompleteProps<\n E extends AutocompleteElementType = AutocompleteElementType,\n Option extends BaseAutocompleteOption = BaseAutocompleteOption,\n> = Props<AutocompleteOwnProps<Option>, E>\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport function Autocomplete<\n E extends AutocompleteElementType = typeof DEFAULT_AUTOCOMPLETE_ELEMENT,\n Option extends BaseAutocompleteOption = BaseAutocompleteOption,\n>(props: AutocompleteProps<E, Option>): React.JSX.Element {\n const {\n as = DEFAULT_AUTOCOMPLETE_ELEMENT,\n border,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n flex,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...rest\n } = props as AutocompleteProps<typeof DEFAULT_AUTOCOMPLETE_ELEMENT, Option>\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const radius = _getResponsiveProp(radiusProp)\n\n const innerRadius = _getResponsiveProp(\n radius.map((r): Radius => {\n if (r === undefined || r === 'full') return 'full'\n if (r === 0) return 0\n if (r === 1) return 1\n if (r === 2) return 1\n if (r === 3) return 2\n return (r - 1) as Radius\n }) as ResponsiveProp<Radius>,\n )\n\n const defaultRenderOption = ({value}: BaseAutocompleteOption) => (\n <Selectable as=\"button\" padding={paddingProp} radius={innerRadius}>\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Selectable>\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n\n // Element refs that need to be accessed during render\n const [inputElement, setInputElement] = useState<HTMLInputElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward inputElement state to inputElementRef\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n inputElementRef,\n () => inputElement,\n [inputElement],\n )\n // Forward inputElement to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = _getResponsiveProp(paddingProp)\n const currentOption = value !== null ? options.find((o) => o.value === value) : undefined\n const filteredOptions = options.filter((option) => (query ? filterOption(query, option) : true))\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n }\n\n const handleRootFocus = (event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }\n\n const handleOptionSelect = (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n }\n\n const handleRootKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n }\n\n const dispatchOpen = () => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }\n\n const handleInputFocus = (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n }\n\n const handlePopoverMouseEnter = () => {\n popoverMouseWithinRef.current = true\n }\n\n const handlePopoverMouseLeave = () => {\n popoverMouseWithinRef.current = false\n }\n\n const handleClearButtonClick = () => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }\n\n const handleClearButtonFocus = () => {\n dispatch({type: 'input/focus'})\n }\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = (() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n })()\n\n const openButtonBoxPadding = padding.map((p) => {\n if (p === undefined) return 0\n if (p === 0) return 0\n if (p === 1) return 1\n if (p === 2) return 1\n\n return p - 2\n }) as ResponsiveProp<Space>\n\n const openButtonPadding = padding.map((v) =>\n v === undefined ? undefined : (Math.max(v - 1, 0) as Space),\n ) as ResponsiveProp<Space>\n\n const openButtonProps: AutocompleteOpenButtonProps =\n typeof openButton === 'object' ? openButton : EMPTY_RECORD\n\n const handleOpenClick = (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps['onClick']) openButtonProps['onClick'](event)\n\n _raf(() => inputElementRef.current?.focus())\n }\n\n const openButtonNode = (() => {\n if (disabled) return undefined\n if (readOnly) return undefined\n if (!openButton) return undefined\n\n return (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n radius={innerRadius}\n selected={expanded}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n )\n })()\n\n const inputValue = (() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n })()\n\n const handleListBoxKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) {\n inputElementRef.current?.focus()\n event.preventDefault()\n }\n }\n }\n\n const content = (() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box data-ui=\"AutoComplete__results\" onKeyDown={handleListBoxKeyDown} {...listBox}>\n <Stack\n ref={listBoxElementRef}\n aria-multiselectable={false}\n as=\"ul\"\n data-ui=\"AutoComplete__resultsList\"\n gap={1}\n id={listBoxId}\n padding={1}\n role=\"listbox\"\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n key={option.value}\n id={`${id}-option-${option.value}`}\n selected={active}\n value={option.value}\n onSelect={handleOptionSelect}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n })()\n\n const results = (() => {\n if (renderPopover) {\n return (\n <RenderPopover\n content={content}\n hidden={!expanded}\n inputElement={inputElement}\n renderPopover={renderPopover}\n resultsPopoverElementRef={resultsPopoverElementRef}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n />\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n ref={resultsPopoverElementRef}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n referenceElement={inputElement}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n {...popover}\n />\n )\n })()\n\n return (\n <Box\n ref={rootElementRef}\n data-ui=\"Autocomplete\"\n flex={flex}\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n >\n <TextInput\n {...rest}\n ref={setInputElement}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n as={as}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && SpinnerAnimatedIcon}\n id={id}\n inputMode=\"search\"\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n />\n {results}\n </Box>\n )\n}\n\nfunction RenderPopover({\n renderPopover,\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n resultsPopoverElementRef,\n}: {\n renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n return renderPopover(\n {\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n },\n resultsPopoverElementRef,\n )\n}\n","import {useDebugValue, useEffect, useEffectEvent} from 'react'\n\nimport {EMPTY_ARRAY} from '../core/constants'\n\n/** @public */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/** @public */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {type GapStyleProps} from '@sanity/ui-css'\nimport {\n Children,\n Fragment,\n isValidElement,\n type ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {Box} from '../../primitives/box/Box'\nimport {Button, type ButtonProps} from '../../primitives/button/Button'\nimport {Flex} from '../../primitives/flex/Flex'\nimport {Popover, type PopoverProps} from '../../primitives/popover/Popover'\nimport {Stack} from '../../primitives/stack/Stack'\nimport {Text} from '../../primitives/text/Text'\n\n/** @beta */\nexport const DEFAULT_BREADCRUMBS_ELEMENT = 'nav'\n\n/** @beta */\nexport type BreadcrumbsOwnProps = GapStyleProps & {\n expandButton?: Omit<ButtonProps, 'as' | 'onClick' | 'selected'>\n maxLength?: number\n popover?: PopoverProps\n separator?: ReactNode\n}\n\n/** @beta */\nexport type BreadcrumbsElementType = 'div' | 'nav' | ComponentType\n\n/** @beta */\nexport type BreadcrumbsProps<E extends BreadcrumbsElementType = BreadcrumbsElementType> = Props<\n BreadcrumbsOwnProps,\n E\n>\n\n/** @beta */\nexport function Breadcrumbs<E extends BreadcrumbsElementType = typeof DEFAULT_BREADCRUMBS_ELEMENT>(\n props: BreadcrumbsProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_BREADCRUMBS_ELEMENT,\n children,\n expandButton: expandButtonProps,\n gap = 2,\n gapX = gap,\n gapY = gap,\n maxLength,\n popover: popoverProps,\n separator,\n ...rest\n } = props as BreadcrumbsProps<typeof DEFAULT_BREADCRUMBS_ELEMENT>\n\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n popoverProps,\n rawItems,\n gapY,\n expandButtonProps,\n })\n\n return (\n <Flex as={as} data-ui=\"Breadcrumbs\" {...rest} gap={gap} gapX={gapX} gapY={gapY} wrap=\"wrap\">\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" flex=\"none\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\" flex=\"none\">\n {item}\n </Box>\n </Fragment>\n ))}\n </Flex>\n )\n}\n\nfunction useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n popoverProps,\n rawItems,\n gapY,\n expandButtonProps,\n}: {\n collapse: () => void\n expand: () => void\n expandElementRef: React.RefObject<HTMLButtonElement | null>\n maxLength: number | undefined\n open: boolean\n popoverElementRef: React.RefObject<HTMLDivElement | null>\n popoverProps?: PopoverProps\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rawItems: React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[]\n gapY: NonNullable<GapStyleProps['gapY']>\n expandButtonProps: BreadcrumbsOwnProps['expandButton']\n}): React.JSX.Element[] {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n key=\"button\"\n constrainSize\n open={open}\n padding={2}\n placement=\"top\"\n portal\n {...popoverProps}\n ref={popoverElementRef}\n content={\n <Stack as=\"ol\" gap={gapY} overflow=\"auto\">\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n ref={expandElementRef}\n selected={open}\n onClick={open ? collapse : expand}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n}\n","import {container, CONTAINER_STYLE_PROP_KEYS, type ContainerStyleProps} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {Props} from '../../core/types'\nimport type {BoxElementType} from '../box/Box'\n\n/** @public */\nexport const DEFAULT_CONTAINER_ELEMENT = 'div'\n\n/** @public */\nexport type ContainerOwnProps = ContainerStyleProps\n\n/** @public */\nexport type ContainerElementType = BoxElementType\n\n/** @public */\nexport type ContainerProps<E extends ContainerElementType = ContainerElementType> = Props<\n ContainerOwnProps,\n E\n>\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport function Container<E extends ContainerElementType = typeof DEFAULT_CONTAINER_ELEMENT>(\n props: ContainerProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_CONTAINER_ELEMENT,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(\n props as ContainerProps<typeof DEFAULT_CONTAINER_ELEMENT>,\n CONTAINER_STYLE_PROP_KEYS,\n )\n\n return <Element data-ui=\"Container\" {...domProps} className={container(styleProps)} />\n}\n","import {useEffect, useEffectEvent} from 'react'\n\n/**\n * Adds global keydown event listener to the window.\n *\n * @param onKeyDown - The function to call when a keydown event is triggered.\n * @param options - The options to pass to the addEventListener function (example, capture: true)\n * @beta\n */\nexport function useGlobalKeyDown(\n onKeyDown: (event: KeyboardEvent) => void,\n options?: AddEventListenerOptions,\n): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler, options)\n\n return () => window.removeEventListener('keydown', handler, options)\n }, [options])\n}\n","import {containsOrEqualsElement} from '../../core/helpers/element'\n\nexport function isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n dialog_card,\n dialog_content,\n dialog_footer,\n dialog_header,\n dialog_scroller,\n dialog_scrollerShadowBottom,\n dialog_scrollerShadowTop,\n} from '@sanity/ui-css'\nimport {\n type ForwardedRef,\n type ReactNode,\n use,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport {focusFirstDescendant} from '../../core/helpers/focus'\nimport type {Props} from '../../core/types'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {Box} from '../../primitives/box/Box'\nimport {Button} from '../../primitives/button/Button'\nimport {Card, type CardElementType, type CardOwnProps} from '../../primitives/card/Card'\nimport {Flex} from '../../primitives/flex/Flex'\nimport {useLayer} from '../../primitives/layer/useLayer'\nimport {Text} from '../../primitives/text/Text'\nimport {BoundaryElementContext} from '../../utils/boundaryElement/BoundaryElementContext'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {isTargetWithinScope} from './isTargetWithinScope'\n\n/** @internal */\nexport const DEFAULT_DIALOG_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type DialogCardOwnProps = CardOwnProps & {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n}\n\n/** @internal */\nexport type DialogCardElementType = CardElementType\n\n/** @internal */\nexport type DialogCardProps<E extends DialogCardElementType = DialogCardElementType> = Props<\n DialogCardOwnProps,\n E\n>\n\n/** @internal */\n\nexport function DialogCard<E extends DialogCardElementType = typeof DEFAULT_DIALOG_CARD_ELEMENT>(\n props: DialogCardProps<E>,\n): React.JSX.Element {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n as = DEFAULT_DIALOG_CARD_ELEMENT,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n ref: forwardedRef,\n ...rest\n } = props as DialogCardProps<typeof DEFAULT_DIALOG_CARD_ELEMENT>\n\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = use(BoundaryElementContext)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const {isTopLayer} = useLayer()\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const scrollBottom = scrollHeight - scrollTop\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n useEffect(() => {\n const el = contentRef.current\n\n if (!el) return\n\n const handleScroll = () => {\n setScrollTop(el.scrollTop)\n setScrollHeight(el.scrollHeight - el.offsetHeight)\n }\n\n el.addEventListener('scroll', handleScroll, {passive: true})\n\n return () => {\n el.removeEventListener('scroll', handleScroll)\n }\n }, [])\n\n return (\n <Card\n {...rest}\n ref={ref}\n as={as}\n className={dialog_card()}\n display=\"flex\"\n flexDirection=\"column\"\n >\n {showHeader && (\n <Flex align=\"flex-start\" className={dialog_header()} padding={3} position=\"relative\">\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n onClick={onClose}\n />\n </Box>\n )}\n </Flex>\n )}\n\n <Box className={dialog_content()} flex={1} position=\"relative\" tabIndex={-1}>\n {showHeader && (\n <div\n className={dialog_scrollerShadowTop()}\n style={{opacity: Math.min(scrollTop, 32) / 32, zIndex: 1}}\n />\n )}\n\n <Box ref={contentRef} className={dialog_scroller()} overflow=\"auto\" tabIndex={-1}>\n {children}\n </Box>\n\n {footer && (\n <div\n className={dialog_scrollerShadowBottom()}\n style={{opacity: Math.min(scrollBottom, 32) / 32}}\n />\n )}\n </Box>\n\n {footer && (\n <Box className={dialog_footer()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Card>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui-css'\nimport type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport type {DialogPosition} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: ResponsiveProp<DialogPosition>\n zOffset?: ResponsiveProp<number>\n}\n\n/**\n * @internal\n */\nexport const DialogContext: Context<DialogContextValue> =\n createGlobalScopedContext<DialogContextValue>('@sanity/ui/v4/dialog', {version: 0.0})\n","import {use} from 'react'\n\nimport {DialogContext, type DialogContextValue} from './DialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return use(DialogContext)\n}\n","import {\n type ContainerStyleProps,\n dialog,\n dialog_container,\n type ResponsiveProp,\n} from '@sanity/ui-css'\nimport type {Radius, Shadow} from '@sanity/ui-tokens'\nimport {type FocusEvent, type ForwardedRef, type ReactNode, use, useCallback, useRef} from 'react'\n\nimport {Z_OFFSETS} from '../../core/constants'\nimport {isHTMLElement} from '../../core/helpers/element'\nimport {focusFirstDescendant, focusLastDescendant} from '../../core/helpers/focus'\nimport type {ComponentType, Props} from '../../core/types'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Container} from '../../primitives/container/Container'\nimport {Layer, type LayerOwnProps, type LayerProps} from '../../primitives/layer/Layer'\nimport {BoundaryElementContext} from '../../utils/boundaryElement/BoundaryElementContext'\nimport {Portal} from '../../utils/portal/Portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {DialogCard} from './DialogCard'\nimport {isTargetWithinScope} from './isTargetWithinScope'\nimport type {DialogPosition} from './types'\nimport {useDialog} from './useDialog'\n\n/** @public */\nexport const DEFAULT_DIALOG_ELEMENT = 'div'\n\n/** @public */\nexport interface DialogOwnProps\n extends\n Omit<ContainerStyleProps, 'id' | 'position' | 'radius' | 'shadow'>,\n Omit<LayerOwnProps, 'id' | 'position' | 'radius' | 'shadow' | 'width'> {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n open?: boolean\n portal?: string\n position?: ResponsiveProp<DialogPosition>\n /**\n * @deprecated Not in use – will be removed in the next major version.\n */\n shadow?: ResponsiveProp<Shadow>\n}\n\n/** @public */\nexport type DialogElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type DialogProps<E extends DialogElementType = DialogElementType> = Props<DialogOwnProps, E>\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog<E extends DialogElementType = typeof DEFAULT_DIALOG_ELEMENT>(\n props: DialogProps<E>,\n): React.JSX.Element {\n const context = useDialog()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = true,\n cardRadius = 5,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: _positionProp,\n // Remove `shadow` prop in next major version\n shadow: _shadow,\n width = 0,\n zOffset: _zOffsetProp,\n ...rest\n } = props as DialogProps<typeof DEFAULT_DIALOG_ELEMENT>\n\n const position = _positionProp ?? context.position ?? 'fixed'\n const zOffset = _zOffsetProp ?? context.zOffset ?? Z_OFFSETS.dialog\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = use(BoundaryElementContext)\n\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Layer\n data-ui=\"Dialog\"\n {...rest}\n aria-labelledby={labelId}\n aria-modal\n className={dialog({className})}\n data-animate={animate ? '' : undefined}\n display=\"flex\"\n id={id}\n inset={0}\n padding={padding}\n position={position}\n role=\"dialog\"\n zOffset={zOffset}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <Container\n alignItems=\"center\"\n className={dialog_container()}\n data-ui=\"DialogCard\"\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n width={width}\n >\n <DialogCard\n ref={cardRef}\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n portal={portalProp}\n radius={cardRadius}\n shadow={4}\n width={width}\n onClickOutside={onClickOutside}\n onClose={onClose}\n >\n {children}\n </DialogCard>\n </Container>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui-css'\nimport {type ReactNode, useMemo} from 'react'\n\nimport {DialogContext, type DialogContextValue} from './DialogContext'\nimport type {DialogPosition} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: ReactNode\n position?: ResponsiveProp<DialogPosition>\n zOffset?: ResponsiveProp<number>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext value={contextValue}>{children}</DialogContext>\n}\n","import {type Context, type MouseEvent as ReactMouseEvent} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\n\n/** @internal */\nexport interface MenuContextValue {\n version: 2\n activeElement: HTMLElement | null\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: (event: ReactMouseEvent<HTMLButtonElement>) => void\n onItemMouseEnter?: (event: ReactMouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: ReactMouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n}\n\nexport const MenuContext: Context<MenuContextValue | null> =\n createGlobalScopedContext<MenuContextValue | null>('@sanity/ui/v4/menu', null)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../core/helpers/element'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {\n type KeyboardEvent,\n type KeyboardEventHandler,\n type MouseEvent,\n type MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const [activeElement, setActiveElement] = useState<HTMLElement | null>(null)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n\n setActiveElement(elementsRef.current[nextActiveIndex] || null)\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!rootElementRef.current) return\n\n const rafId = requestAnimationFrame(() => {\n let i = activeIndex\n\n if (i === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n i = currentIndex\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n i = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[i] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, rootElementRef, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {menu, type PaddingStyleProps, type ResponsiveProp} from '@sanity/ui-css'\nimport type {Space} from '@sanity/ui-tokens'\nimport {useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {Box} from '../../primitives/box/Box'\nimport {useLayer} from '../../primitives/layer/useLayer'\nimport {Stack} from '../../primitives/stack/Stack'\nimport {MenuContext, type MenuContextValue} from './MenuContext'\nimport {useMenuController} from './useMenuController'\n\n/** @public */\nexport const DEFAULT_MENU_ELEMENT = 'div'\n\n/** @public */\nexport type MenuOwnProps = PaddingStyleProps & {\n 'gap'?: ResponsiveProp<Space>\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: (event: React.MouseEvent<HTMLButtonElement>) => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n 'aria-labelledby'?: string\n}\n\n/** @public */\nexport type MenuElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type MenuProps<E extends MenuElementType = MenuElementType> = Props<MenuOwnProps, E>\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport function Menu<E extends MenuElementType = typeof DEFAULT_MENU_ELEMENT>(\n props: MenuProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_MENU_ELEMENT,\n children,\n className,\n gap = 1,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n ref: forwardedRef,\n registerElement,\n shouldFocus: _shouldFocus,\n ...rest\n } = props as MenuProps<typeof DEFAULT_MENU_ELEMENT>\n\n const shouldFocus = _shouldFocus ?? null\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({\n onKeyDown,\n originElement,\n shouldFocus,\n rootElementRef: ref,\n })\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value = useMemo(\n () =>\n ({\n version: 2,\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n }) satisfies MenuContextValue,\n [\n activeElement,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext value={value}>\n <Box\n data-ui=\"Menu\"\n {...rest}\n ref={handleRefChange}\n as={as}\n className={menu({className})}\n outline=\"none\"\n overflow=\"auto\"\n padding={padding}\n role=\"menu\"\n tabIndex={-1}\n onKeyDown={handleKeyDown}\n >\n <Stack gap={gap}>{children}</Stack>\n </Box>\n </MenuContext>\n )\n}\n","import {\n cloneElement,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type {Props} from '../../core/types'\nimport type {ButtonProps} from '../../primitives/button/Button'\nimport {Popover, type PopoverProps} from '../../primitives/popover/Popover'\nimport type {MenuProps} from './Menu'\n\n/** @public */\nexport type MenuButtonProps = {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n button: ReactElement<ButtonProps>\n id: string\n menu?: ReactElement\n onClose?: () => void\n onOpen?: () => void\n popover?: Omit<PopoverProps, 'content' | 'open'>\n\n ref?: ForwardedRef<HTMLButtonElement | null>\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport function MenuButton(props: MenuButtonProps): React.JSX.Element {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n popover,\n ref: forwardedRef,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback((event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault()\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLElement>) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(\n (e: ReactMouseEvent<HTMLButtonElement>) => {\n if (e.defaultPrevented) return\n\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n },\n [buttonElement, disableRestoreFocusOnClose],\n )\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: Props<MenuProps, 'div'> = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(() => {\n if (!buttonProp) return null\n\n const buttonProps: ButtonProps = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n 'tooltip': open ? undefined : buttonProp.props.tooltip,\n }\n\n return cloneElement(buttonProp, buttonProps)\n }, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open])\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n return (\n <Popover\n data-ui=\"MenuButton__popover\"\n overflow=\"auto\"\n placement=\"bottom-start\"\n {...popover}\n content={menu}\n open={open}\n >\n {button || <></>}\n </Popover>\n )\n}\n","import {menu_divider} from '@sanity/ui-css'\n\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_MENU_DIVIDER_ELEMENT = 'hr'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type MenuDividerOwnProps = {}\n\n/** @public */\nexport type MenuDividerElementType = 'div' | 'hr' | 'span' | ComponentType\n\n/** @public */\nexport type MenuDividerProps<E extends MenuDividerElementType = MenuDividerElementType> = Props<\n MenuDividerOwnProps,\n E\n>\n\n/** @public */\nexport function MenuDivider<E extends MenuDividerElementType = typeof DEFAULT_MENU_DIVIDER_ELEMENT>(\n props: MenuDividerProps<E>,\n): React.JSX.Element {\n const {\n as: Element = DEFAULT_MENU_DIVIDER_ELEMENT,\n className,\n ...rest\n } = props as MenuDividerProps<typeof DEFAULT_MENU_DIVIDER_ELEMENT>\n\n return <Element {...rest} className={menu_divider({className})} />\n}\n","import {use} from 'react'\n\nimport {isRecord} from '../../core/lib/isRecord'\nimport {MenuContext, type MenuContextValue} from './MenuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = use(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 2`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 2) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport type {RadiusStyleProps, ResponsiveProp} from '@sanity/ui-css'\nimport type {ElementTone, FontTextSize, Space} from '@sanity/ui-tokens'\nimport {\n type ElementType,\n isValidElement,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box} from '../../primitives/box/Box'\nimport {Flex} from '../../primitives/flex/Flex'\nimport {Popover, type PopoverProps} from '../../primitives/popover/Popover'\nimport {Selectable} from '../../primitives/selectable/Selectable'\nimport {Text} from '../../primitives/text/Text'\nimport {DEFAULT_MENU_ELEMENT, Menu, type MenuProps} from './Menu'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_GROUP_ELEMENT = 'button'\n\n/** @public */\nexport type MenuGroupOwnProps = RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n gap?: ResponsiveProp<Space>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps<typeof DEFAULT_MENU_ELEMENT>,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: ResponsiveProp<Space>\n popover?: Omit<PopoverProps, 'content' | 'open'>\n text?: ReactNode\n tone?: ElementTone\n}\n\n/** @public */\nexport type MenuGroupElementType = 'button' | ComponentType\n\n/** @public */\nexport type MenuGroupProps<E extends MenuGroupElementType = MenuGroupElementType> = Props<\n MenuGroupOwnProps,\n E\n>\n\n/** @public */\nexport function MenuGroup<E extends MenuGroupElementType = typeof DEFAULT_MENU_GROUP_ELEMENT>(\n props: MenuGroupProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_MENU_GROUP_ELEMENT,\n children,\n fontSize = 1,\n gap = 3,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n text,\n tone = 'default',\n ...rest\n } = props as MenuGroupProps<typeof DEFAULT_MENU_GROUP_ELEMENT>\n\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter,\n registerElement,\n } = useMenu()\n\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter?.(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n setOpen(false)\n onItemClick?.(e)\n },\n [onItemClick],\n )\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover\n __unstable_shift={-4}\n data-ui=\"MenuGroup__popover\"\n {...popover}\n content={childMenu}\n open={open}\n >\n <Selectable\n data-ui=\"MenuGroup\"\n {...rest}\n ref={setRootElement}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n as={as}\n radius={radius}\n selected={withinMenu}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n >\n <Flex gap={gap} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n","import {\n type GapStyleProps,\n type PaddingStyleProps,\n type RadiusStyleProps,\n type ResponsiveProp,\n selectable_hotkeys,\n} from '@sanity/ui-css'\nimport type {ElementTone, FontTextSize} from '@sanity/ui-tokens'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Selectable} from '../../primitives/selectable/Selectable'\nimport {Text} from '../../primitives/text/Text'\nimport {Hotkeys} from '../hotkeys/Hotkeys'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_ITEM_ELEMENT = 'button'\n\n/** @public */\nexport type MenuItemOwnProps = GapStyleProps &\n PaddingStyleProps &\n RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n hotkeys?: string[]\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n pressed?: boolean\n selected?: boolean\n text?: ReactNode\n tone?: ElementTone\n }\n\n/** @public */\nexport type MenuItemElementType = 'button' | 'a' | ComponentType\n\n/** @public */\nexport type MenuItemProps<E extends MenuItemElementType = MenuItemElementType> = Props<\n MenuItemOwnProps,\n E\n>\n\n/** @public */\nexport function MenuItem<E extends MenuItemElementType = typeof DEFAULT_MENU_ITEM_ELEMENT>(\n props: MenuItemProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_MENU_ITEM_ELEMENT,\n children,\n disabled,\n fontSize = 1,\n gap,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n pressed,\n radius = 3,\n ref: forwardedRef,\n role = 'menuitem',\n selected: selectedProp,\n text,\n tone = 'default',\n ...rest\n } = props as MenuItemProps<typeof DEFAULT_MENU_ITEM_ELEMENT>\n\n const menu = useMenu()\n const {activeElement, mount, onItemClick, onItemMouseEnter, onItemMouseLeave} = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLButtonElement | null>(null)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick(event)\n },\n [disabled, onClick, onItemClick],\n )\n\n const setRef = useCallback((el: HTMLButtonElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-pressed={pressed ? '' : undefined}\n data-ui=\"MenuItem\"\n {...rest}\n ref={setRef}\n as={as}\n disabled={disabled}\n display=\"flex\"\n gap={gap ?? padding}\n padding={padding}\n radius={radius}\n role={role}\n selected={active}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n >\n {IconComponent && (\n <Text flex=\"none\" muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Text flex={1} size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n )}\n\n {children}\n\n {hotkeys && <Hotkeys className={selectable_hotkeys()} keys={hotkeys} />}\n\n {IconRightComponent && (\n <Text flex=\"none\" muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Selectable>\n )\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport type {TabContextListValue} from './types'\n\n/**\n * @internal\n */\nexport const TabContext: Context<TabContextListValue | null> =\n createGlobalScopedContext<TabContextListValue | null>('@sanity/ui/v4/tree', null)\n","import {use, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Button, type ButtonOwnProps} from '../../primitives/button/Button'\nimport {TabContext} from './TabListContext'\n\n/** @public */\nexport const DEFAULT_TAB_ELEMENT = 'button'\n\n/** @public */\nexport interface TabOwnProps extends ButtonOwnProps {\n /**\n * The `id` of the corresponding `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'focused'?: boolean\n 'label'?: React.ReactNode\n 'onActivate'?: () => void\n}\n\n/** @public */\nexport type TabElementType = 'button' | ComponentType\n\n/** @public */\nexport type TabProps<E extends TabElementType = TabElementType> = Props<TabOwnProps, E>\n\n/** @public */\nexport function Tab<E extends TabElementType = typeof DEFAULT_TAB_ELEMENT>(\n props: TabProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_TAB_ELEMENT,\n id,\n fontSize = 1,\n label,\n onActivate,\n onBlur,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\n selected: selectedProp,\n ...rest\n } = props as TabProps<typeof DEFAULT_TAB_ELEMENT>\n\n const {focusTab, focusedId, activateTab, registerTab, activeId} = use(TabContext) ?? {}\n const focused = Boolean(id && focusedId === id)\n const active = Boolean(id && activeId === id)\n const activeRef = useRef(active)\n const selected = selectedProp ?? active\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (onClick) onClick(event)\n activateTab?.(id)\n },\n [onClick, activateTab, id],\n )\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = false\n if (onBlur) onBlur(event)\n focusTab?.(undefined)\n },\n [onBlur, focusTab],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n focusTab?.(id)\n },\n [onFocus, focusTab, id],\n )\n\n // register the tab with the list\n useEffect(() => {\n const element = ref.current\n\n if (registerTab && element) {\n return registerTab(id, element, selectedProp)\n }\n\n return undefined\n }, [registerTab, id, selected, selectedProp])\n\n // focus the tab when using keyboard navigation\n useEffect(() => {\n if (focused) {\n ref.current?.focus()\n }\n }, [focused])\n\n useEffect(() => {\n const wasActive = activeRef.current\n\n activeRef.current = active\n\n if (!wasActive && active) onActivate?.()\n }, [active, selectedProp, onActivate])\n\n return (\n <Button\n data-ui=\"Tab\"\n {...rest}\n ref={ref}\n aria-selected={selected ? 'true' : 'false'}\n as={as}\n flex=\"none\"\n fontSize={fontSize}\n id={id}\n maxWidth=\"fill\"\n mode=\"bleed\"\n padding={padding}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n />\n )\n}\n","import {type KeyboardEvent, useCallback, useEffect, useRef, useState} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Flex, type FlexOwnProps} from '../../primitives/flex/Flex'\nimport {TabContext} from './TabListContext'\nimport type {TabContextListValue} from './types'\n\n/** @public */\nexport const DEFAULT_TAB_LIST_ELEMENT = 'div'\n\n/** @public */\nexport interface TabListOwnProps extends FlexOwnProps {\n autoActivate?: boolean\n}\n\n/** @public */\nexport type TabListElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabListProps<E extends TabListElementType = TabListElementType> = Omit<\n Props<TabListOwnProps, E>,\n 'role'\n>\n\n/** @public */\nexport function TabList<E extends TabListElementType = typeof DEFAULT_TAB_LIST_ELEMENT>(\n props: TabListProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_TAB_LIST_ELEMENT,\n autoActivate = false,\n children,\n gap = 2,\n onKeyDown,\n wrap = 'wrap',\n ...rest\n } = props as TabListProps<typeof DEFAULT_TAB_LIST_ELEMENT>\n\n const [focusedId, setFocusedId] = useState<string | undefined>(undefined)\n const [activeId, setActiveId] = useState<string | undefined>(undefined)\n const [tabs, setTabs] = useState<{id: string; element: HTMLElement}[]>(() => [])\n\n const tabsRef = useRef(tabs)\n\n useEffect(() => {\n tabsRef.current = tabs\n }, [tabs])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event)\n\n if (event.key === 'ArrowLeft') {\n setFocusedId((prevId) => {\n const numTabs = tabsRef.current.length\n const prevIndex = prevId ? tabsRef.current.findIndex((tab) => tab.id === prevId) : -1\n const nextIndex = (prevIndex + numTabs - 1) % numTabs\n const nextId = tabsRef.current[nextIndex]?.id\n\n if (autoActivate) setActiveId(nextId)\n\n return nextId\n })\n return\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedId((prevId) => {\n const numTabs = tabsRef.current.length\n const prevIndex = prevId ? tabsRef.current.findIndex((tab) => tab.id === prevId) : -1\n const nextIndex = (prevIndex + 1) % numTabs\n\n const nextId = tabsRef.current[nextIndex]?.id\n\n if (autoActivate) setActiveId(nextId)\n\n return nextId\n })\n return\n }\n\n // Home (Optional): Moves focus to the first tab.\n if (event.key === 'Home') {\n const nextId = tabsRef.current[0]?.id\n if (autoActivate) setActiveId(nextId)\n setFocusedId(nextId)\n return\n }\n\n // End (Optional): Moves focus to the last tab.\n if (event.key === 'End') {\n const nextId = tabsRef.current[tabsRef.current.length - 1]?.id\n if (autoActivate) setActiveId(nextId)\n setFocusedId(nextId)\n return\n }\n },\n [autoActivate, onKeyDown],\n )\n\n const context: TabContextListValue = {\n version: 0.0,\n focusedId,\n activeId: activeId,\n registerTab: (id, element, selectedProp) => {\n setTabs((prevTabs) => {\n const newTabs = [...prevTabs]\n newTabs.push({id, element})\n newTabs.sort((a, b) => {\n // sort by position in DOM\n return a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_FOLLOWING\n ? -1\n : 1\n })\n return newTabs\n })\n\n if (selectedProp) {\n setActiveId(id)\n }\n\n return () => {\n setTabs((prevTabs) => {\n const newTabs = [...prevTabs]\n\n newTabs.splice(\n newTabs.findIndex((tab) => tab.id === id),\n 1,\n )\n\n return newTabs\n })\n }\n },\n focusTab: (id) => {\n setFocusedId(id)\n if (autoActivate) setActiveId(id)\n },\n activateTab: setActiveId,\n }\n\n return (\n <TabContext.Provider value={context}>\n <Flex\n data-ui=\"TabList\"\n {...rest}\n as={as}\n gap={gap}\n role=\"tablist\"\n wrap={wrap}\n onKeyDown={handleKeyDown}\n >\n {children}\n </Flex>\n </TabContext.Provider>\n )\n}\n","import {tab_panel} from '@sanity/ui-css'\nimport {useEffect, useImperativeHandle, useRef, useState} from 'react'\n\nimport {isFocusable} from '../../core/helpers/focus'\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box, type BoxOwnProps} from '../../primitives/box/Box'\n\n/** @public */\nexport const DEFAULT_TAB_PANEL_ELEMENT = 'div'\n\n/** @public */\nexport type TabPanelOwnProps = BoxOwnProps & {\n /**\n * The `id` of the corresponding `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/** @public */\nexport type TabPanelElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabPanelProps<E extends TabPanelElementType = TabPanelElementType> = Props<\n TabPanelOwnProps,\n E\n>\n\n/** @public */\nexport function TabPanel<E extends TabPanelElementType = typeof DEFAULT_TAB_PANEL_ELEMENT>(\n props: TabPanelProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_TAB_PANEL_ELEMENT,\n children,\n className,\n ref: forwardedRef,\n ...rest\n } = props as TabPanelProps<typeof DEFAULT_TAB_PANEL_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const [hasFocusableChildren, setHasFocusableChildren] = useState(false)\n\n useEffect(() => {\n const el = ref.current\n\n if (!el) return undefined\n\n const mo = new MutationObserver(() => {\n setHasFocusableChildren(_hasFocusableChildren(el))\n })\n\n mo.observe(el, {\n childList: true,\n subtree: true,\n })\n\n return () => {\n mo.disconnect()\n }\n }, [])\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...rest}\n ref={ref}\n as={as}\n className={tab_panel({className})}\n role=\"tabpanel\"\n tabIndex={hasFocusableChildren ? undefined : 0}\n >\n {children}\n </Box>\n )\n}\n\n// check if children has focusable elements\nfunction _hasFocusableChildren(element: HTMLElement) {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (child instanceof HTMLElement) {\n if (isFocusable(child) || _hasFocusableChildren(child)) {\n return true\n }\n }\n }\n\n return false\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {type RadiusStyleProps, toast} from '@sanity/ui-css'\nimport {motion, type Variant, type Variants} from 'motion/react'\nimport {type ReactNode} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/Box'\nimport {Button} from '../../primitives/button/Button'\nimport {Card} from '../../primitives/card/Card'\nimport {Flex} from '../../primitives/flex/Flex'\nimport {Stack} from '../../primitives/stack/Stack'\nimport {Text} from '../../primitives/text/Text'\n\n/** @internal */\nexport const DEFAULT_TOAST_ELEMENT = 'li'\n\n/** @internal */\nexport type ToastOwnProps = RadiusStyleProps & {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n}\n\n/** @internal */\nexport type ToastElementType = 'li' | ComponentType\n\n/** @internal */\nexport type ToastProps<E extends ToastElementType = ToastElementType> = Props<ToastOwnProps, E>\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss when the duration expires.\n *\n * @internal\n */\nexport function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>(\n props: ToastProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_TOAST_ELEMENT,\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n ...rest\n } = props as ToastProps<typeof DEFAULT_TOAST_ELEMENT>\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration\n ? {type: 'spring' as const, visualDuration, bounce: 0.25}\n : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionCard\n as={as}\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...rest}\n animate={animate}\n custom={visualDuration}\n data-has-duration={hasDuration ? '' : undefined}\n exit={exit}\n initial={initial}\n layout=\"position\"\n position=\"relative\"\n radius={radius}\n shadow={2}\n tone={cardTone}\n transition={transition}\n variants={container}\n >\n <MotionFlex align=\"flex-start\" transition={transition} variants={content}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack gap={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} transition={transition} variants={content}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n style={{verticalAlign: 'top'}}\n tone={buttonTone}\n onClick={onClose}\n />\n </Box>\n )}\n </MotionFlex>\n </MotionCard>\n )\n}\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport type {ToastContextValue} from './types'\n\nexport const ToastContext: Context<ToastContextValue | null> =\n createGlobalScopedContext<ToastContextValue | null>('@sanity/ui/v4/toast', null)\n","import {grid, GRID_STYLE_PROP_KEYS, type GridStyleProps} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {Props} from '../../core/types'\nimport type {BoxElementType} from '../box/Box'\n\n/** @public */\nexport const DEFAULT_GRID_ELEMENT = 'div'\n\n/** @public */\nexport type GridOwnProps = GridStyleProps\n\n/** @public */\nexport type GridElementType = BoxElementType\n\n/** @public */\nexport type GridProps<E extends GridElementType = GridElementType> = Props<GridOwnProps, E>\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport function Grid<E extends GridElementType = typeof DEFAULT_GRID_ELEMENT>(\n props: GridProps<E>,\n): React.JSX.Element {\n const [\n // split style props\n styleProps,\n {\n as: Element = DEFAULT_GRID_ELEMENT,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as GridProps<typeof DEFAULT_GRID_ELEMENT>, GRID_STYLE_PROP_KEYS)\n\n return <Element data-ui=\"Grid\" {...domProps} className={grid(styleProps)} />\n}\n","import {type GapStyleProps, type PaddingStyleProps, toast_layer} from '@sanity/ui-css'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Grid} from '../../primitives/grid/Grid'\nimport {useLayer} from '../../primitives/layer/useLayer'\n\n/** @internal */\nexport const DEFAULT_TOAST_LAYER_ELEMENT = 'ul'\n\n/** @internal */\nexport type ToastLayerOwnProps = GapStyleProps & PaddingStyleProps\n\n/** @internal */\nexport type ToastLayerElementType = 'ul' | ComponentType\n\n/** @internal */\nexport type ToastLayerProps<E extends ToastLayerElementType = ToastLayerElementType> = Props<\n ToastLayerOwnProps,\n E\n>\n\n/**\n * @internal\n */\nexport function ToastLayer<E extends ToastLayerElementType = typeof DEFAULT_TOAST_LAYER_ELEMENT>(\n props: ToastLayerProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_TOAST_LAYER_ELEMENT,\n children,\n padding = 4,\n paddingX,\n paddingY,\n gap = 3,\n } = props as ToastLayerProps<typeof DEFAULT_TOAST_LAYER_ELEMENT>\n\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as={as}\n className={toast_layer()}\n data-ui=\"ToastProvider\"\n gap={gap}\n gridTemplateColumns={1}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n style={{zIndex}}\n >\n {children}\n </Grid>\n )\n}\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import type {ResponsiveProp} from '@sanity/ui-css'\nimport {AnimatePresence} from 'motion/react'\nimport {startTransition, useMemo, useRef, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../primitives/layer/LayerProvider'\nimport {Toast} from './Toast'\nimport {ToastContext} from './ToastContext'\nimport {ToastLayer, type ToastLayerProps} from './ToastLayer'\nimport {generateToastId} from './toastState'\nimport type {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/** @public */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const timeoutIdsRef = useRef<Record<string, NodeJS.Timeout | undefined>>({})\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id ?? generateToastId()\n const duration = params.duration ?? 5000\n\n // If the `id` is reused, clear the previous timeout\n const existingTimeoutId = timeoutIdsRef.current[id]\n if (existingTimeoutId) {\n clearTimeout(existingTimeoutId)\n timeoutIdsRef.current[id] = undefined\n }\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n function dismiss() {\n startTransition(() => {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n\n setState((currentState) => currentState.filter((toast) => toast.id !== id))\n\n // Clear the timeout id from the ref to prevent memory leaks\n timeoutIdsRef.current[id] = undefined\n })\n }\n\n const timeoutId = duration === Infinity ? undefined : setTimeout(dismiss, duration)\n\n // Set the timeout id in the ref\n timeoutIdsRef.current[id] = timeoutId\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer gap={gap} padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n duration={params.duration}\n status={params.status}\n title={params.title}\n onClose={dismiss}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext>\n )\n}\n","import {use} from 'react'\n\nimport {isRecord} from '../../core/lib/isRecord'\nimport {ToastContext} from './ToastContext'\nimport type {ToastContextValue} from './types'\n\n/** @public */\nexport function useToast(): ToastContextValue {\n const value = use(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import type {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'\nimport type {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext: Context<TreeContextValue | null> =\n createGlobalScopedContext<TreeContextValue | null>('@sanity/ui/v4/tree', null)\n","import {tree} from '@sanity/ui-css'\nimport {\n type FocusEvent,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Stack, type StackOwnProps} from '../../primitives/stack/Stack'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './TreeContext'\nimport type {TreeContextValue, TreeState} from './types'\n\n/** @beta */\nexport const DEFAULT_TREE_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TreeOwnProps = Omit<StackOwnProps, 'position'>\n\n/** @beta */\nexport type TreeElementType = 'div' | ComponentType\n\n/** @beta */\nexport type TreeProps<E extends TreeElementType = TreeElementType> = Props<TreeOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree<E extends TreeElementType = typeof DEFAULT_TREE_ELEMENT>(\n props: TreeProps<E>,\n): React.JSX.Element {\n const {\n children,\n className,\n gap = 1,\n onFocus,\n ref: forwardedRef,\n ...rest\n } = props as TreeProps<typeof DEFAULT_TREE_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const context: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n gap,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n state,\n }),\n [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext value={context}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...rest}\n ref={ref}\n className={tree({className})}\n gap={gap}\n position=\"relative\"\n role=\"tree\"\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n >\n {children}\n </Stack>\n </TreeContext>\n )\n}\n","import {use} from 'react'\n\nimport {TreeContext} from './TreeContext'\nimport type {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = use(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import type {ComponentType, Props} from '../../core/types'\nimport {Stack} from '../../primitives/stack/Stack'\nimport {useTree} from './useTree'\n\n/** @public */\nexport const DEFAULT_TREE_GROUP_ELEMENT = 'div'\n\n/** @public */\nexport type TreeGroupElementType = 'div' | ComponentType\n\n/** @public */\nexport type TreeGroupOwnProps = {\n expanded?: boolean\n}\n\n/** @public */\nexport type TreeGroupProps<E extends TreeGroupElementType = TreeGroupElementType> = Props<\n TreeGroupOwnProps,\n E\n>\n\nexport const TreeGroup = function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): React.JSX.Element {\n const {\n children,\n expanded = false,\n ...rest\n } = props as TreeGroupProps<typeof DEFAULT_TREE_GROUP_ELEMENT>\n\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...rest}\n gap={tree.gap}\n hidden={!expanded}\n marginTop={tree.gap}\n role=\"group\"\n >\n {children}\n </Stack>\n )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {type ResponsiveProp, tree_item, vars} from '@sanity/ui-css'\nimport type {FontTextSize, FontWeight, Space} from '@sanity/ui-tokens'\nimport {\n type ElementType,\n type KeyboardEvent,\n type MouseEvent,\n type MouseEventHandler,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box, type BoxProps} from '../../primitives/box/Box'\nimport {\n Selectable,\n type SelectableElementType,\n type SelectableOwnProps,\n} from '../../primitives/selectable/Selectable'\nimport {Text} from '../../primitives/text/Text'\nimport {TreeContext} from './TreeContext'\nimport {TreeGroup} from './TreeGroup'\nimport {useTree} from './useTree'\n\n/** @beta */\nexport const DEFAULT_TREE_ITEM_ELEMENT = 'a'\n\n/** @beta */\nexport type TreeItemOwnProps = SelectableOwnProps & {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n * @internal\n */\n linkAs?: SelectableElementType\n onClick?: MouseEventHandler<HTMLAnchorElement | HTMLLIElement>\n padding?: ResponsiveProp<Space>\n gap?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead */\n space?: never\n text?: ReactNode\n weight?: FontWeight\n}\n\n/** @beta */\nexport type TreeItemElementType = 'a' | 'li' | ComponentType\n\n/** @beta */\nexport type TreeItemProps<E extends TreeItemElementType = TreeItemElementType> = Props<\n TreeItemOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITEM_ELEMENT>(\n props: TreeItemProps<E>,\n): React.JSX.Element {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n gap: gapProp,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs = 'a',\n muted,\n onClick,\n padding = 2,\n radius = 2,\n selected = false,\n text,\n weight,\n ...rest\n } = props as TreeItemProps<typeof DEFAULT_TREE_ITEM_ELEMENT>\n const gap = gapProp ?? padding\n\n const [rootElement, setRootElement] = useState<HTMLElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const [itemPath, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const focused = tree.focusedElement && tree.focusedElement === rootElement\n const tabIndex = focused ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLAnchorElement> | MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Box display=\"flex\" gap={gap} padding={padding}>\n <Text\n flex=\"none\"\n muted={muted}\n size={fontSize}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n weight={weight}\n >\n {IconComponent ? (\n <IconComponent />\n ) : (\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n )}\n </Text>\n\n <Text flex={1} muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n )\n\n if (href) {\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...(rest as BoxProps<'li'>)}\n ref={setRootElement}\n as=\"li\"\n className={tree_item({className})}\n role=\"none\"\n onClick={handleClick}\n >\n <Selectable\n ref={treeitemRef}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n role=\"treeitem\"\n selected={selected}\n style={{paddingLeft: `calc(${vars.space[2]} * ${tree.level})`}}\n tabIndex={tabIndex}\n >\n {content}\n </Selectable>\n\n <TreeContext value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext>\n </Box>\n )\n }\n\n return (\n <Box\n data-pressed={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...rest}\n ref={setRootElement}\n aria-expanded={expanded}\n className={tree_item({className})}\n role=\"treeitem\"\n tabIndex={tabIndex}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n <Selectable\n data-focused={focused ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n selected={selected}\n style={{paddingLeft: `calc(${vars.space[2]} * ${tree.level})`}}\n tabIndex={tabIndex}\n >\n {content}\n </Selectable>\n\n <TreeContext value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext>\n </Box>\n )\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {vars} from '@sanity/ui-css'\nimport type {Space} from '@sanity/ui-tokens'\nimport {\n type ReactNode,\n startTransition,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport {_isScrollable} from '../../core/helpers/scroll'\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box} from '../../primitives/box/Box'\n\n/** @beta */\nexport const DEFAULT_VIRTUAL_LIST_ELEMENT = 'div'\n\n/** @beta */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/** @beta */\nexport interface VirtualListOwnProps<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Item = any,\n> {\n gap?: Space\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/** @beta */\nexport type VirtualListElementType = 'div' | ComponentType\n\n/** @beta */\nexport type VirtualListProps<\n E extends VirtualListElementType = VirtualListElementType,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Item = any,\n> = Props<VirtualListOwnProps<Item>, E>\n\n/** @beta */\nexport function VirtualList<\n E extends VirtualListElementType = typeof DEFAULT_VIRTUAL_LIST_ELEMENT,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Item = any,\n>(props: VirtualListProps<E, Item>): React.JSX.Element {\n const {\n as = DEFAULT_VIRTUAL_LIST_ELEMENT,\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n renderItem,\n ref: forwardedRef,\n ...rest\n } = props as VirtualListProps<typeof DEFAULT_VIRTUAL_LIST_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState<number | undefined>(undefined)\n\n const [gapValue, setGapValue] = useState(0)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollableParent = _findScrollableParent(ref.current.parentNode)\n\n if (scrollableParent !== document.documentElement && scrollableParent) {\n if (!(scrollableParent instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollableParent.scrollTop)\n }\n\n scrollableParent.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollableParent)\n\n handleScroll()\n\n return () => {\n scrollableParent.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollableParent)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + gapValue) - gapValue : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (itemHeight === undefined) return\n\n onChange?.({\n fromIndex,\n gap: gapValue,\n itemHeight,\n scrollHeight,\n scrollTop,\n toIndex,\n })\n }, [fromIndex, gapValue, itemHeight, onChange, scrollHeight, scrollTop, toIndex])\n\n useEffect(() => {\n startTransition(() => setItemHeight(undefined))\n }, [renderItem])\n\n const children = useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n toIndex,\n gapValue,\n setGapValue,\n setItemHeight,\n })\n\n return (\n <Box data-ui=\"VirtualList\" {...rest} ref={ref} as={as} position=\"relative\">\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </Box>\n )\n}\n\nfunction useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n toIndex,\n gapValue,\n setGapValue,\n setItemHeight,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: Space\n itemHeight: number | undefined\n toIndex: number\n gapValue: number\n setGapValue: React.Dispatch<React.SetStateAction<number>>\n setItemHeight: React.Dispatch<React.SetStateAction<number | undefined>>\n }) {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <>\n <Box\n key={0}\n ref={(el) => {\n if (el) setItemHeight(el.offsetHeight)\n }}\n insetLeft={0}\n insetRight={0}\n insetTop={0}\n position=\"absolute\"\n >\n {renderItem(items[0])}\n </Box>\n <div\n ref={(el) => {\n if (el) setGapValue(el.offsetHeight)\n }}\n style={{height: vars.space[gap]}}\n />\n </>,\n ]\n }\n\n const slicedItems = items.slice(fromIndex, toIndex)\n\n return slicedItems.map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <Box\n key={key}\n insetLeft={0}\n insetRight={0}\n position=\"absolute\"\n style={{\n top: typeof itemHeight === 'number' ? itemIndex * (itemHeight + gapValue) : undefined,\n }}\n >\n {node}\n </Box>\n )\n })\n}\n\nfunction _findScrollableParent(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver: _ElementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, type ElementSize} from '../observers/elementSize'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {lazy} from 'react'\n\n/** @internal */\nexport const LazySyntax = lazy(() => import('./Syntax'))\n","import {\n label,\n LABEL_STYLE_PROP_KEYS,\n type LabelStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_LABEL_ELEMENT = 'div'\n\n/** @public */\nexport type LabelOwnProps = LabelStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type LabelElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type LabelProps<E extends LabelElementType = LabelElementType> = Props<LabelOwnProps, E>\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport function Label<E extends LabelElementType = typeof DEFAULT_LABEL_ELEMENT>(\n props: LabelProps<E>,\n): React.JSX.Element {\n const [\n // split style props\n styleProps,\n {\n as: Element = DEFAULT_LABEL_ELEMENT,\n children: childrenProp,\n textOverflow: textOverflowProp,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as LabelProps<typeof DEFAULT_LABEL_ELEMENT>, LABEL_STYLE_PROP_KEYS)\n\n let children = childrenProp\n\n if (textOverflowProp) {\n children = <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n }\n\n return (\n <Element data-ui=\"Label\" {...domProps} className={label(styleProps)}>\n {children}\n </Element>\n )\n}\n","import {\n avatar,\n avatar_arrow,\n avatar_arrowSvg,\n avatar_image,\n avatar_imageOutline,\n avatar_initials,\n type ResponsiveProp,\n} from '@sanity/ui-css'\nimport type {AvatarColor, AvatarSize, FontLabelSize} from '@sanity/ui-tokens'\nimport {startTransition, useEffect, useState} from 'react'\n\nimport {_raf} from '../../core/helpers/animation'\nimport {_getResponsiveProp} from '../../core/helpers/props'\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box} from '../box/Box'\nimport {Label} from '../label/Label'\nimport type {AvatarPosition} from './types'\n\n/** @public */\nexport const DEFAULT_AVATAR_ELEMENT = 'span'\n\n/** @public */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: AvatarColor\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: ResponsiveProp<AvatarSize>\n src?: string\n title?: string\n}\n\n/** @public */\nexport type AvatarElementType = 'a' | 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarProps<E extends AvatarElementType = AvatarElementType> = Props<AvatarOwnProps, E>\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEMENT>(\n props: AvatarProps<E>,\n): React.JSX.Element {\n const {\n __unstable_hideInnerStroke: hideInnerStroke,\n as: Element = DEFAULT_AVATAR_ELEMENT,\n className,\n color = 'magenta',\n src,\n title,\n initials: initialsProp,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarProps<typeof DEFAULT_AVATAR_ELEMENT>\n\n const initials = typeof initialsProp === 'string' ? initialsProp.slice(0, 2) : undefined\n const size = _getResponsiveProp(sizeProp)\n\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageError, setImageError] = useState<boolean>(false)\n\n const handleImageError = () => {\n setImageError(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }\n\n const initialsSize = size.map((s): FontLabelSize => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }) as ResponsiveProp<FontLabelSize>\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n return _raf(() => setArrowPosition(arrowPositionProp))\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) {\n startTransition(() => setImageError(false))\n }\n }, [src])\n\n return (\n <Element\n data-hide-inner-stroke={hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...rest}\n aria-label={title}\n className={avatar({className, color, size: sizeProp})}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n title={title}\n >\n <span className={avatar_arrow()}>\n <svg className={avatar_arrowSvg()} fill=\"none\" height=\"7\" viewBox=\"0 0 11 7\" width=\"11\">\n <path d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\" />\n </svg>\n </span>\n\n <Box\n alignItems=\"center\"\n as=\"span\"\n className={avatar_initials()}\n display=\"flex\"\n inset={0}\n justifyContent=\"center\"\n overflow=\"hidden\"\n position=\"absolute\"\n radius=\"full\"\n >\n <Label align=\"center\" as=\"span\" size={initialsSize} weight=\"semibold\">\n {initials}\n </Label>\n </Box>\n\n {src && (\n <Box className={avatar_image()} inset={0} position=\"absolute\">\n <img alt={initials} src={src} onError={handleImageError} />\n <span className={avatar_imageOutline()} />\n </Box>\n )}\n </Element>\n )\n}\n","import {avatar_counter, type ResponsiveProp} from '@sanity/ui-css'\nimport type {AvatarSize, FontLabelSize} from '@sanity/ui-tokens'\nimport {useMemo} from 'react'\n\nimport {_getResponsiveProp} from '../../core/helpers/props'\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box} from '../box/Box'\nimport {Label} from '../label/Label'\n\n/** @public */\nexport const DEFAULT_AVATAR_COUNTER_ELEMENT = 'span'\n\n/** @public */\nexport interface AvatarCounterOwnProps {\n count: number\n size?: ResponsiveProp<AvatarSize>\n}\n\n/** @public */\nexport type AvatarCounterElementType = 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarCounterProps<E extends AvatarCounterElementType = AvatarCounterElementType> =\n Props<AvatarCounterOwnProps, E>\n\n/** @public */\nexport function AvatarCounter<\n E extends AvatarCounterElementType = typeof DEFAULT_AVATAR_COUNTER_ELEMENT,\n>(props: AvatarCounterProps<E>): React.JSX.Element {\n const {\n as = DEFAULT_AVATAR_COUNTER_ELEMENT,\n className,\n count,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarCounterProps<typeof DEFAULT_AVATAR_COUNTER_ELEMENT>\n const size = _getResponsiveProp(sizeProp)\n\n const labelSize = useMemo(\n () =>\n size.map((s): FontLabelSize => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }) as ResponsiveProp<FontLabelSize>,\n [size],\n )\n\n return (\n <Box\n data-ui=\"AvatarCounter\"\n {...rest}\n alignItems=\"center\"\n as={as}\n className={avatar_counter({className, size})}\n display=\"flex\"\n flex=\"none\"\n justifyContent=\"center\"\n paddingX={2}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={labelSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n}\n","import {avatar_stack, type ResponsiveProp} from '@sanity/ui-css'\nimport type {AvatarSize} from '@sanity/ui-tokens'\nimport {Children, cloneElement, Fragment, isValidElement, type ReactElement} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {Box, type BoxOwnProps} from '../box/Box'\nimport type {AvatarProps} from './Avatar'\nimport {AvatarCounter} from './AvatarCounter'\n\n/** @public */\nexport const DEFAULT_AVATAR_STACK_ELEMENT = 'span'\n\n/** @public */\nexport type AvatarStackChild = ReactElement<AvatarProps<'div'>> | null | undefined | false\n\n/** @public */\nexport type AvatarStackOwnProps = Omit<\n BoxOwnProps,\n 'align' | 'alignItems' | 'display' | 'justify' | 'justifyContent'\n> & {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n}\n\n/** @public */\nexport type AvatarStackElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarStackProps<E extends AvatarStackElementType = AvatarStackElementType> = Props<\n AvatarStackOwnProps,\n E\n>\n\n/** @public */\nexport function AvatarStack<E extends AvatarStackElementType = typeof DEFAULT_AVATAR_STACK_ELEMENT>(\n props: AvatarStackProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_AVATAR_STACK_ELEMENT,\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size = 1,\n ...rest\n } = props as AvatarStackProps<typeof DEFAULT_AVATAR_STACK_ELEMENT>\n\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n AvatarProps<'span'>\n >[]\n const maxLength = Math.max(maxLengthProp, 0)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Box\n data-ui=\"AvatarStack\"\n {...rest}\n alignItems=\"center\"\n as={as}\n className={avatar_stack({className, size})}\n display=\"flex\"\n justifyContent=\"flex-start\"\n >\n {len === 0 && <AvatarCounter count={len} size={size} />}\n\n {len !== 0 && extraCount > 1 && <AvatarCounter count={extraCount} size={size} />}\n\n {visibleChildren.map((child, childIndex) => (\n <Fragment key={String(childIndex)}>{cloneElement(child, {size})}</Fragment>\n ))}\n </Box>\n )\n}\n","import {\n badge,\n BADGE_STYLE_PROP_KEYS,\n type BadgeStyleProps,\n type ResponsiveProp,\n} from '@sanity/ui-css'\nimport type {FontTextSize} from '@sanity/ui-tokens'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\nimport {Text} from '../text/Text'\n\n/** @public */\nexport const DEFAULT_BADGE_ELEMENT = 'span'\n\n/** @public */\nexport interface BadgeOwnProps extends BadgeStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n}\n\n/** @public */\nexport type BadgeElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type BadgeProps<E extends BadgeElementType = BadgeElementType> = Props<BadgeOwnProps, E>\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport function Badge<E extends BadgeElementType = typeof DEFAULT_BADGE_ELEMENT>(\n props: BadgeProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_BADGE_ELEMENT,\n children,\n fontSize = 1,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as BadgeProps<typeof DEFAULT_BADGE_ELEMENT>, BADGE_STYLE_PROP_KEYS)\n\n return (\n <Element data-ui=\"Badge\" {...domProps} className={badge(styleProps)}>\n <Text as=\"span\" size={fontSize}>\n {children}\n </Text>\n </Element>\n )\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {checkbox, checkbox_input, checkbox_presentation} from '@sanity/ui-css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\n\n/** @public */\nexport const DEFAULT_CHECKBOX_ELEMENT = 'input'\n\n/** @public */\nexport type CheckboxOwnProps = {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/** @public */\nexport type CheckboxElementType = 'input' | ComponentType\n\n/** @public */\nexport type CheckboxProps<E extends CheckboxElementType = CheckboxElementType> = Props<\n CheckboxOwnProps,\n E\n>\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport function Checkbox<E extends CheckboxElementType = typeof DEFAULT_CHECKBOX_ELEMENT>(\n props: CheckboxProps<E>,\n): React.JSX.Element {\n const {\n as: Element = DEFAULT_CHECKBOX_ELEMENT,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as CheckboxProps<typeof DEFAULT_CHECKBOX_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span className={checkbox({className})} data-ui=\"Checkbox\" style={style}>\n <Element\n {...rest}\n ref={ref}\n className={checkbox_input()}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n type=\"checkbox\"\n />\n <span className={checkbox_presentation()}>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </span>\n )\n}\n","import {code, CODE_STYLE_PROP_KEYS, type CodeStyleProps} from '@sanity/ui-css'\nimport {Suspense} from 'react'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\nimport {LazySyntax} from '../_syntax/LazySyntax'\n\n/** @public */\nexport const DEFAULT_CODE_ELEMENT = 'pre'\n\n/** @public */\nexport type CodeOwnProps = CodeStyleProps & {\n /** Define the language to use for syntax highlighting. */\n language?: string\n}\n\n/** @public */\nexport type CodeElementType = 'div' | 'pre' | ComponentType\n\n/** @public */\nexport type CodeProps<E extends CodeElementType = CodeElementType> = Props<CodeOwnProps, E>\n\n/** @public */\nexport function Code<E extends CodeElementType = typeof DEFAULT_CODE_ELEMENT>(\n props: CodeProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_CODE_ELEMENT,\n children,\n language: languageProp,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as CodeProps<typeof DEFAULT_CODE_ELEMENT>, CODE_STYLE_PROP_KEYS)\n\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <Element data-ui=\"Code\" {...domProps} className={code(styleProps)}>\n <Suspense fallback={<code>{children}</code>}>\n <LazySyntax language={language} value={children} />\n </Suspense>\n </Element>\n )\n}\n","import {\n heading,\n HEADING_STYLE_PROP_KEYS,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_HEADING_ELEMENT = 'div'\n\n/** @public */\nexport type HeadingOwnProps = HeadingStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type HeadingElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type HeadingProps<E extends HeadingElementType = HeadingElementType> = Props<\n HeadingOwnProps,\n E\n>\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport function Heading<E extends HeadingElementType = typeof DEFAULT_HEADING_ELEMENT>(\n props: HeadingProps<E>,\n): React.JSX.Element {\n const [\n // split style props\n styleProps,\n {\n as: Element = DEFAULT_HEADING_ELEMENT,\n children: childrenProp,\n textOverflow: textOverflowProp,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as HeadingProps<typeof DEFAULT_HEADING_ELEMENT>, HEADING_STYLE_PROP_KEYS)\n\n let children = childrenProp\n\n if (textOverflowProp) {\n children = <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n }\n\n return (\n <Element data-ui=\"Heading\" {...domProps} className={heading(styleProps)}>\n {children}\n </Element>\n )\n}\n","import {inline, INLINE_STYLE_PROP_KEYS, type InlineStyleProps} from '@sanity/ui-css'\n\nimport {_splitKeys} from '../../core/_keys'\nimport type {Props} from '../../core/types'\nimport type {BoxElementType} from '../box/Box'\n\n/** @public */\nexport const DEFAULT_INLINE_ELEMENT = 'div'\n\n/** @public */\nexport type InlineOwnProps = InlineStyleProps\n\n/** @public */\nexport type InlineElementType = BoxElementType\n\n/** @public */\nexport type InlineProps<E extends InlineElementType = InlineElementType> = Props<InlineOwnProps, E>\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport function Inline<E extends InlineElementType = typeof DEFAULT_INLINE_ELEMENT>(\n props: InlineProps<E>,\n): React.JSX.Element {\n const [\n styleProps,\n {\n as: Element = DEFAULT_INLINE_ELEMENT,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as InlineProps<typeof DEFAULT_INLINE_ELEMENT>, INLINE_STYLE_PROP_KEYS)\n\n return <Element data-ui=\"Inline\" {...domProps} className={inline(styleProps)} />\n}\n","import {radio, radio_input, radio_presentation} from '@sanity/ui-css'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\n\n/** @public */\nexport const DEFAULT_RADIO_ELEMENT = 'input'\n\n/** @public */\nexport type RadioOwnProps = {\n customValidity?: string\n}\n\n/** @public */\nexport type RadioElementType = 'input' | ComponentType\n\n/** @public */\nexport type RadioProps<E extends RadioElementType = RadioElementType> = Props<RadioOwnProps, E>\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport function Radio<E extends RadioElementType = typeof DEFAULT_RADIO_ELEMENT>(\n props: RadioProps<E>,\n): React.JSX.Element {\n const {\n as: Element = DEFAULT_RADIO_ELEMENT,\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...rest\n } = props as RadioProps<typeof DEFAULT_RADIO_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span className={radio({className})} data-ui=\"Radio\" style={style}>\n <Element\n {...rest}\n ref={ref}\n className={radio_input()}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n type=\"radio\"\n />\n <span className={radio_presentation()} />\n </span>\n )\n}\n","import {SelectIcon} from '@sanity/icons'\nimport {_input_element, select, select_presentation, type SelectStyleProps} from '@sanity/ui-css'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {Text} from '../text/Text'\n\n/** @public */\nexport const DEFAULT_SELECT_ELEMENT = 'select'\n\n/** @public */\nexport type SelectOwnProps = SelectStyleProps & {\n customValidity?: string\n readOnly?: boolean\n}\n\n/** @public */\nexport type SelectElementType = 'select' | ComponentType\n\n/** @public */\nexport type SelectProps<E extends SelectElementType = SelectElementType> = Props<SelectOwnProps, E>\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEMENT>(\n props: SelectProps<E>,\n): React.JSX.Element {\n const {\n as: Element = DEFAULT_SELECT_ELEMENT,\n border = true,\n children,\n customValidity,\n disabled,\n flex,\n fontSize = 2,\n gap = 2,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n width = 'fill',\n ...rest\n } = props as SelectProps<typeof DEFAULT_SELECT_ELEMENT>\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span\n className={select({border, fontSize, flex, gap, padding, radius, width})}\n data-icon-right=\"\"\n data-ui=\"Select\"\n >\n <Element {...rest} ref={ref} className={_input_element()} disabled={disabled || readOnly}>\n {children}\n </Element>\n <span className={select_presentation()}>\n <span>\n <Text size={fontSize}>\n <SelectIcon />\n </Text>\n </span>\n </span>\n </span>\n )\n}\n","import {skeleton, type SkeletonStyleProps} from '@sanity/ui-css'\nimport {useEffect, useState} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @beta */\nexport const DEFAULT_SKELETON_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type SkeletonOwnProps = SkeletonStyleProps & {\n animated?: boolean\n delay?: number\n}\n\n/** @beta */\nexport type SkeletonElementType = 'div' | 'span' | ComponentType\n\n/** @beta */\nexport type SkeletonProps<E extends SkeletonElementType = SkeletonElementType> = Props<\n SkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton<E extends SkeletonElementType = typeof DEFAULT_SKELETON_ELEMENT>(\n props: SkeletonProps<E>,\n): React.JSX.Element {\n const {\n as: As = DEFAULT_SKELETON_ELEMENT,\n animated = false,\n className,\n delay,\n ...rest\n } = props as SkeletonProps<typeof DEFAULT_SKELETON_ELEMENT>\n\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <As\n data-ui=\"Skeleton\"\n {...rest}\n className={skeleton({\n className,\n ...rest,\n })}\n data-animated={animated ? '' : undefined}\n data-visible={(delay ? visible : true) ? '' : undefined}\n />\n )\n}\n","import {code_skeleton, type ResponsiveProp} from '@sanity/ui-css'\nimport type {FontCodeSize} from '@sanity/ui-tokens'\n\nimport type {Props} from '../../core/types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './Skeleton'\n\n/** @beta */\nexport const DEFAULT_CODE_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type CodeSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/** @beta */\nexport type CodeSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type CodeSkeletonProps<E extends CodeSkeletonElementType = CodeSkeletonElementType> = Props<\n CodeSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton<\n E extends CodeSkeletonElementType = typeof DEFAULT_CODE_SKELETON_ELEMENT,\n>(props: CodeSkeletonProps<E>): React.JSX.Element {\n const {\n className,\n size = 2,\n ...rest\n } = props as CodeSkeletonProps<typeof DEFAULT_CODE_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={code_skeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {heading_skeleton, type ResponsiveProp} from '@sanity/ui-css'\nimport type {FontHeadingSize} from '@sanity/ui-tokens'\n\nimport type {Props} from '../../core/types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './Skeleton'\n\n/** @beta */\nexport const DEFAULT_HEADING_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type HeadingSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/** @beta */\nexport type HeadingSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type HeadingSkeletonProps<\n E extends HeadingSkeletonElementType = HeadingSkeletonElementType,\n> = Props<HeadingSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton<\n E extends HeadingSkeletonElementType = typeof DEFAULT_HEADING_SKELETON_ELEMENT,\n>(props: HeadingSkeletonProps<E>): React.JSX.Element {\n const {\n className,\n size = 2,\n ...rest\n } = props as HeadingSkeletonProps<typeof DEFAULT_HEADING_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={heading_skeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {label_skeleton, type ResponsiveProp} from '@sanity/ui-css'\nimport type {FontLabelSize} from '@sanity/ui-tokens'\n\nimport type {Props} from '../../core/types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './Skeleton'\n\n/** @beta */\nexport const DEFAULT_LABEL_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type LabelSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/** @beta */\nexport type LabelSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type LabelSkeletonProps<E extends LabelSkeletonElementType = LabelSkeletonElementType> =\n Props<LabelSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton<\n E extends LabelSkeletonElementType = typeof DEFAULT_LABEL_SKELETON_ELEMENT,\n>(props: LabelSkeletonProps<E>): React.JSX.Element {\n const {\n className,\n size = 2,\n ...rest\n } = props as LabelSkeletonProps<typeof DEFAULT_LABEL_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={label_skeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {type ResponsiveProp, text_skeleton} from '@sanity/ui-css'\nimport type {FontTextSize} from '@sanity/ui-tokens'\n\nimport type {Props} from '../../core/types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './Skeleton'\n\n/** @beta */\nexport const DEFAULT_TEXT_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type TextSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @beta */\nexport type TextSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TextSkeletonProps<E extends TextSkeletonElementType = TextSkeletonElementType> = Props<\n TextSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton<\n E extends TextSkeletonElementType = typeof DEFAULT_TEXT_SKELETON_ELEMENT,\n>(props: TextSkeletonProps<E>): React.JSX.Element {\n const {\n className,\n size = 2,\n ...rest\n } = props as TextSkeletonProps<typeof DEFAULT_TEXT_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={text_skeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {srOnly} from '@sanity/ui-css'\n\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_SR_ONLY_ELEMENT = 'span'\n\n/** @public */\nexport type SrOnlyOwnProps = {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/** @public */\nexport type SrOnlyElementType = 'span' | ComponentType\n\n/** @public */\nexport type SrOnlyProps<E extends SrOnlyElementType = SrOnlyElementType> = Props<SrOnlyOwnProps, E>\n\n/** @public */\nexport function SrOnly<E extends SrOnlyElementType = typeof DEFAULT_SR_ONLY_ELEMENT>(\n props: SrOnlyProps<E>,\n): React.JSX.Element {\n const {\n as: Element = DEFAULT_SR_ONLY_ELEMENT,\n children,\n className,\n ...rest\n } = props as SrOnlyProps<typeof DEFAULT_SR_ONLY_ELEMENT>\n\n return (\n <Element data-ui=\"SrOnly\" {...rest} aria-hidden className={srOnly({className})}>\n {children}\n </Element>\n )\n}\n","import {\n _switch,\n _switch_element,\n _switch_presentation,\n _switch_thumb,\n _switch_track,\n} from '@sanity/ui-css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\n\n/** @public */\nexport const DEFAULT_SWITCH_ELEMENT = 'input'\n\n/** @public */\nexport type SwitchOwnProps = {\n indeterminate?: boolean\n}\n\n/** @public */\nexport type SwitchElementType = 'input' | ComponentType\n\n/** @public */\nexport type SwitchProps<E extends SwitchElementType = SwitchElementType> = Props<SwitchOwnProps, E>\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport function Switch<E extends SwitchElementType = typeof DEFAULT_SWITCH_ELEMENT>(\n props: SwitchProps<E>,\n): React.JSX.Element {\n const {\n as: Element = DEFAULT_SWITCH_ELEMENT,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n ...rest\n } = props as SwitchProps<typeof DEFAULT_SWITCH_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <span className={_switch({className})} data-ui=\"Switch\">\n <Element\n {...rest}\n ref={ref}\n className={_switch_element()}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n />\n <span aria-hidden className={_switch_presentation()}>\n <span className={_switch_track()} />\n <span className={_switch_thumb()} />\n </span>\n </span>\n )\n}\n","import {Suspense} from 'react'\n\nimport {LazySyntax} from '../_syntax/LazySyntax'\n\n/** @public */\nexport const DEFAULT_INLINE_CODE_ELEMENT = 'code'\n\n/** @public */\nexport interface InlineCodeProps {\n children: React.ReactNode\n /** Language to use for syntax highlighting. */\n language?: string\n}\n\n/** @public */\nexport function InlineCode(props: InlineCodeProps): React.JSX.Element {\n const {children, language: languageProp} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <Suspense fallback={<code>{children}</code>}>\n <LazySyntax language={language} value={children} />\n </Suspense>\n )\n}\n","import {\n textArea,\n textArea_element,\n textArea_presentation,\n type TextAreaStyleProps,\n} from '@sanity/ui-css'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\n\n/** @public */\nexport const DEFAULT_TEXT_AREA_ELEMENT = 'textarea'\n\n/** @public */\nexport type TextAreaOwnProps = TextAreaStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n}\n\n/** @public */\nexport type TextAreaElementType = 'textarea' | ComponentType\n\n/** @public */\nexport type TextAreaProps<E extends TextAreaElementType = TextAreaElementType> = Props<\n TextAreaOwnProps,\n E\n>\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport function TextArea<E extends TextAreaElementType = typeof DEFAULT_TEXT_AREA_ELEMENT>(\n props: TextAreaProps<E>,\n): React.JSX.Element {\n const {\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_AREA_ELEMENT,\n border = true,\n className,\n customValidity,\n disabled = false,\n flex,\n fontSize = 2,\n fontWeight,\n gap = 3,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n width,\n ...rest\n } = props as TextAreaProps<typeof DEFAULT_TEXT_AREA_ELEMENT>\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span\n className={textArea({\n className,\n border,\n flex,\n fontSize,\n fontWeight,\n gap,\n padding,\n radius,\n width,\n })}\n data-ui=\"TextArea\"\n >\n <Element\n {...rest}\n ref={ref}\n className={textArea_element()}\n data-invalid={customValidity ? '' : undefined}\n data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled}\n readOnly={readOnly}\n />\n <span className={textArea_presentation()} />\n </span>\n )\n}\n","import {type ReactNode, useCallback, useMemo, useRef, useState} from 'react'\n\nimport type {Delay} from '../../../core/types'\nimport {DEFAULT_TOOLTIP_DELAY} from '../constants'\nimport {TooltipDelayGroupContext} from './TooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay?: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 0ms after the first tooltip of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\n const {children, delay = DEFAULT_TOOLTIP_DELAY} = props\n\n const [visibleTooltipId, setVisibleTooltipId] = useState<string | undefined>(undefined)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const openDelayRef = useRef(openDelay)\n\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n const closeDelayRef = useRef(closeDelay)\n\n const timerRef = useRef<NodeJS.Timeout | undefined>(undefined)\n const openRef = useRef(false)\n\n const handleOpenChange = useCallback(\n (params: {open: boolean; id: string; immediate?: boolean}) => {\n const {open, id, immediate} = params\n\n if (timerRef.current) {\n clearTimeout(timerRef.current)\n timerRef.current = undefined\n }\n\n if (open) {\n // open\n\n if (immediate) {\n setVisibleTooltipId(id)\n openRef.current = true\n return\n }\n\n // If the group is already open, we want the next tooltip to open immediately.\n const ms = openRef.current ? 0 : openDelayRef.current\n\n timerRef.current = setTimeout(() => {\n setVisibleTooltipId(id)\n openRef.current = true\n }, ms)\n return\n }\n\n // close\n\n if (immediate) {\n setVisibleTooltipId(undefined)\n openRef.current = false\n return\n }\n\n timerRef.current = setTimeout(() => {\n setVisibleTooltipId(undefined)\n openRef.current = false\n }, closeDelayRef.current)\n },\n [],\n )\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({handleOpenChange, visibleTooltipId}),\n [handleOpenChange, visibleTooltipId],\n )\n\n return <TooltipDelayGroupContext value={value}>{children}</TooltipDelayGroupContext>\n}\n","import {use} from 'react'\n\nimport {TooltipDelayGroupContext} from './TooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = use(TooltipDelayGroupContext)\n\n return value\n}\n","import {type ReactNode} from 'react'\n\nimport {BoundaryElementContext} from './BoundaryElementContext'\n\n/** @public */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/** @public */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n const {children, element} = props\n\n return <BoundaryElementContext value={element}>{children}</BoundaryElementContext>\n}\n","import {use, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './BoundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\n/** @public */\nexport function useBoundaryElement(): {version: 0.0; element: BoundaryElementContextValue} {\n // eslint-disable-next-line no-warning-comments\n // @TODO this wrapping is for BC and should be removed\n const element = use(BoundaryElementContext)\n return useMemo(() => ({version: 0.0, element}), [element])\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {BREAKPOINTS} from '@sanity/ui-css'\nimport {useImperativeHandle, useMemo, useState} from 'react'\n\nimport type {ComponentType, Props} from '../../core/types'\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/** @beta */\nexport const DEFAULT_ELEMENT_QUERY_ELEMENT = 'div'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type ElementQueryOwnProps = {\n media?: number[]\n}\n\n/** @beta */\nexport type ElementQueryElementType = 'div' | ComponentType\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type ElementQueryProps<E extends ElementQueryElementType = ElementQueryElementType> = Props<\n ElementQueryOwnProps,\n E\n>\n\nconst DEFAULT_BREAKPOINTS = Object.values(BREAKPOINTS)\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function ElementQuery<\n E extends ElementQueryElementType = typeof DEFAULT_ELEMENT_QUERY_ELEMENT,\n>(props: ElementQueryProps<E>): React.JSX.Element {\n const {\n as: Element = DEFAULT_ELEMENT_QUERY_ELEMENT,\n children,\n media: mediaProp,\n ref: forwardedRef,\n ...rest\n } = props as ElementQueryProps<typeof DEFAULT_ELEMENT_QUERY_ELEMENT>\n\n const breakpoints = mediaProp ?? DEFAULT_BREAKPOINTS\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(breakpoints, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [breakpoints, width])\n\n const min = useMemo(() => {\n const eq = findMinBreakpoints(breakpoints, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [breakpoints, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <Element data-ui=\"ElementQuery\" {...rest} ref={setElement} data-eq-max={max} data-eq-min={min}>\n {children}\n </Element>\n )\n}\n","import {Component, type ErrorInfo, type PropsWithChildren, type ReactNode} from 'react'\n\nimport {Code} from '../primitives/code/Code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n override state: ErrorBoundaryState = {error: null}\n\n static displayName = 'ErrorBoundary'\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n override componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n override render(): ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {type ReactNode, use, useMemo, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './PortalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport interface PortalProviderProps {\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/** @public */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n const {children, element, __unstable_elements: elements} = props\n const parentPortal = use(PortalContext)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => elements?.['default'] ?? (parentPortal.element || document.body),\n () => null,\n )\n\n const value = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: null,\n element: element || fallbackElement,\n elements,\n } satisfies PortalContextValue\n }, [element, elements, fallbackElement])\n\n return <PortalContext value={value}>{children}</PortalContext>\n}\n\nconst emptySubscribe = () => () => {}\n","import type {CardTone, ColorScheme} from '@sanity/ui-tokens'\nimport type {ReactNode} from 'react'\n\nimport {ToastProvider} from '../components/toast/ToastProvider'\nimport {CardInternalProvider} from '../primitives/card/CardInternalProvider'\nimport {CardProvider} from '../primitives/card/CardProvider'\nimport {LayerProvider} from '../primitives/layer/LayerProvider'\nimport {BoundaryElementProvider} from '../utils/boundaryElement/BoundaryElementProvider'\nimport {PortalProvider} from '../utils/portal/PortalProvider'\n\n/** @public */\nexport interface RootProviderProps {\n boundaryElement: HTMLElement | null\n children?: ReactNode\n portalElement: HTMLElement | null\n scheme: ColorScheme\n tone: CardTone\n}\n\n/** @public */\nexport function RootProvider(props: RootProviderProps): React.JSX.Element {\n const {boundaryElement, children, portalElement, scheme, tone} = props\n\n return (\n <LayerProvider>\n <CardInternalProvider root>\n <CardProvider scheme={scheme} tone={tone}>\n <ToastProvider>\n <BoundaryElementProvider element={boundaryElement}>\n <PortalProvider element={portalElement}>{children}</PortalProvider>\n </BoundaryElementProvider>\n </ToastProvider>\n </CardProvider>\n </CardInternalProvider>\n </LayerProvider>\n )\n}\n","import {root, root_body, ROOT_STYLE_PROP_KEYS, type RootStyleProps} from '@sanity/ui-css'\nimport {useCallback, useImperativeHandle, useRef, useState} from 'react'\n\nimport {_splitKeys} from '../core/_keys'\nimport type {Props} from '../core/types'\nimport {RootProvider} from './RootProvider'\n\n/** @public */\nexport const DEFAULT_ROOT_ELEMENT = 'html'\n\n/** @public */\nexport type RootOwnProps = RootStyleProps\n\n/** @public */\nexport type RootElementType = 'html' | 'div'\n\n/** @public */\nexport type RootProps<E extends RootElementType = RootElementType> = Props<RootOwnProps, E>\n\n/**\n * The `Root` component.\n *\n * @public\n */\nexport function Root<E extends RootElementType = typeof DEFAULT_ROOT_ELEMENT>(\n props: RootProps<E>,\n): React.JSX.Element {\n const [\n {\n height,\n overflow = 'hidden',\n scheme = 'light',\n tone = 'default',\n // split style props\n ...styleProps\n },\n {\n as: Element = DEFAULT_ROOT_ELEMENT,\n children,\n ref: forwardedRef,\n // split DOM props\n ...domProps\n },\n ] = _splitKeys(props as RootProps<typeof DEFAULT_ROOT_ELEMENT>, ROOT_STYLE_PROP_KEYS)\n\n const ref = useRef<HTMLHtmlElement | null>(null)\n\n useImperativeHandle<HTMLHtmlElement | null, HTMLHtmlElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null)\n const [boundaryElement, setBoundaryElement] = useState<HTMLElement | null>(null)\n\n const handleRef = useCallback((el: HTMLHtmlElement | null) => {\n setBoundaryElement(el)\n ref.current = el\n }, [])\n\n let node = (\n <RootProvider\n boundaryElement={boundaryElement}\n portalElement={portalElement}\n scheme={scheme}\n tone={tone}\n >\n {children}\n <div ref={setPortalElement} data-portal=\"\" />\n </RootProvider>\n )\n\n if (Element === 'html') {\n node = <body className={root_body({height})}>{node}</body>\n }\n\n return (\n <Element\n data-ui=\"Root\"\n {...domProps}\n ref={handleRef}\n className={root({\n ...styleProps,\n height,\n overflow,\n scheme,\n tone,\n })}\n >\n {node}\n </Element>\n )\n}\n"],"names":["EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","type","visualDuration","bounce","Z_OFFSETS","dialog","popover","tooltip","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","dispose","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_hasFocus","Boolean","document","activeElement","isFocusable","tabIndex","getAttribute","href","rel","disabled","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","focusLastDescendant","isArray","val","Array","isRecord","value","objectCache","WeakMap","primitiveCache","Map","_getResponsiveProp","defaultVal","undefined","v","BREAKPOINT_KEYS","map","key","cached","get","ret","set","_splitKeys","props","keys","style","rest","keySet","Set","k","has","DEFAULT_BOX_ELEMENT","Box","$","_c","T0","t0","t1","t2","styleProps","t3","BOX_STYLE_PROP_KEYS","as","t4","domProps","box","DEFAULT_TEXT_ELEMENT","Text","children","TEXT_STYLE_PROP_KEYS","childrenProp","textOverflow","textOverflowProp","Element","text","SpinnerAnimatedIcon","Symbol","for","spinner_animatedIcon","DEFAULT_SPINNER_ELEMENT","Spinner","className","spinner","DEFAULT_KBD_ELEMENT","KBD","KBD_STYLE_PROP_KEYS","kbd","DEFAULT_HOTKEYS_ELEMENT","Hotkeys","bb0","t5","HOTKEYS_STYLE_PROP_KEYS","t6","fontSize","_fontSize","hotkeys","_temp","getElementRef","getter","Object","getOwnPropertyDescriptor","mayWarn","isReactWarning","ref","useMatchMedia","mediaQueryString","getServerSnapshot","useDebugValue","onStoreChange","media","window","matchMedia","addEventListener","removeEventListener","matches","useSyncExternalStore","usePrefersReducedMotion","shallowEqual","a","b","every","item","index","keysA","keysB","prototype","hasOwnProperty","call","useUnique","useRef","useMemo","current","origin","name","middlewareData","placement","rects","side","split","floatingWidth","floating","width","floatingHeight","height","shiftX","shift","x","shiftY","y","isVerticalPlacement","includes","originX","originY","clamp","data","num","min","max","Math","getGlobalScope","globalThis","self","global","Error","globalScope","createGlobalScopedContext","defaultValue","symbol","context","createContext","displayName","symbolMap","BoundaryElementContext","CardContext","CardInternalContext","CardInternalProvider","root","CompatProvider","CardProvider","tone","scheme","useCard","use","assertCardContext","cause","elementKey","elementMap","defaultContextValue","version","boundaryElement","createElement","setAttribute","body","appendChild","PortalContext","usePortal","assertPortalContext","Portal","__unstable_name","portal","portalElement","elements","createPortal","DEFAULT_TOOLTIP_DELAY","open","close","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","DEFAULT_FALLBACK_PLACEMENTS","TooltipDelayGroupContext","DEFAULT_CARD_ELEMENT","Card","CARD_STYLE_PROP_KEYS","schemeProp","toneProp","__unstable_checkered","__unstable_focusRing","pressed","selected","restDomProps","checkered","focusRing","As","internalContext","styleTone","styleScheme","__unstable_pattern","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","getLayerContext","contextValue","LayerContext","useLayer","err","message","DEFAULT_LAYER_CARD_ELEMENT","LayerCard","forwardedRef","onActivate","onFocus","position","zIndex","isTopLayer","lastFocusedRef","isTopLayerRef","useImperativeHandle","useEffect","event","rootElement","target","handleFocus","_getMediaQuery","BREAKPOINTS","_createMediaStore","mediaLen","sizes","getSizes","push","mq","getSnapshot","subscribe","disposeFns","handleChange","disposeFn","useMediaIndex","store","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","setChildLayers","useState","size","setSize","childLevel","parentDispose","state","prevLen","nextState","state_0","nextState_0","_temp2","v_0","DEFAULT_LAYER_ELEMENT","Layer","TooltipLayer","animate","padding","radius","shadow","rootStyle","motion","div","DEFAULT_TOOLTIP_ELEMENT","Tooltip","_boundaryElement","_fallbackPlacements","childProp","contentProp","hotkeysProp","idProp","arrow","_arrow","content","delay","id","fallbackPlacements","t20","t21","t22","t23","t24","t25","t26","t27","t28","textSize","t29","t30","t31","animateProp","placementProp","_randomId","useId","referenceElement","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","portalContext","rootBoundary","middleware","useMiddleware","reference","whileElementsMounted","autoUpdate","transform","floatingStyles","refs","useFloating","delayGroupContext","handleGroupOpenChange","handleOpenChange","groupVisible","visibleTooltipId","openDelay","closeDelay","openDelayRef","closeDelayRef","referenceHovered","setReferenceHovered","referenceFocused","setReferenceFocused","isOpen","localVisible","setVisible","timerRef","clearTimeout","setTimeout","immediate","hide","childOnBlur","onBlur","childOnFocus","childOnMouseEnter","onMouseEnter","childOnMouseLeave","onMouseLeave","childOnContextMenu","onContextMenu","e","handleBlur","e_0","handleContextMenu","e_1","e_2","handleMouseEnter","e_3","handleMouseLeave","onClose","useCloseOnMouseLeave","startTransition","t32","t33","t34","t35","handleWindowKeyDown","t36","availableWidths","offsetWidth","t37","useLayoutEffect","t38","setFloating","t39","bb1","t40","t41","cloneElement","t42","t43","t44","t45","maxWidth","t46","node_0","t47","t48","flip","boundary","offset","mainAxis","teardown","onMouseMove","useEffectEvent","handleMouseMove","DEFAULT_BUTTON_ELEMENT","Button","BUTTON_STYLE_PROP_KEYS","icon","Icon","iconRight","IconRight","loading","muted","textAlign","textWeight","button","button_loadingBox","isValidElement","isValidElementType","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_FLEX_ELEMENT","Flex","FLEX_STYLE_PROP_KEYS","flex","PopoverLayer","overflow","referenceWidth","strategy","left","top","popover_card","options","constrainSize","matchReferenceWidth","referenceWidthRef","args","platform","detectOverflow","altBoundary","elementContext","Infinity","maxHeight","floatingW","floatingH","right","bottom","nextDimensions","getDimensions","targetH","targetW","reset","distance","floatingBoundary","placementStrategy","preventOverflow","referenceBoundary","autoPlacement","allowedPlacements","concat","crossAxis","shiftMiddleware","ViewportOverlay","inset","Popover","_floatingBoundary","_referenceBoundary","modal","updateRef","__unstable_margins","__unstable_distance","__unstable_shift","_animate","widthProp","update","referenceHidden","setReference","popoverCss","DEFAULT_SELECTABLE_ELEMENT","Selectable","SELECTABLE_STYLE_PROP_KEYS","selectable","DEFAULT_STACK_ELEMENT","Stack","STACK_STYLE_PROP_KEYS","stack","useCustomValidity","customValidity","setCustomValidity","DEFAULT_TEXT_INPUT_ELEMENT","TextInput","IconComponent","IconRightComponent","__unstable_disableFocusRing","_fontWeight","_weight","border","clearButton","onClear","prefix","readOnly","suffix","fontWeight","gap","weight","paddingProp","withClearButton","handleClearMouseDown","event_0","preventDefault","stopPropagation","handleClearClick","textInput","textInput_prefix","textInput_element","_input_element","_input_presentation","textInput_suffix","ClearButton","clearButtonProps","boxPadding","_temp3","buttonPadding","CloseIcon","p_0","p","AutocompleteOption","onSelect","handleClick","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_AUTOCOMPLETE_ELEMENT","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","filterOptionProp","onChange","onQueryChange","openButton","openOnFocus","optionsProp","relatedElements","renderOptionProp","renderPopover","valueProp","filterOption","listBox","renderOption","renderValue","radiusProp","dispatch","useReducer","innerRadius","value_0","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","inputElement","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","find","o","currentOption","filter","filteredOptions","filteredOptionsLen","activeItemId","expanded","focusInside","handleRootBlur","listBoxElement","focusedElement","HTMLElement","listFocused_0","handleRootFocus","handleOptionSelect","event_1","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","event_2","nextQuery","handleInputChange","dispatchOpen","event_3","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","event_4","onClick","handleOpenClick","ChevronDownIcon","openButtonNode","bb2","inputValue","event_5","handleListBoxKeyDown","bb3","option_0","active","bb4","results","r","RenderPopover","useClickOutsideEvent","listener","elementsArg","evt","resolvedBoundaryElement","flat","el","onEvent","hasListener","handleEvent","evt_0","DEFAULT_BREADCRUMBS_ELEMENT","Breadcrumbs","expandButtonProps","maxLength","popoverProps","separator","expandButton","gapX","gapY","setOpen","expandElementRef","popoverElementRef","collapse","expand","Children","toArray","rawItems","items","useItems","itemIndex","Fragment","len","beforeLength","ceil","afterLength","floor","slice","DEFAULT_CONTAINER_ELEMENT","Container","CONTAINER_STYLE_PROP_KEYS","container","useGlobalKeyDown","onKeyDown","handler","isTargetWithinScope","DEFAULT_DIALOG_CARD_ELEMENT","DialogCard","autoFocus","footer","forwardedContentRef","header","hideCloseButton","onClickOutside","portalProp","__unstable_autoFocus","__unstable_hideCloseButton","contentRef","labelId","showCloseButton","showHeader","scrollTop","setScrollTop","scrollHeight","setScrollHeight","scrollBottom","target_0","handleScroll","offsetHeight","passive","dialog_card","dialog_header","dialog_content","dialog_scrollerShadowTop","dialog_scroller","dialog_scrollerShadowBottom","dialog_footer","DialogContext","useDialog","DEFAULT_DIALOG_ELEMENT","Dialog","_positionProp","_zOffsetProp","cardRadius","_shadow","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","cardElement_0","handleRootClick","dialog_container","DialogProvider","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","path","parentElement","from","unshift","EMPTY_PATH","_sortElements","_sort","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","elementsRef","_setActiveIndex","activeIndexRef","setActiveElement","nextActiveIndex","setActiveIndex","selectedIndex","idx","splice","mount","currentIndex","focusableElements_0","el_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedIndex","el_1","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","DEFAULT_MENU_ELEMENT","Menu","_shouldFocus","onEscape","onItemClick","onItemSelect","registerElement","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","menu","MenuButton","__unstable_disableRestoreFocusOnClose","buttonProp","menuProp","onOpen","disableRestoreFocusOnClose","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","defaultPrevented","handleItemClick","els","els_0","_el","DEFAULT_MENU_DIVIDER_ELEMENT","MenuDivider","menu_divider","useMenu","DEFAULT_MENU_GROUP_ELEMENT","MenuGroup","menuProps","setRootElement","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","DEFAULT_MENU_ITEM_ELEMENT","MenuItem","selectedProp","role","setRef","selectable_hotkeys","TabContext","DEFAULT_TAB_ELEMENT","Tab","label","focusTab","focusedId","activateTab","registerTab","activeId","activeRef","focusedRef","wasActive","DEFAULT_TAB_LIST_ELEMENT","TabList","autoActivate","wrap","setFocusedId","setActiveId","tabs","setTabs","tabsRef","prevId","numTabs","nextIndex","findIndex","tab","nextId","prevId_0","numTabs_0","nextIndex_0","tab_0","nextId_0","nextId_1","nextId_2","prevTabs","newTabs","prevTabs_0","newTabs_0","tab_1","id_0","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","DEFAULT_TAB_PANEL_ELEMENT","TabPanel","hasFocusableChildren","setHasFocusableChildren","mo","MutationObserver","_hasFocusableChildren","observe","childList","subtree","disconnect","tab_panel","DEFAULT_TOAST_ELEMENT","LONG_ENOUGH_BUT_NOT_TOO_LONG","ROLES","error","warning","success","info","STATUS_CARD_TONE","BUTTON_TONE","Toast","closable","description","status","title","cardTone","buttonTone","hasDuration","isFinite","exit","toast","verticalAlign","staggerChildren","slideIn","slideOut","MotionCard","create","MotionFlex","MotionText","useMounted","ToastContext","DEFAULT_GRID_ELEMENT","Grid","GRID_STYLE_PROP_KEYS","grid","DEFAULT_TOAST_LAYER_ELEMENT","ToastLayer","paddingX","paddingY","toast_layer","toastId","generateToastId","String","ToastProvider","setState","mounted","timeoutIdsRef","params","existingTimeoutId","prevState","dismiss","timeoutId","currentState","toast_0","toast_1","dismiss_0","params_0","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","DEFAULT_TREE_ELEMENT","Tree","setFocusedElement","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","querySelectorAll","tree","useTree","TreeGroup","DEFAULT_TREE_ITEM_ELEMENT","TreeItem","gapProp","linkAs","expandedProp","treeitemRef","_id","itemPath_0","closest","click","visibility","pointerEvents","tree_item","vars","space","paddingLeft","_isScrollable","getComputedStyle","overflowX","overflowY","DEFAULT_VIRTUAL_LIST_ELEMENT","VirtualList","getItemKey","renderItem","wrapperRef","itemHeight","setItemHeight","gapValue","setGapValue","scrollableParent","_findScrollableParent","parentNode","documentElement","ro","ResizeObserver","entries","contentRect","unobserve","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","useChildren","slicedItems","_itemIndex","_scrollEl","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscriber","resizeObserver","entry","_contentRect","borderBoxSize","inlineSize","blockSize","disposeCache","subscribersCache","subscribers","elementRect","sub","useElementSize","usePrefersDark","LazySyntax","lazy","DEFAULT_LABEL_ELEMENT","Label","LABEL_STYLE_PROP_KEYS","DEFAULT_AVATAR_ELEMENT","Avatar","animateArrowFrom","arrowPositionProp","hideInnerStroke","initialsProp","onImageLoadError","src","__unstable_hideInnerStroke","color","initials","arrowPosition","sizeProp","setArrowPosition","imageError","setImageError","handleImageError","initialsSize","avatar","avatar_arrow","avatar_arrowSvg","avatar_initials","avatar_image","avatar_imageOutline","DEFAULT_AVATAR_COUNTER_ELEMENT","AvatarCounter","count","labelSize","avatar_counter","DEFAULT_AVATAR_STACK_ELEMENT","AvatarStack","maxLengthProp","visibleCount","extraCount","visibleChildren","avatar_stack","childIndex","DEFAULT_BADGE_ELEMENT","Badge","BADGE_STYLE_PROP_KEYS","badge","DEFAULT_CHECKBOX_ELEMENT","Checkbox","indeterminate","checkbox","checkbox_input","checkbox_presentation","DEFAULT_CODE_ELEMENT","Code","language","CODE_STYLE_PROP_KEYS","languageProp","code","DEFAULT_HEADING_ELEMENT","Heading","HEADING_STYLE_PROP_KEYS","heading","DEFAULT_INLINE_ELEMENT","Inline","INLINE_STYLE_PROP_KEYS","inline","DEFAULT_RADIO_ELEMENT","Radio","radio","radio_input","radio_presentation","DEFAULT_SELECT_ELEMENT","Select","select","select_presentation","DEFAULT_SKELETON_ELEMENT","Skeleton","animated","timeout","skeleton","DEFAULT_CODE_SKELETON_ELEMENT","CodeSkeleton","code_skeleton","DEFAULT_HEADING_SKELETON_ELEMENT","HeadingSkeleton","heading_skeleton","DEFAULT_LABEL_SKELETON_ELEMENT","LabelSkeleton","label_skeleton","DEFAULT_TEXT_SKELETON_ELEMENT","TextSkeleton","text_skeleton","DEFAULT_SR_ONLY_ELEMENT","SrOnly","srOnly","DEFAULT_SWITCH_ELEMENT","Switch","_switch","_switch_element","_switch_presentation","_switch_track","_switch_thumb","DEFAULT_INLINE_CODE_ELEMENT","InlineCode","DEFAULT_TEXT_AREA_ELEMENT","TextArea","textArea","textArea_element","textArea_presentation","TooltipDelayGroupProvider","setVisibleTooltipId","ms","useTooltipDelayGroup","BoundaryElementProvider","useBoundaryElement","findMaxBreakpoints","findMinBreakpoints","DEFAULT_ELEMENT_QUERY_ELEMENT","DEFAULT_BREAKPOINTS","values","ElementQuery","mediaProp","breakpoints","setElement","innerWidth","eq","eq_0","ErrorBoundary","Component","getDerivedStateFromError","componentDidCatch","onCatch","render","PortalProvider","__unstable_elements","parentPortal","fallbackElement","emptySubscribe","RootProvider","DEFAULT_ROOT_ELEMENT","Root","ROOT_STYLE_PROP_KEYS","setPortalElement","setBoundaryElement","handleRef","root_body"],"mappings":"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"}