@sanity/ui 3.0.0-static.8 → 3.0.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 (1062) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +3550 -1279
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-cjs/refractor.js +3 -7
  4. package/dist/_chunks-cjs/refractor.js.map +1 -1
  5. package/dist/_chunks-es/_visual-editing.mjs +3562 -1292
  6. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  7. package/dist/_chunks-es/refractor.mjs +2 -2
  8. package/dist/_chunks-es/refractor.mjs.map +1 -1
  9. package/dist/_visual-editing.d.mts +439 -239
  10. package/dist/_visual-editing.d.ts +439 -239
  11. package/dist/index.d.mts +638 -544
  12. package/dist/index.d.ts +638 -544
  13. package/dist/index.js +501 -315
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +504 -309
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/theme.d.mts +76 -425
  18. package/dist/theme.d.ts +76 -425
  19. package/dist/theme.js +2237 -1325
  20. package/dist/theme.js.map +1 -1
  21. package/dist/theme.mjs +2284 -1372
  22. package/dist/theme.mjs.map +1 -1
  23. package/exports/_visual-editing.ts +27 -27
  24. package/exports/index.ts +1 -1
  25. package/package.json +91 -97
  26. package/src/core/__workshop__/constants.ts +293 -0
  27. package/src/core/_compat.ts +264 -0
  28. package/src/core/components/autocomplete/__workshop__/async.tsx +156 -0
  29. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +137 -0
  30. package/src/core/components/autocomplete/__workshop__/custom.tsx +89 -0
  31. package/src/core/components/autocomplete/__workshop__/example.tsx +79 -0
  32. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +294 -0
  33. package/src/core/components/autocomplete/autocomplete.styles.tsx +39 -0
  34. package/src/core/components/autocomplete/autocomplete.tsx +729 -0
  35. package/src/core/components/autocomplete/autocompleteOption.tsx +45 -0
  36. package/src/core/components/autocomplete/types.ts +108 -0
  37. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +18 -0
  38. package/src/core/components/breadcrumbs/breadcrumbs.tsx +99 -0
  39. package/src/core/components/dialog/__workshop__/nested.tsx +72 -0
  40. package/src/core/components/dialog/__workshop__/onScroll.tsx +39 -0
  41. package/src/core/components/dialog/__workshop__/position.tsx +30 -0
  42. package/src/core/components/dialog/__workshop__/props.tsx +75 -0
  43. package/src/core/components/dialog/dialog.tsx +434 -0
  44. package/src/core/components/dialog/dialogProvider.tsx +35 -0
  45. package/src/core/components/dialog/styles.ts +77 -0
  46. package/src/core/components/hotkeys/hotkeys.tsx +62 -0
  47. package/src/core/components/menu/__workshop__/menuButton.tsx +80 -0
  48. package/src/core/components/menu/__workshop__/tones.tsx +25 -0
  49. package/src/core/components/menu/menu.test.tsx +128 -0
  50. package/src/core/components/menu/menu.tsx +177 -0
  51. package/src/core/components/menu/menuButton.tsx +268 -0
  52. package/src/core/components/menu/menuContext.ts +29 -0
  53. package/src/core/components/menu/menuDivider.ts +12 -0
  54. package/src/core/components/menu/menuGroup.tsx +217 -0
  55. package/src/core/components/menu/menuItem.tsx +180 -0
  56. package/src/core/components/menu/useMenuController.ts +231 -0
  57. package/src/core/components/skeleton/__workshop__/delay.tsx +70 -0
  58. package/src/core/components/skeleton/__workshop__/skeleton.tsx +64 -0
  59. package/src/core/components/skeleton/skeleton.tsx +57 -0
  60. package/src/core/components/skeleton/styles.ts +50 -0
  61. package/src/core/components/skeleton/textSkeleton.tsx +123 -0
  62. package/src/core/components/tab/tab.tsx +101 -0
  63. package/src/core/components/tab/tabList.tsx +70 -0
  64. package/src/core/components/tab/tabPanel.tsx +39 -0
  65. package/src/core/components/toast/__workshop__/toast.tsx +26 -0
  66. package/src/core/components/toast/styles.ts +77 -0
  67. package/src/core/components/toast/toast.tsx +198 -0
  68. package/src/core/components/toast/toastLayer.tsx +51 -0
  69. package/src/core/components/toast/types.ts +26 -0
  70. package/src/core/components/tree/style.ts +105 -0
  71. package/src/core/components/tree/tree.tsx +237 -0
  72. package/src/core/components/tree/treeGroup.tsx +30 -0
  73. package/src/core/components/tree/treeItem.tsx +205 -0
  74. package/src/core/components/tree/types.ts +21 -0
  75. package/src/core/constants.ts +79 -0
  76. package/src/core/helpers/index.ts +4 -0
  77. package/src/core/hooks/useArrayProp.ts +31 -0
  78. package/src/core/hooks/useClickOutside.test.tsx +482 -0
  79. package/src/core/hooks/useForwardedRef.ts +19 -0
  80. package/src/core/hooks/useMatchMedia.ts +28 -0
  81. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +36 -0
  82. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +102 -0
  83. package/src/core/hooks/usePrefersDark.ts +16 -0
  84. package/src/core/hooks/usePrefersReducedMotion.ts +16 -0
  85. package/src/core/index.ts +10 -0
  86. package/src/core/primitives/_selectable/selectable.tsx +15 -0
  87. package/src/core/primitives/_selectable/style.ts +115 -0
  88. package/src/core/primitives/avatar/__workshop__/asButton.tsx +14 -0
  89. package/src/core/primitives/avatar/__workshop__/stack.tsx +25 -0
  90. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +63 -0
  91. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +70 -0
  92. package/src/core/primitives/avatar/avatar.tsx +192 -0
  93. package/src/core/primitives/avatar/avatarCounter.tsx +94 -0
  94. package/src/core/primitives/avatar/avatarStack.tsx +101 -0
  95. package/src/core/primitives/avatar/styles.ts +167 -0
  96. package/src/core/primitives/badge/__workshop__/props.tsx +30 -0
  97. package/src/core/primitives/badge/__workshop__/tones.tsx +21 -0
  98. package/src/core/primitives/badge/badge.tsx +62 -0
  99. package/src/core/primitives/badge/styles.ts +20 -0
  100. package/src/core/primitives/box/__workshop__/props.tsx +20 -0
  101. package/src/core/primitives/box/box.tsx +131 -0
  102. package/src/core/primitives/button/__workshop__/custom.tsx +51 -0
  103. package/src/core/primitives/button/__workshop__/props.tsx +55 -0
  104. package/src/core/primitives/button/__workshop__/stacked.tsx +58 -0
  105. package/src/core/primitives/button/button.tsx +187 -0
  106. package/src/core/primitives/button/styles.ts +117 -0
  107. package/src/core/primitives/card/__workshop__/allTones.tsx +25 -0
  108. package/src/core/primitives/card/__workshop__/asButton.tsx +107 -0
  109. package/src/core/primitives/card/__workshop__/props.tsx +53 -0
  110. package/src/core/primitives/card/__workshop__/selected.tsx +94 -0
  111. package/src/core/primitives/card/card.tsx +116 -0
  112. package/src/core/primitives/card/styles.ts +147 -0
  113. package/src/core/primitives/card/types.ts +11 -0
  114. package/src/core/primitives/checkbox/checkbox.tsx +73 -0
  115. package/src/core/primitives/checkbox/styles.ts +128 -0
  116. package/src/core/primitives/code/__workshop__/props.tsx +21 -0
  117. package/src/core/primitives/code/code.tsx +40 -0
  118. package/src/core/primitives/code/refractor.tsx +20 -0
  119. package/src/core/primitives/code/styles.ts +77 -0
  120. package/src/core/primitives/container/__workshop__/example.tsx +20 -0
  121. package/src/core/primitives/container/container.tsx +41 -0
  122. package/src/core/primitives/container/styles.ts +23 -0
  123. package/src/core/primitives/flex/__workshop__/example.tsx +34 -0
  124. package/src/core/primitives/flex/__workshop__/gap.tsx +25 -0
  125. package/src/core/primitives/flex/flex.tsx +54 -0
  126. package/src/core/primitives/grid/grid.tsx +48 -0
  127. package/src/core/primitives/heading/__workshop__/plain.tsx +32 -0
  128. package/src/core/primitives/heading/heading.tsx +80 -0
  129. package/src/core/primitives/heading/styles.ts +64 -0
  130. package/src/core/primitives/heading/types.ts +7 -0
  131. package/src/core/primitives/inline/__workshop__/plain.tsx +27 -0
  132. package/src/core/primitives/inline/inline.tsx +47 -0
  133. package/src/core/primitives/inline/styles.ts +32 -0
  134. package/src/core/primitives/kbd/kbd.tsx +61 -0
  135. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +48 -0
  136. package/src/core/primitives/label/__workshop__/plain.tsx +24 -0
  137. package/src/core/primitives/label/label.tsx +79 -0
  138. package/src/core/primitives/label/styles.ts +45 -0
  139. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +77 -0
  140. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +32 -0
  141. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +11 -0
  142. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +71 -0
  143. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +71 -0
  144. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +89 -0
  145. package/src/core/primitives/popover/__workshop__/TestStory.tsx +97 -0
  146. package/src/core/primitives/popover/helpers.ts +31 -0
  147. package/src/core/primitives/popover/popover.tsx +484 -0
  148. package/src/core/primitives/popover/popoverCard.tsx +168 -0
  149. package/src/core/primitives/radio/radio.tsx +51 -0
  150. package/src/core/primitives/radio/styles.ts +117 -0
  151. package/src/core/primitives/select/__workshop__/plain.tsx +27 -0
  152. package/src/core/primitives/select/select.tsx +87 -0
  153. package/src/core/primitives/select/styles.ts +166 -0
  154. package/src/core/primitives/spinner/__workshop__/Props.tsx +15 -0
  155. package/src/core/primitives/spinner/spinner.tsx +46 -0
  156. package/src/core/primitives/stack/__workshop__/plain.tsx +32 -0
  157. package/src/core/primitives/stack/stack.tsx +43 -0
  158. package/src/core/primitives/stack/styles.ts +32 -0
  159. package/src/core/primitives/switch/styles.ts +173 -0
  160. package/src/core/primitives/switch/switch.tsx +68 -0
  161. package/src/core/primitives/text/__workshop__/colored.tsx +30 -0
  162. package/src/core/primitives/text/__workshop__/example.tsx +39 -0
  163. package/src/core/primitives/text/styles.ts +74 -0
  164. package/src/core/primitives/text/text.tsx +81 -0
  165. package/src/core/primitives/textArea/__workshop__/plain.tsx +50 -0
  166. package/src/core/primitives/textArea/textArea.tsx +119 -0
  167. package/src/core/primitives/textInput/__workshop__/plain.tsx +98 -0
  168. package/src/core/primitives/textInput/__workshop__/typed.tsx +23 -0
  169. package/src/core/primitives/textInput/textInput.tsx +389 -0
  170. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +102 -0
  171. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +74 -0
  172. package/src/core/primitives/tooltip/__workshop__/props.tsx +107 -0
  173. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +86 -0
  174. package/src/core/primitives/tooltip/tooltip.test.tsx +452 -0
  175. package/src/core/primitives/tooltip/tooltip.tsx +465 -0
  176. package/src/core/primitives/tooltip/tooltipCard.tsx +111 -0
  177. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +57 -0
  178. package/src/core/primitives/types.ts +146 -0
  179. package/src/core/styles/border/borderStyle.ts +56 -0
  180. package/src/core/styles/border/index.ts +2 -0
  181. package/src/core/styles/border/types.ts +10 -0
  182. package/src/core/styles/box/boxStyle.ts +69 -0
  183. package/src/core/styles/box/index.ts +2 -0
  184. package/src/core/styles/box/types.ts +11 -0
  185. package/src/core/styles/card/_cardColorStyle.ts +108 -0
  186. package/src/core/styles/card/index.ts +1 -0
  187. package/src/core/styles/flex/flexItemStyle.ts +27 -0
  188. package/src/core/styles/flex/flexStyle.ts +70 -0
  189. package/src/core/styles/flex/index.ts +3 -0
  190. package/src/core/styles/flex/types.ts +25 -0
  191. package/src/core/styles/focusRing/index.ts +25 -0
  192. package/src/core/styles/font/codeFontStyle.ts +13 -0
  193. package/src/core/styles/font/headingFontStyle.ts +13 -0
  194. package/src/core/styles/font/index.ts +6 -0
  195. package/src/core/styles/font/labelFontStyle.ts +13 -0
  196. package/src/core/styles/font/responsiveFont.ts +101 -0
  197. package/src/core/styles/font/textAlignStyle.ts +19 -0
  198. package/src/core/styles/font/textFontStyle.ts +13 -0
  199. package/src/core/styles/font/types.ts +35 -0
  200. package/src/core/styles/grid/gridItemStyle.ts +82 -0
  201. package/src/core/styles/grid/gridStyle.ts +108 -0
  202. package/src/core/styles/grid/index.ts +3 -0
  203. package/src/core/styles/grid/types.ts +37 -0
  204. package/src/core/styles/helpers.ts +72 -0
  205. package/src/core/styles/index.ts +5 -0
  206. package/src/core/styles/input/index.ts +2 -0
  207. package/src/core/styles/input/responsiveInputPaddingStyle.ts +78 -0
  208. package/src/core/styles/input/textInputStyle.ts +263 -0
  209. package/src/core/styles/internal.ts +12 -0
  210. package/src/core/styles/margin/index.ts +2 -0
  211. package/src/core/styles/margin/marginStyle.ts +21 -0
  212. package/src/core/styles/margin/marginsStyle.test.ts +33 -0
  213. package/src/core/styles/margin/types.ts +9 -0
  214. package/src/core/styles/padding/index.ts +2 -0
  215. package/src/core/styles/padding/paddingStyle.test.ts +33 -0
  216. package/src/core/styles/padding/paddingStyle.ts +21 -0
  217. package/src/core/styles/padding/types.ts +12 -0
  218. package/src/core/styles/radius/index.ts +2 -0
  219. package/src/core/styles/radius/radiusStyle.ts +23 -0
  220. package/src/core/styles/radius/types.ts +8 -0
  221. package/src/core/styles/shadow/index.ts +2 -0
  222. package/src/core/styles/shadow/shadowStyle.ts +29 -0
  223. package/src/core/styles/shadow/types.ts +6 -0
  224. package/src/core/styles/types.ts +8 -0
  225. package/src/core/theme/__workshop__/build/Root.tsx +367 -0
  226. package/src/core/theme/__workshop__/build/helpers.ts +46 -0
  227. package/src/core/theme/__workshop__/build/story.tsx +465 -0
  228. package/src/core/theme/__workshop__/canvas.tsx +351 -0
  229. package/src/core/theme/__workshop__/color.tsx +62 -0
  230. package/src/core/theme/__workshop__/debug/story.tsx +408 -0
  231. package/src/core/theme/__workshop__/index.ts +39 -0
  232. package/src/core/theme/__workshop__/layer.tsx +78 -0
  233. package/src/core/theme/__workshop__/nestedProvider.tsx +15 -0
  234. package/src/core/theme/theme.test.tsx +73 -0
  235. package/src/core/theme/themeColorProvider.tsx +29 -0
  236. package/src/core/theme/themeContext.ts +10 -0
  237. package/src/core/theme/themeProvider.tsx +62 -0
  238. package/src/core/types/avatar.ts +14 -0
  239. package/src/core/types/box.ts +19 -0
  240. package/src/core/types/button.ts +21 -0
  241. package/src/core/types/flex.ts +30 -0
  242. package/src/core/types/grid.ts +14 -0
  243. package/src/core/types/gridItem.ts +29 -0
  244. package/src/core/types/index.ts +14 -0
  245. package/src/core/types/radius.ts +4 -0
  246. package/src/core/types/selectable.ts +6 -0
  247. package/src/core/types/text.ts +4 -0
  248. package/src/core/utils/arrow/arrow.tsx +123 -0
  249. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +24 -0
  250. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +21 -0
  251. package/src/core/utils/elementQuery/elementQuery.tsx +53 -0
  252. package/src/core/utils/errorBoundary.tsx +48 -0
  253. package/src/core/utils/layer/layer.tsx +98 -0
  254. package/src/core/utils/layer/layerProvider.tsx +110 -0
  255. package/src/core/utils/portal/portal.ts +32 -0
  256. package/src/core/utils/portal/portalProvider.tsx +79 -0
  257. package/src/core/utils/srOnly/srOnly.tsx +36 -0
  258. package/src/core/utils/virtualList/virtualList.tsx +174 -0
  259. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +1 -1
  260. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +1 -1
  261. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +6 -1
  262. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +2 -2
  263. package/src/theme/build/_deprecated/color/card/createCardStates.ts +1 -1
  264. package/src/theme/build/_deprecated/color/factory.ts +3 -2
  265. package/src/theme/build/_deprecated/color/input/createInputModes.ts +1 -1
  266. package/src/theme/build/_deprecated/color/muted/createMuted.ts +1 -1
  267. package/src/theme/build/_deprecated/color/spot/createSpot.ts +1 -1
  268. package/src/theme/build/buildColorTheme.ts +1 -1
  269. package/src/theme/build/buildTheme.ts +32 -8
  270. package/src/theme/build/lib/color-fns/rgba.ts +0 -4
  271. package/src/theme/build/renderColorTheme.ts +4 -4
  272. package/src/theme/build/renderColorValue.ts +1 -1
  273. package/src/theme/build/resolveColorTokens.ts +1 -1
  274. package/src/theme/config/system.ts +1 -1
  275. package/src/theme/config/tokens/color/types.ts +1 -1
  276. package/src/theme/config/tokens/parseTokenKey.ts +1 -1
  277. package/src/theme/config/tokens/parseTokenValue.ts +1 -1
  278. package/src/theme/config/tokens/types.ts +1 -1
  279. package/src/theme/config/types.ts +3 -2
  280. package/src/theme/defaults/config.ts +2 -2
  281. package/src/theme/defaults/fonts.ts +16 -17
  282. package/src/theme/getScopedTheme.ts +9 -6
  283. package/src/theme/index.ts +1 -7
  284. package/src/theme/system/avatar.ts +14 -0
  285. package/src/theme/system/font.ts +52 -0
  286. package/src/theme/system/index.ts +11 -0
  287. package/src/theme/system/input.ts +33 -0
  288. package/src/theme/system/theme.ts +138 -0
  289. package/src/theme/system/v0/color/_generic.ts +35 -0
  290. package/src/theme/system/v0/color/color.ts +40 -0
  291. package/src/theme/system/v0/color/input.ts +34 -0
  292. package/src/theme/system/v0/color/spot.ts +13 -0
  293. package/src/theme/system/v0/index.ts +3 -0
  294. package/src/theme/versioning/getTheme_v2.ts +1 -2
  295. package/src/theme/versioning/index.ts +4 -0
  296. package/src/theme/versioning/is_v0.ts +1 -2
  297. package/src/theme/versioning/is_v2.ts +1 -2
  298. package/src/theme/versioning/themeColor_v0_v2.ts +4 -6
  299. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
  300. package/src/theme/versioning/v0_v2.ts +1 -2
  301. package/src/theme/versioning/v2_v0.ts +6 -6
  302. package/bin/ui.js +0 -5
  303. package/dist/_chunks-cjs/buildCommand.js +0 -32
  304. package/dist/_chunks-cjs/buildCommand.js.map +0 -1
  305. package/dist/cli.d.ts +0 -1
  306. package/dist/cli.js +0 -357
  307. package/dist/cli.js.map +0 -1
  308. package/dist/css.d.mts +0 -1471
  309. package/dist/css.d.ts +0 -1471
  310. package/dist/css.js +0 -4830
  311. package/dist/css.js.map +0 -1
  312. package/dist/css.mjs +0 -4831
  313. package/dist/css.mjs.map +0 -1
  314. package/dist/sanity-palette.css +0 -1
  315. package/dist/sanity-theme.css +0 -1
  316. package/dist/system.css +0 -23238
  317. package/exports/css.ts +0 -1
  318. package/src/cli/buildCommand.ts +0 -48
  319. package/src/cli/index.ts +0 -38
  320. package/src/css/_comp.test.ts +0 -7
  321. package/src/css/_comp.ts +0 -11
  322. package/src/css/_mergeStyles.ts +0 -31
  323. package/src/css/_resp.ts +0 -38
  324. package/src/css/_responsiveRule.ts +0 -38
  325. package/src/css/aspects/border/border.style.ts +0 -13
  326. package/src/css/aspects/border/border.ts +0 -14
  327. package/src/css/aspects/border/index.ts +0 -2
  328. package/src/css/aspects/border/types.ts +0 -10
  329. package/src/css/aspects/display/display.style.ts +0 -34
  330. package/src/css/aspects/display/display.ts +0 -7
  331. package/src/css/aspects/display/index.ts +0 -2
  332. package/src/css/aspects/display/types.ts +0 -17
  333. package/src/css/aspects/flex/flex.style.ts +0 -30
  334. package/src/css/aspects/flex/flex.ts +0 -13
  335. package/src/css/aspects/flex/flexAlign.style.ts +0 -12
  336. package/src/css/aspects/flex/flexDirection.style.ts +0 -11
  337. package/src/css/aspects/flex/flexJustify.style.ts +0 -13
  338. package/src/css/aspects/flex/flexWrap.style.ts +0 -10
  339. package/src/css/aspects/flex/index.ts +0 -2
  340. package/src/css/aspects/flex/types.ts +0 -35
  341. package/src/css/aspects/flexItem/flex.style.ts +0 -22
  342. package/src/css/aspects/flexItem/flexItem.ts +0 -8
  343. package/src/css/aspects/flexItem/index.ts +0 -2
  344. package/src/css/aspects/flexItem/types.ts +0 -27
  345. package/src/css/aspects/font/font.style.ts +0 -151
  346. package/src/css/aspects/font/font.ts +0 -12
  347. package/src/css/aspects/font/index.ts +0 -2
  348. package/src/css/aspects/font/types.ts +0 -12
  349. package/src/css/aspects/gap/gap.style.ts +0 -21
  350. package/src/css/aspects/gap/gap.ts +0 -8
  351. package/src/css/aspects/gap/index.ts +0 -2
  352. package/src/css/aspects/gap/types.ts +0 -10
  353. package/src/css/aspects/grid/grid.ts +0 -13
  354. package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
  355. package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
  356. package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
  357. package/src/css/aspects/grid/gridColumns.style.ts +0 -18
  358. package/src/css/aspects/grid/gridRows.style.ts +0 -18
  359. package/src/css/aspects/grid/index.ts +0 -2
  360. package/src/css/aspects/grid/types.ts +0 -29
  361. package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
  362. package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
  363. package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
  364. package/src/css/aspects/gridItem/gridItem.ts +0 -15
  365. package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
  366. package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
  367. package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
  368. package/src/css/aspects/gridItem/index.ts +0 -2
  369. package/src/css/aspects/gridItem/types.ts +0 -41
  370. package/src/css/aspects/height/height.style.ts +0 -9
  371. package/src/css/aspects/height/height.ts +0 -17
  372. package/src/css/aspects/height/index.ts +0 -1
  373. package/src/css/aspects/height/rules.ts +0 -7
  374. package/src/css/aspects/index.ts +0 -21
  375. package/src/css/aspects/inset/index.ts +0 -2
  376. package/src/css/aspects/inset/inset.style.ts +0 -12
  377. package/src/css/aspects/inset/inset.ts +0 -13
  378. package/src/css/aspects/inset/types.ts +0 -13
  379. package/src/css/aspects/margin/index.ts +0 -2
  380. package/src/css/aspects/margin/margin.style.ts +0 -46
  381. package/src/css/aspects/margin/margin.ts +0 -15
  382. package/src/css/aspects/margin/types.ts +0 -11
  383. package/src/css/aspects/maxWidth/index.ts +0 -2
  384. package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
  385. package/src/css/aspects/maxWidth/maxWidth.ts +0 -6
  386. package/src/css/aspects/maxWidth/types.ts +0 -7
  387. package/src/css/aspects/minWidth/index.ts +0 -2
  388. package/src/css/aspects/minWidth/minWidth.style.ts +0 -13
  389. package/src/css/aspects/minWidth/minWidth.ts +0 -6
  390. package/src/css/aspects/minWidth/types.ts +0 -7
  391. package/src/css/aspects/outline/outline.style.ts +0 -9
  392. package/src/css/aspects/overflow/index.ts +0 -2
  393. package/src/css/aspects/overflow/overflow.style.ts +0 -11
  394. package/src/css/aspects/overflow/overflow.ts +0 -11
  395. package/src/css/aspects/overflow/types.ts +0 -11
  396. package/src/css/aspects/padding/index.ts +0 -2
  397. package/src/css/aspects/padding/padding.style.ts +0 -46
  398. package/src/css/aspects/padding/padding.ts +0 -15
  399. package/src/css/aspects/padding/types.ts +0 -14
  400. package/src/css/aspects/pointerEvents/index.ts +0 -2
  401. package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
  402. package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -6
  403. package/src/css/aspects/pointerEvents/types.ts +0 -7
  404. package/src/css/aspects/position/index.ts +0 -2
  405. package/src/css/aspects/position/position.style.ts +0 -12
  406. package/src/css/aspects/position/position.ts +0 -7
  407. package/src/css/aspects/position/types.ts +0 -9
  408. package/src/css/aspects/radius/index.ts +0 -2
  409. package/src/css/aspects/radius/radius.style.ts +0 -16
  410. package/src/css/aspects/radius/radius.ts +0 -8
  411. package/src/css/aspects/radius/types.ts +0 -8
  412. package/src/css/aspects/shadow/index.ts +0 -2
  413. package/src/css/aspects/shadow/shadow.style.ts +0 -49
  414. package/src/css/aspects/shadow/shadow.ts +0 -7
  415. package/src/css/aspects/shadow/types.ts +0 -8
  416. package/src/css/aspects/textOverflow/index.ts +0 -2
  417. package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
  418. package/src/css/aspects/textOverflow/textOverflow.ts +0 -6
  419. package/src/css/aspects/textOverflow/types.ts +0 -8
  420. package/src/css/aspects/width/index.ts +0 -2
  421. package/src/css/aspects/width/rules.ts +0 -8
  422. package/src/css/aspects/width/types.ts +0 -9
  423. package/src/css/aspects/width/width.style.ts +0 -11
  424. package/src/css/aspects/width/width.ts +0 -6
  425. package/src/css/compile/compilePalette.ts +0 -27
  426. package/src/css/compile/compileRule.ts +0 -97
  427. package/src/css/compile/compileRules.test.ts +0 -36
  428. package/src/css/compile/compileRules.ts +0 -43
  429. package/src/css/compile/compileStyle.ts +0 -148
  430. package/src/css/compile/compileSystem.ts +0 -10
  431. package/src/css/compile/compileTheme.ts +0 -15
  432. package/src/css/compile/compileTheme_v3.ts +0 -401
  433. package/src/css/compile/types.ts +0 -6
  434. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
  435. package/src/css/components/breadcrumbs/breadcrumbs.ts +0 -5
  436. package/src/css/components/breadcrumbs/rules.ts +0 -25
  437. package/src/css/components/dialog/dialog.style.ts +0 -79
  438. package/src/css/components/dialog/dialog.ts +0 -30
  439. package/src/css/components/dialog/index.ts +0 -1
  440. package/src/css/components/dialog/rules.ts +0 -78
  441. package/src/css/components/menu/index.ts +0 -1
  442. package/src/css/components/menu/menu.style.ts +0 -17
  443. package/src/css/components/menu/menu.ts +0 -9
  444. package/src/css/components/menu/rules.ts +0 -15
  445. package/src/css/components/skeleton/index.ts +0 -2
  446. package/src/css/components/skeleton/rules.ts +0 -113
  447. package/src/css/components/skeleton/skeleton.style.ts +0 -96
  448. package/src/css/components/skeleton/skeleton.ts +0 -31
  449. package/src/css/components/skeleton/types.ts +0 -26
  450. package/src/css/components/toast/index.ts +0 -1
  451. package/src/css/components/toast/rules.ts +0 -18
  452. package/src/css/components/toast/toast.style.ts +0 -20
  453. package/src/css/components/toast/toast.ts +0 -21
  454. package/src/css/components/tree/index.ts +0 -1
  455. package/src/css/components/tree/rules.ts +0 -168
  456. package/src/css/components/tree/tree.style.ts +0 -55
  457. package/src/css/components/tree/tree.ts +0 -5
  458. package/src/css/composeClassNames.ts +0 -17
  459. package/src/css/constants.ts +0 -1
  460. package/src/css/index.ts +0 -41
  461. package/src/css/primitives/_arrow/_arrow.style.ts +0 -73
  462. package/src/css/primitives/_arrow/_arrow.ts +0 -14
  463. package/src/css/primitives/_arrow/index.ts +0 -1
  464. package/src/css/primitives/_input/__workshop__/customInput.tsx +0 -16
  465. package/src/css/primitives/_input/__workshop__/index.ts +0 -14
  466. package/src/css/primitives/_input/_input.style.ts +0 -162
  467. package/src/css/primitives/_input/index.ts +0 -2
  468. package/src/css/primitives/_input/input.ts +0 -25
  469. package/src/css/primitives/_input/types.ts +0 -12
  470. package/src/css/primitives/_selectable/__style.ts +0 -117
  471. package/src/css/primitives/_selectable/_contants.ts +0 -11
  472. package/src/css/primitives/_selectable/_selectable.style.ts +0 -132
  473. package/src/css/primitives/_selectable/index.ts +0 -2
  474. package/src/css/primitives/_selectable/selectable.ts +0 -9
  475. package/src/css/primitives/_selectable/types.ts +0 -8
  476. package/src/css/primitives/avatar/avatar.style.ts +0 -175
  477. package/src/css/primitives/avatar/avatar.ts +0 -27
  478. package/src/css/primitives/avatar/index.ts +0 -2
  479. package/src/css/primitives/avatar/rules.ts +0 -176
  480. package/src/css/primitives/avatar/types.ts +0 -8
  481. package/src/css/primitives/badge/badge.style.ts +0 -22
  482. package/src/css/primitives/badge/badge.ts +0 -8
  483. package/src/css/primitives/badge/index.ts +0 -2
  484. package/src/css/primitives/badge/types.ts +0 -8
  485. package/src/css/primitives/box/box.style.ts +0 -31
  486. package/src/css/primitives/box/box.ts +0 -52
  487. package/src/css/primitives/box/index.ts +0 -2
  488. package/src/css/primitives/box/types.ts +0 -51
  489. package/src/css/primitives/button/_constants.ts +0 -17
  490. package/src/css/primitives/button/button.style.ts +0 -201
  491. package/src/css/primitives/button/button.ts +0 -41
  492. package/src/css/primitives/button/rules.ts +0 -302
  493. package/src/css/primitives/card/_constants.ts +0 -13
  494. package/src/css/primitives/card/card.style.ts +0 -270
  495. package/src/css/primitives/card/card.ts +0 -14
  496. package/src/css/primitives/card/types.ts +0 -10
  497. package/src/css/primitives/checkbox/__styles.ts +0 -129
  498. package/src/css/primitives/checkbox/checkbox.style.ts +0 -154
  499. package/src/css/primitives/checkbox/checkbox.ts +0 -9
  500. package/src/css/primitives/checkbox/rules.ts +0 -152
  501. package/src/css/primitives/code/code.style.ts +0 -62
  502. package/src/css/primitives/code/code.ts +0 -9
  503. package/src/css/primitives/code/index.ts +0 -2
  504. package/src/css/primitives/code/rules.ts +0 -96
  505. package/src/css/primitives/code/types.ts +0 -10
  506. package/src/css/primitives/container/container.style.ts +0 -10
  507. package/src/css/primitives/container/container.ts +0 -7
  508. package/src/css/primitives/container/rules.ts +0 -8
  509. package/src/css/primitives/container/types.ts +0 -7
  510. package/src/css/primitives/heading/heading.style.ts +0 -47
  511. package/src/css/primitives/heading/heading.ts +0 -17
  512. package/src/css/primitives/heading/index.ts +0 -2
  513. package/src/css/primitives/heading/rules.ts +0 -155
  514. package/src/css/primitives/heading/types.ts +0 -12
  515. package/src/css/primitives/kbd/index.ts +0 -2
  516. package/src/css/primitives/kbd/kbd.style.ts +0 -22
  517. package/src/css/primitives/kbd/kbd.ts +0 -7
  518. package/src/css/primitives/kbd/rules.ts +0 -20
  519. package/src/css/primitives/kbd/types.ts +0 -7
  520. package/src/css/primitives/label/index.ts +0 -2
  521. package/src/css/primitives/label/label.style.ts +0 -48
  522. package/src/css/primitives/label/label.ts +0 -16
  523. package/src/css/primitives/label/rules.ts +0 -137
  524. package/src/css/primitives/label/types.ts +0 -12
  525. package/src/css/primitives/popover/index.ts +0 -1
  526. package/src/css/primitives/popover/popover.style.ts +0 -5
  527. package/src/css/primitives/popover/popover.ts +0 -9
  528. package/src/css/primitives/popover/rules.ts +0 -5
  529. package/src/css/primitives/radio/radio.style.ts +0 -123
  530. package/src/css/primitives/radio/radio.ts +0 -5
  531. package/src/css/primitives/radio/rules.ts +0 -121
  532. package/src/css/primitives/select/index.ts +0 -2
  533. package/src/css/primitives/select/rules.ts +0 -22
  534. package/src/css/primitives/select/select.style.ts +0 -24
  535. package/src/css/primitives/select/select.ts +0 -12
  536. package/src/css/primitives/select/types.ts +0 -5
  537. package/src/css/primitives/spinner/rules.ts +0 -21
  538. package/src/css/primitives/spinner/spinner.style.ts +0 -22
  539. package/src/css/primitives/spinner/spinner.ts +0 -9
  540. package/src/css/primitives/stack/stack.style.ts +0 -9
  541. package/src/css/primitives/stack/stack.ts +0 -6
  542. package/src/css/primitives/switch/rules.ts +0 -340
  543. package/src/css/primitives/switch/switch.style.ts +0 -94
  544. package/src/css/primitives/switch/switch.ts +0 -21
  545. package/src/css/primitives/text/index.ts +0 -2
  546. package/src/css/primitives/text/rules.ts +0 -164
  547. package/src/css/primitives/text/text.style.ts +0 -64
  548. package/src/css/primitives/text/text.ts +0 -17
  549. package/src/css/primitives/text/types.ts +0 -11
  550. package/src/css/primitives/textArea/index.ts +0 -2
  551. package/src/css/primitives/textArea/rules.ts +0 -7
  552. package/src/css/primitives/textArea/textArea.style.ts +0 -9
  553. package/src/css/primitives/textArea/textArea.ts +0 -8
  554. package/src/css/primitives/textArea/types.ts +0 -5
  555. package/src/css/primitives/textInput/index.ts +0 -2
  556. package/src/css/primitives/textInput/rules.ts +0 -224
  557. package/src/css/primitives/textInput/textInput.style.ts +0 -167
  558. package/src/css/primitives/textInput/textInput.ts +0 -8
  559. package/src/css/primitives/textInput/types.ts +0 -11
  560. package/src/css/primitives/token/rules.ts +0 -45
  561. package/src/css/primitives/token/token.style.ts +0 -49
  562. package/src/css/primitives/tooltip/index.ts +0 -1
  563. package/src/css/primitives/tooltip/rules.ts +0 -19
  564. package/src/css/primitives/tooltip/tooltip.style.ts +0 -21
  565. package/src/css/primitives/tooltip/tooltip.ts +0 -9
  566. package/src/css/responsiveRules.ts +0 -25
  567. package/src/css/scopeClassName.ts +0 -6
  568. package/src/css/system.style.ts +0 -158
  569. package/src/css/types.ts +0 -850
  570. package/src/css/util.ts +0 -27
  571. package/src/css/utils/srOnly/srOnly.style.ts +0 -14
  572. package/src/css/utils/srOnly/srOnly.ts +0 -5
  573. package/src/css/varNames.ts +0 -496
  574. package/src/css/vars.ts +0 -465
  575. package/src/theme/_constants.ts +0 -26
  576. package/src/theme/_types.ts +0 -41
  577. package/src/theme/palette/constants.ts +0 -13
  578. package/src/theme/palette/index.ts +0 -2
  579. package/src/theme/palette/types.ts +0 -4
  580. package/src/theme/types.ts +0 -32
  581. package/src/theme/v0/color/_generic.ts +0 -35
  582. package/src/theme/v0/color/color.ts +0 -40
  583. package/src/theme/v0/color/input.ts +0 -34
  584. package/src/theme/v0/color/spot.ts +0 -13
  585. package/src/theme/v0/font.ts +0 -53
  586. package/src/theme/v0/index.ts +0 -10
  587. package/src/theme/v0/theme.ts +0 -72
  588. package/src/theme/v2/avatar.ts +0 -14
  589. package/src/theme/v2/index.ts +0 -4
  590. package/src/theme/v2/input.ts +0 -33
  591. package/src/theme/v2/theme.ts +0 -49
  592. package/src/theme/v3/buildTheme_v3.test.ts +0 -40
  593. package/src/theme/v3/buildTheme_v3.ts +0 -29
  594. package/src/theme/v3/color/buildColor_v3.ts +0 -198
  595. package/src/theme/v3/color/card.ts +0 -121
  596. package/src/theme/v3/color/color.ts +0 -98
  597. package/src/theme/v3/color/element.ts +0 -19
  598. package/src/theme/v3/color/index.ts +0 -7
  599. package/src/theme/v3/color/parseColor.test.ts +0 -79
  600. package/src/theme/v3/color/parseColor.ts +0 -167
  601. package/src/theme/v3/color/renderColor.test.ts +0 -19
  602. package/src/theme/v3/color/renderColor.ts +0 -33
  603. package/src/theme/v3/color/token.ts +0 -17
  604. package/src/theme/v3/color/tokens.ts +0 -5
  605. package/src/theme/v3/defaults.ts +0 -202
  606. package/src/theme/v3/index.ts +0 -6
  607. package/src/theme/v3/merge.ts +0 -22
  608. package/src/theme/v3/resolveTokens.ts +0 -204
  609. package/src/theme/v3/tokens.ts +0 -16
  610. package/src/theme/v3/types.ts +0 -45
  611. package/src/theme/versioning/themeColor_v3_v2.ts +0 -206
  612. package/src/theme/versioning/v3_v2.ts +0 -108
  613. package/src/ui/StyleTags.tsx +0 -24
  614. package/src/ui/_compat/index.ts +0 -9
  615. package/src/ui/_compat/styles/_responsive.ts +0 -19
  616. package/src/ui/_compat/styles/index.ts +0 -1
  617. package/src/ui/_compat/theme/theme.test.tsx +0 -73
  618. package/src/ui/_compat/theme/themeColorProvider.tsx +0 -30
  619. package/src/ui/_compat/theme/themeContext.ts +0 -10
  620. package/src/ui/_compat/theme/themeProvider.tsx +0 -74
  621. package/src/ui/_compat/types.ts +0 -274
  622. package/src/ui/components/autocomplete/__workshop__/async.tsx +0 -156
  623. package/src/ui/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -131
  624. package/src/ui/components/autocomplete/__workshop__/custom.tsx +0 -90
  625. package/src/ui/components/autocomplete/__workshop__/example.tsx +0 -80
  626. package/src/ui/components/autocomplete/__workshop__/fullscreen.tsx +0 -293
  627. package/src/ui/components/autocomplete/autocomplete.tsx +0 -722
  628. package/src/ui/components/autocomplete/autocompleteOption.tsx +0 -45
  629. package/src/ui/components/autocomplete/types.ts +0 -108
  630. package/src/ui/components/breadcrumbs/breadcrumbs.tsx +0 -127
  631. package/src/ui/components/breadcrumbs/index.ts +0 -1
  632. package/src/ui/components/dialog/__workshop__/nested.tsx +0 -72
  633. package/src/ui/components/dialog/__workshop__/onScroll.tsx +0 -39
  634. package/src/ui/components/dialog/__workshop__/position.tsx +0 -30
  635. package/src/ui/components/dialog/__workshop__/props.tsx +0 -77
  636. package/src/ui/components/dialog/dialog.tsx +0 -432
  637. package/src/ui/components/dialog/dialogProvider.tsx +0 -35
  638. package/src/ui/components/hotkeys/hotkeys.tsx +0 -54
  639. package/src/ui/components/menu/__workshop__/menuButton.tsx +0 -80
  640. package/src/ui/components/menu/__workshop__/tones.tsx +0 -25
  641. package/src/ui/components/menu/menu.test.tsx +0 -128
  642. package/src/ui/components/menu/menu.tsx +0 -200
  643. package/src/ui/components/menu/menuButton.tsx +0 -275
  644. package/src/ui/components/menu/menuContext.ts +0 -31
  645. package/src/ui/components/menu/menuDivider.tsx +0 -22
  646. package/src/ui/components/menu/menuGroup.tsx +0 -228
  647. package/src/ui/components/menu/menuItem.tsx +0 -180
  648. package/src/ui/components/menu/useMenuController.ts +0 -241
  649. package/src/ui/components/skeleton/__workshop__/delay.tsx +0 -70
  650. package/src/ui/components/skeleton/__workshop__/skeleton.tsx +0 -64
  651. package/src/ui/components/skeleton/skeleton.tsx +0 -53
  652. package/src/ui/components/skeleton/textSkeleton.tsx +0 -132
  653. package/src/ui/components/tab/tab.tsx +0 -105
  654. package/src/ui/components/tab/tabList.tsx +0 -74
  655. package/src/ui/components/tab/tabPanel.tsx +0 -40
  656. package/src/ui/components/toast/__workshop__/toast.tsx +0 -26
  657. package/src/ui/components/toast/toast.tsx +0 -211
  658. package/src/ui/components/toast/toastLayer.tsx +0 -38
  659. package/src/ui/components/toast/types.ts +0 -28
  660. package/src/ui/components/tree/tree.tsx +0 -244
  661. package/src/ui/components/tree/treeGroup.tsx +0 -30
  662. package/src/ui/components/tree/treeItem.tsx +0 -220
  663. package/src/ui/components/tree/types.ts +0 -25
  664. package/src/ui/constants.ts +0 -85
  665. package/src/ui/helpers/index.ts +0 -5
  666. package/src/ui/helpers/props.ts +0 -10
  667. package/src/ui/hooks/useArrayProp.ts +0 -29
  668. package/src/ui/hooks/useClickOutside.test.tsx +0 -482
  669. package/src/ui/hooks/useForwardedRef.ts +0 -19
  670. package/src/ui/hooks/useMatchMedia.ts +0 -28
  671. package/src/ui/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
  672. package/src/ui/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  673. package/src/ui/hooks/usePrefersDark.ts +0 -16
  674. package/src/ui/hooks/usePrefersReducedMotion.ts +0 -16
  675. package/src/ui/index.ts +0 -9
  676. package/src/ui/primitives/_selectable/selectable.tsx +0 -31
  677. package/src/ui/primitives/avatar/__workshop__/asButton.tsx +0 -14
  678. package/src/ui/primitives/avatar/__workshop__/stack.tsx +0 -25
  679. package/src/ui/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  680. package/src/ui/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -72
  681. package/src/ui/primitives/avatar/avatar.tsx +0 -158
  682. package/src/ui/primitives/avatar/avatarCounter.tsx +0 -62
  683. package/src/ui/primitives/avatar/avatarStack.tsx +0 -82
  684. package/src/ui/primitives/badge/__workshop__/props.tsx +0 -30
  685. package/src/ui/primitives/badge/__workshop__/tones.tsx +0 -21
  686. package/src/ui/primitives/badge/badge.tsx +0 -64
  687. package/src/ui/primitives/box/__workshop__/props.tsx +0 -20
  688. package/src/ui/primitives/box/box.tsx +0 -162
  689. package/src/ui/primitives/button/__workshop__/custom.tsx +0 -50
  690. package/src/ui/primitives/button/__workshop__/props.tsx +0 -58
  691. package/src/ui/primitives/button/__workshop__/stacked.tsx +0 -59
  692. package/src/ui/primitives/button/button.tsx +0 -207
  693. package/src/ui/primitives/button/index.ts +0 -1
  694. package/src/ui/primitives/card/__workshop__/allTones.tsx +0 -27
  695. package/src/ui/primitives/card/__workshop__/asButton.tsx +0 -107
  696. package/src/ui/primitives/card/__workshop__/props.tsx +0 -55
  697. package/src/ui/primitives/card/__workshop__/selected.tsx +0 -93
  698. package/src/ui/primitives/card/card.tsx +0 -118
  699. package/src/ui/primitives/card/cardContext.ts +0 -10
  700. package/src/ui/primitives/card/cardProvider.tsx +0 -19
  701. package/src/ui/primitives/card/index.ts +0 -4
  702. package/src/ui/primitives/card/types.ts +0 -27
  703. package/src/ui/primitives/card/useCard.ts +0 -7
  704. package/src/ui/primitives/checkbox/checkbox.tsx +0 -74
  705. package/src/ui/primitives/checkbox/index.ts +0 -1
  706. package/src/ui/primitives/code/__workshop__/props.tsx +0 -21
  707. package/src/ui/primitives/code/code.tsx +0 -49
  708. package/src/ui/primitives/code/refractor.tsx +0 -20
  709. package/src/ui/primitives/container/__workshop__/example.tsx +0 -20
  710. package/src/ui/primitives/container/container.tsx +0 -35
  711. package/src/ui/primitives/container/index.ts +0 -2
  712. package/src/ui/primitives/flex/__workshop__/example.tsx +0 -34
  713. package/src/ui/primitives/flex/__workshop__/gap.tsx +0 -25
  714. package/src/ui/primitives/flex/flex.tsx +0 -29
  715. package/src/ui/primitives/grid/grid.tsx +0 -30
  716. package/src/ui/primitives/heading/__workshop__/plain.tsx +0 -32
  717. package/src/ui/primitives/heading/heading.tsx +0 -62
  718. package/src/ui/primitives/inline/__workshop__/plain.tsx +0 -27
  719. package/src/ui/primitives/inline/inline.tsx +0 -50
  720. package/src/ui/primitives/kbd/kbd.tsx +0 -55
  721. package/src/ui/primitives/label/__workshop__/opticalAlignment.tsx +0 -54
  722. package/src/ui/primitives/label/__workshop__/plain.tsx +0 -37
  723. package/src/ui/primitives/label/label.tsx +0 -67
  724. package/src/ui/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  725. package/src/ui/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  726. package/src/ui/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  727. package/src/ui/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  728. package/src/ui/primitives/popover/__workshop__/RecursiveStory.tsx +0 -70
  729. package/src/ui/primitives/popover/__workshop__/SidePanelStory.tsx +0 -93
  730. package/src/ui/primitives/popover/__workshop__/TestStory.tsx +0 -98
  731. package/src/ui/primitives/popover/helpers.ts +0 -32
  732. package/src/ui/primitives/popover/popover.tsx +0 -422
  733. package/src/ui/primitives/popover/popoverCard.tsx +0 -161
  734. package/src/ui/primitives/radio/index.ts +0 -1
  735. package/src/ui/primitives/radio/radio.tsx +0 -49
  736. package/src/ui/primitives/select/__workshop__/plain.tsx +0 -30
  737. package/src/ui/primitives/select/select.tsx +0 -85
  738. package/src/ui/primitives/spinner/__workshop__/Props.tsx +0 -16
  739. package/src/ui/primitives/spinner/animatedSpinnerIcon.tsx +0 -16
  740. package/src/ui/primitives/spinner/index.ts +0 -1
  741. package/src/ui/primitives/spinner/spinner.tsx +0 -33
  742. package/src/ui/primitives/stack/__workshop__/plain.tsx +0 -32
  743. package/src/ui/primitives/stack/index.ts +0 -1
  744. package/src/ui/primitives/stack/stack.tsx +0 -45
  745. package/src/ui/primitives/switch/index.ts +0 -1
  746. package/src/ui/primitives/switch/switch.tsx +0 -75
  747. package/src/ui/primitives/text/__workshop__/colored.tsx +0 -23
  748. package/src/ui/primitives/text/__workshop__/example.tsx +0 -39
  749. package/src/ui/primitives/text/text.tsx +0 -64
  750. package/src/ui/primitives/textArea/__workshop__/plain.tsx +0 -50
  751. package/src/ui/primitives/textArea/textArea.tsx +0 -71
  752. package/src/ui/primitives/textInput/__workshop__/plain.tsx +0 -104
  753. package/src/ui/primitives/textInput/__workshop__/typed.tsx +0 -23
  754. package/src/ui/primitives/textInput/textInput.tsx +0 -286
  755. package/src/ui/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  756. package/src/ui/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  757. package/src/ui/primitives/tooltip/__workshop__/props.tsx +0 -111
  758. package/src/ui/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  759. package/src/ui/primitives/tooltip/tooltip.test.tsx +0 -453
  760. package/src/ui/primitives/tooltip/tooltip.tsx +0 -466
  761. package/src/ui/primitives/tooltip/tooltipCard.tsx +0 -115
  762. package/src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -55
  763. package/src/ui/primitives/types.ts +0 -166
  764. package/src/ui/types/avatar.ts +0 -19
  765. package/src/ui/types/box.ts +0 -22
  766. package/src/ui/types/button.ts +0 -24
  767. package/src/ui/types/flex.ts +0 -27
  768. package/src/ui/types/grid.ts +0 -17
  769. package/src/ui/types/gridItem.ts +0 -32
  770. package/src/ui/types/index.ts +0 -15
  771. package/src/ui/types/props.ts +0 -18
  772. package/src/ui/types/radius.ts +0 -7
  773. package/src/ui/types/selectable.ts +0 -7
  774. package/src/ui/types/text.ts +0 -7
  775. package/src/ui/utils/arrow/arrow.tsx +0 -59
  776. package/src/ui/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  777. package/src/ui/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
  778. package/src/ui/utils/elementQuery/elementQuery.tsx +0 -53
  779. package/src/ui/utils/errorBoundary.tsx +0 -48
  780. package/src/ui/utils/layer/layer.tsx +0 -112
  781. package/src/ui/utils/layer/layerProvider.tsx +0 -110
  782. package/src/ui/utils/portal/portal.ts +0 -46
  783. package/src/ui/utils/portal/portalProvider.tsx +0 -79
  784. package/src/ui/utils/srOnly/index.ts +0 -1
  785. package/src/ui/utils/srOnly/srOnly.tsx +0 -35
  786. package/src/ui/utils/virtualList/virtualList.tsx +0 -189
  787. /package/src/{ui → core}/components/autocomplete/__mocks__/apiStore.ts +0 -0
  788. /package/src/{ui → core}/components/autocomplete/__mocks__/countries.ts +0 -0
  789. /package/src/{ui → core}/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -0
  790. /package/src/{ui → core}/components/autocomplete/__workshop__/index.ts +0 -0
  791. /package/src/{ui → core}/components/autocomplete/__workshop__/types.ts +0 -0
  792. /package/src/{ui → core}/components/autocomplete/autocompleteReducer.ts +0 -0
  793. /package/src/{ui → core}/components/autocomplete/constants.ts +0 -0
  794. /package/src/{ui → core}/components/autocomplete/index.ts +0 -0
  795. /package/src/{ui → core}/components/breadcrumbs/__workshop__/example.tsx +0 -0
  796. /package/src/{ui → core}/components/breadcrumbs/__workshop__/index.ts +0 -0
  797. /package/src/{css → core}/components/breadcrumbs/index.ts +0 -0
  798. /package/src/{ui → core}/components/dialog/__workshop__/activate.tsx +0 -0
  799. /package/src/{ui → core}/components/dialog/__workshop__/autoFocus.tsx +0 -0
  800. /package/src/{ui → core}/components/dialog/__workshop__/index.ts +0 -0
  801. /package/src/{ui → core}/components/dialog/__workshop__/layering.tsx +0 -0
  802. /package/src/{ui → core}/components/dialog/__workshop__/panes.tsx +0 -0
  803. /package/src/{ui → core}/components/dialog/__workshop__/provider.tsx +0 -0
  804. /package/src/{ui → core}/components/dialog/__workshop__/wrapped.tsx +0 -0
  805. /package/src/{ui → core}/components/dialog/dialogContext.ts +0 -0
  806. /package/src/{ui → core}/components/dialog/index.ts +0 -0
  807. /package/src/{ui → core}/components/dialog/useDialog.ts +0 -0
  808. /package/src/{ui → core}/components/hotkeys/__workshop__/index.ts +0 -0
  809. /package/src/{ui → core}/components/hotkeys/__workshop__/plain.tsx +0 -0
  810. /package/src/{ui → core}/components/hotkeys/index.ts +0 -0
  811. /package/src/{ui → core}/components/index.ts +0 -0
  812. /package/src/{ui → core}/components/menu/__workshop__/asComponent.tsx +0 -0
  813. /package/src/{ui → core}/components/menu/__workshop__/avatarMenu.tsx +0 -0
  814. /package/src/{ui → core}/components/menu/__workshop__/closableMenuButton.tsx +0 -0
  815. /package/src/{ui → core}/components/menu/__workshop__/constrainedInBoundary.tsx +0 -0
  816. /package/src/{ui → core}/components/menu/__workshop__/customMenuItem.tsx +0 -0
  817. /package/src/{ui → core}/components/menu/__workshop__/customSelectedState.tsx +0 -0
  818. /package/src/{ui → core}/components/menu/__workshop__/disableFocusOnClose.tsx +0 -0
  819. /package/src/{ui → core}/components/menu/__workshop__/groups.tsx +0 -0
  820. /package/src/{ui → core}/components/menu/__workshop__/index.ts +0 -0
  821. /package/src/{ui → core}/components/menu/__workshop__/menuGroupRight.tsx +0 -0
  822. /package/src/{ui → core}/components/menu/__workshop__/nestedMenu.tsx +0 -0
  823. /package/src/{ui → core}/components/menu/__workshop__/onCloseMenuButton.tsx +0 -0
  824. /package/src/{ui → core}/components/menu/__workshop__/selectedItem.tsx +0 -0
  825. /package/src/{ui → core}/components/menu/__workshop__/shouldFocus.tsx +0 -0
  826. /package/src/{ui → core}/components/menu/__workshop__/withoutArrow.tsx +0 -0
  827. /package/src/{ui → core}/components/menu/helpers.ts +0 -0
  828. /package/src/{ui → core}/components/menu/index.ts +0 -0
  829. /package/src/{ui → core}/components/menu/useMenu.ts +0 -0
  830. /package/src/{ui → core}/components/skeleton/__workshop__/index.ts +0 -0
  831. /package/src/{ui → core}/components/skeleton/index.ts +0 -0
  832. /package/src/{ui → core}/components/tab/__workshop__/example.tsx +0 -0
  833. /package/src/{ui → core}/components/tab/__workshop__/index.ts +0 -0
  834. /package/src/{ui → core}/components/tab/index.ts +0 -0
  835. /package/src/{ui → core}/components/toast/__workshop__/hook.tsx +0 -0
  836. /package/src/{ui → core}/components/toast/__workshop__/index.ts +0 -0
  837. /package/src/{ui → core}/components/toast/index.ts +0 -0
  838. /package/src/{ui → core}/components/toast/toast.test.tsx +0 -0
  839. /package/src/{ui → core}/components/toast/toastContext.ts +0 -0
  840. /package/src/{ui → core}/components/toast/toastProvider.tsx +0 -0
  841. /package/src/{ui → core}/components/toast/toastState.ts +0 -0
  842. /package/src/{ui → core}/components/toast/useToast.ts +0 -0
  843. /package/src/{ui → core}/components/tree/__workshop__/basic.perf.ts +0 -0
  844. /package/src/{ui → core}/components/tree/__workshop__/basic.tsx +0 -0
  845. /package/src/{ui → core}/components/tree/__workshop__/index.ts +0 -0
  846. /package/src/{ui → core}/components/tree/__workshop__/tabFromElement.tsx +0 -0
  847. /package/src/{ui → core}/components/tree/helpers.ts +0 -0
  848. /package/src/{ui → core}/components/tree/index.ts +0 -0
  849. /package/src/{ui → core}/components/tree/treeContext.ts +0 -0
  850. /package/src/{ui → core}/components/tree/useTree.ts +0 -0
  851. /package/src/{ui → core}/global.ts +0 -0
  852. /package/src/{ui → core}/helpers/animation.ts +0 -0
  853. /package/src/{ui → core}/helpers/element.ts +0 -0
  854. /package/src/{ui → core}/helpers/focus.ts +0 -0
  855. /package/src/{ui → core}/helpers/scroll.ts +0 -0
  856. /package/src/{ui → core}/hooks/index.ts +0 -0
  857. /package/src/{ui → core}/hooks/useClickOutside.ts +0 -0
  858. /package/src/{ui → core}/hooks/useClickOutsideEvent.test.tsx +0 -0
  859. /package/src/{ui → core}/hooks/useClickOutsideEvent.ts +0 -0
  860. /package/src/{ui → core}/hooks/useCustomValidity.ts +0 -0
  861. /package/src/{ui → core}/hooks/useDelayed.test.ts +0 -0
  862. /package/src/{ui → core}/hooks/useDelayedState.ts +0 -0
  863. /package/src/{ui → core}/hooks/useElementRect/__workshop__/example.tsx +0 -0
  864. /package/src/{ui → core}/hooks/useElementRect/__workshop__/index.ts +0 -0
  865. /package/src/{ui → core}/hooks/useElementRect/index.ts +0 -0
  866. /package/src/{ui → core}/hooks/useElementRect/useElementRect.ts +0 -0
  867. /package/src/{ui → core}/hooks/useElementSize.ts +0 -0
  868. /package/src/{ui → core}/hooks/useGlobalKeyDown.ts +0 -0
  869. /package/src/{ui → core}/hooks/useIsomorphicEffect.ts +0 -0
  870. /package/src/{ui → core}/hooks/useMediaIndex/__workshop__/index.ts +0 -0
  871. /package/src/{ui → core}/hooks/useMediaIndex/__workshop__/test.tsx +0 -0
  872. /package/src/{ui → core}/hooks/useMediaIndex/index.ts +0 -0
  873. /package/src/{ui → core}/hooks/useMounted.ts +0 -0
  874. /package/src/{ui → core}/hooks/usePrefersDark.hydration.test.tsx +0 -0
  875. /package/src/{ui → core}/hooks/usePrefersDark.test.tsx +0 -0
  876. /package/src/{ui → core}/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -0
  877. /package/src/{ui → core}/hooks/usePrefersReducedMotion.test.tsx +0 -0
  878. /package/src/{ui → core}/lib/createGlobalScopedContext.ts +0 -0
  879. /package/src/{ui → core}/lib/globalScope.ts +0 -0
  880. /package/src/{ui → core}/lib/isRecord.ts +0 -0
  881. /package/src/{ui → core}/middleware/origin.ts +0 -0
  882. /package/src/{ui → core}/observers/elementSizeObserver.ts +0 -0
  883. /package/src/{ui → core}/observers/index.ts +0 -0
  884. /package/src/{ui → core}/observers/resizeObserver.ts +0 -0
  885. /package/src/{ui → core}/primitives/_selectable/index.ts +0 -0
  886. /package/src/{ui → core}/primitives/avatar/__workshop__/index.ts +0 -0
  887. /package/src/{ui → core}/primitives/avatar/index.ts +0 -0
  888. /package/src/{ui → core}/primitives/avatar/types.ts +0 -0
  889. /package/src/{ui → core}/primitives/badge/__workshop__/index.ts +0 -0
  890. /package/src/{ui → core}/primitives/badge/badge.test.tsx +0 -0
  891. /package/src/{ui → core}/primitives/badge/index.ts +0 -0
  892. /package/src/{ui → core}/primitives/badge/types.ts +0 -0
  893. /package/src/{ui → core}/primitives/box/__workshop__/index.ts +0 -0
  894. /package/src/{ui → core}/primitives/box/__workshop__/responsive.tsx +0 -0
  895. /package/src/{ui → core}/primitives/box/index.ts +0 -0
  896. /package/src/{ui → core}/primitives/button/__workshop__/customIcons.tsx +0 -0
  897. /package/src/{ui → core}/primitives/button/__workshop__/disabled.tsx +0 -0
  898. /package/src/{ui → core}/primitives/button/__workshop__/index.ts +0 -0
  899. /package/src/{ui → core}/primitives/button/__workshop__/mixedChildren.tsx +0 -0
  900. /package/src/{ui → core}/primitives/button/__workshop__/sanityUploadButton.tsx +0 -0
  901. /package/src/{ui → core}/primitives/button/__workshop__/styled1.tsx +0 -0
  902. /package/src/{ui → core}/primitives/button/__workshop__/styled2.tsx +0 -0
  903. /package/src/{ui → core}/primitives/button/__workshop__/uploadButton.tsx +0 -0
  904. /package/src/{ui → core}/primitives/button/button.test.tsx +0 -0
  905. /package/src/{css → core}/primitives/button/index.ts +0 -0
  906. /package/src/{ui → core}/primitives/card/__workshop__/asComponent.tsx +0 -0
  907. /package/src/{ui → core}/primitives/card/__workshop__/checkered.tsx +0 -0
  908. /package/src/{ui → core}/primitives/card/__workshop__/index.ts +0 -0
  909. /package/src/{ui → core}/primitives/card/__workshop__/interactive.tsx +0 -0
  910. /package/src/{ui → core}/primitives/card/__workshop__/listNavigation.tsx +0 -0
  911. /package/src/{ui → core}/primitives/card/__workshop__/styled.tsx +0 -0
  912. /package/src/{css → core}/primitives/card/index.ts +0 -0
  913. /package/src/{ui → core}/primitives/checkbox/__workshop__/example.tsx +0 -0
  914. /package/src/{ui → core}/primitives/checkbox/__workshop__/index.ts +0 -0
  915. /package/src/{ui → core}/primitives/checkbox/__workshop__/props.tsx +0 -0
  916. /package/src/{ui → core}/primitives/checkbox/__workshop__/readOnly.tsx +0 -0
  917. /package/src/{ui → core}/primitives/checkbox/__workshop__/tones.tsx +0 -0
  918. /package/src/{css → core}/primitives/checkbox/index.ts +0 -0
  919. /package/src/{ui → core}/primitives/code/__workshop__/index.ts +0 -0
  920. /package/src/{ui → core}/primitives/code/__workshop__/opticalAlignment.tsx +0 -0
  921. /package/src/{ui → core}/primitives/code/index.ts +0 -0
  922. /package/src/{ui → core}/primitives/container/__workshop__/index.ts +0 -0
  923. /package/src/{css → core}/primitives/container/index.ts +0 -0
  924. /package/src/{ui → core}/primitives/container/types.ts +0 -0
  925. /package/src/{ui → core}/primitives/flex/__workshop__/index.ts +0 -0
  926. /package/src/{ui → core}/primitives/flex/index.ts +0 -0
  927. /package/src/{ui → core}/primitives/grid/__workshop__/index.ts +0 -0
  928. /package/src/{ui → core}/primitives/grid/__workshop__/responsive.tsx +0 -0
  929. /package/src/{ui → core}/primitives/grid/index.ts +0 -0
  930. /package/src/{ui → core}/primitives/heading/__workshop__/index.ts +0 -0
  931. /package/src/{ui → core}/primitives/heading/__workshop__/opticalAlignment.tsx +0 -0
  932. /package/src/{ui → core}/primitives/heading/index.ts +0 -0
  933. /package/src/{ui → core}/primitives/index.ts +0 -0
  934. /package/src/{ui → core}/primitives/inline/__workshop__/index.ts +0 -0
  935. /package/src/{ui → core}/primitives/inline/index.ts +0 -0
  936. /package/src/{ui → core}/primitives/inline/types.ts +0 -0
  937. /package/src/{ui → core}/primitives/kbd/__workshop__/index.ts +0 -0
  938. /package/src/{ui → core}/primitives/kbd/__workshop__/plain.tsx +0 -0
  939. /package/src/{ui → core}/primitives/kbd/index.ts +0 -0
  940. /package/src/{ui → core}/primitives/label/__workshop__/index.ts +0 -0
  941. /package/src/{ui → core}/primitives/label/index.ts +0 -0
  942. /package/src/{ui → core}/primitives/popover/__workshop__/MarginsStory.tsx +0 -0
  943. /package/src/{ui → core}/primitives/popover/__workshop__/index.ts +0 -0
  944. /package/src/{ui → core}/primitives/popover/constants.ts +0 -0
  945. /package/src/{ui → core}/primitives/popover/floating-ui/size.ts +0 -0
  946. /package/src/{ui → core}/primitives/popover/index.ts +0 -0
  947. /package/src/{ui → core}/primitives/popover/types.ts +0 -0
  948. /package/src/{ui → core}/primitives/radio/__workshop__/example.tsx +0 -0
  949. /package/src/{ui → core}/primitives/radio/__workshop__/index.ts +0 -0
  950. /package/src/{ui → core}/primitives/radio/__workshop__/plain.tsx +0 -0
  951. /package/src/{css → core}/primitives/radio/index.ts +0 -0
  952. /package/src/{ui → core}/primitives/select/__workshop__/index.ts +0 -0
  953. /package/src/{ui → core}/primitives/select/__workshop__/readOnly.tsx +0 -0
  954. /package/src/{ui → core}/primitives/select/index.ts +0 -0
  955. /package/src/{ui → core}/primitives/spinner/__workshop__/index.ts +0 -0
  956. /package/src/{css → core}/primitives/spinner/index.ts +0 -0
  957. /package/src/{ui → core}/primitives/stack/__workshop__/index.ts +0 -0
  958. /package/src/{css → core}/primitives/stack/index.ts +0 -0
  959. /package/src/{ui → core}/primitives/switch/__workshop__/example.tsx +0 -0
  960. /package/src/{ui → core}/primitives/switch/__workshop__/index.ts +0 -0
  961. /package/src/{ui → core}/primitives/switch/__workshop__/props.tsx +0 -0
  962. /package/src/{css → core}/primitives/switch/index.ts +0 -0
  963. /package/src/{ui → core}/primitives/text/__workshop__/index.ts +0 -0
  964. /package/src/{ui → core}/primitives/text/__workshop__/opticalAlignment.tsx +0 -0
  965. /package/src/{ui → core}/primitives/text/index.ts +0 -0
  966. /package/src/{ui → core}/primitives/textArea/__workshop__/index.ts +0 -0
  967. /package/src/{ui → core}/primitives/textArea/index.ts +0 -0
  968. /package/src/{ui → core}/primitives/textInput/__workshop__/clearButton.tsx +0 -0
  969. /package/src/{ui → core}/primitives/textInput/__workshop__/customValidity.tsx +0 -0
  970. /package/src/{ui → core}/primitives/textInput/__workshop__/index.ts +0 -0
  971. /package/src/{ui → core}/primitives/textInput/__workshop__/readOnly.tsx +0 -0
  972. /package/src/{ui → core}/primitives/textInput/__workshop__/states.tsx +0 -0
  973. /package/src/{ui → core}/primitives/textInput/__workshop__/tones.tsx +0 -0
  974. /package/src/{ui → core}/primitives/textInput/index.ts +0 -0
  975. /package/src/{ui → core}/primitives/tooltip/__workshop__/index.ts +0 -0
  976. /package/src/{ui → core}/primitives/tooltip/constants.ts +0 -0
  977. /package/src/{ui → core}/primitives/tooltip/index.ts +0 -0
  978. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/index.ts +0 -0
  979. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -0
  980. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/types.ts +0 -0
  981. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -0
  982. /package/src/{ui/_compat → core}/theme/index.ts +0 -0
  983. /package/src/{ui/_compat → core}/theme/types.ts +0 -0
  984. /package/src/{ui/_compat → core}/theme/useRootTheme.ts +0 -0
  985. /package/src/{ui/_compat → core}/theme/useTheme.ts +0 -0
  986. /package/src/{ui → core}/types/badge.ts +0 -0
  987. /package/src/{ui → core}/types/card.ts +0 -0
  988. /package/src/{ui → core}/types/dialog.ts +0 -0
  989. /package/src/{ui → core}/types/placement.ts +0 -0
  990. /package/src/{ui → core}/types/popover.ts +0 -0
  991. /package/src/{ui → core}/utils/arrow/cmds.ts +0 -0
  992. /package/src/{ui → core}/utils/arrow/index.ts +0 -0
  993. /package/src/{ui → core}/utils/boundaryElement/__workshop__/index.ts +0 -0
  994. /package/src/{ui → core}/utils/boundaryElement/__workshop__/plain.tsx +0 -0
  995. /package/src/{ui → core}/utils/boundaryElement/boundaryElement.test.tsx +0 -0
  996. /package/src/{ui → core}/utils/boundaryElement/boundaryElementContext.ts +0 -0
  997. /package/src/{ui → core}/utils/boundaryElement/index.ts +0 -0
  998. /package/src/{ui → core}/utils/boundaryElement/types.ts +0 -0
  999. /package/src/{ui → core}/utils/boundaryElement/useBoundaryElement.ts +0 -0
  1000. /package/src/{ui → core}/utils/conditionalWrapper/index.ts +0 -0
  1001. /package/src/{ui → core}/utils/elementQuery/__workshop__/customMedia.tsx +0 -0
  1002. /package/src/{ui → core}/utils/elementQuery/__workshop__/index.ts +0 -0
  1003. /package/src/{ui → core}/utils/elementQuery/helpers.ts +0 -0
  1004. /package/src/{ui → core}/utils/elementQuery/index.ts +0 -0
  1005. /package/src/{ui → core}/utils/getElementRef.ts +0 -0
  1006. /package/src/{ui → core}/utils/index.ts +0 -0
  1007. /package/src/{ui → core}/utils/layer/__workshop__/_debug.tsx +0 -0
  1008. /package/src/{ui → core}/utils/layer/__workshop__/index.ts +0 -0
  1009. /package/src/{ui → core}/utils/layer/__workshop__/multipleRoots.tsx +0 -0
  1010. /package/src/{ui → core}/utils/layer/__workshop__/nested.tsx +0 -0
  1011. /package/src/{ui → core}/utils/layer/__workshop__/responsiveZOffset.tsx +0 -0
  1012. /package/src/{ui → core}/utils/layer/getLayerContext.test.ts +0 -0
  1013. /package/src/{ui → core}/utils/layer/getLayerContext.ts +0 -0
  1014. /package/src/{ui → core}/utils/layer/index.ts +0 -0
  1015. /package/src/{ui → core}/utils/layer/layer.test.tsx +0 -0
  1016. /package/src/{ui → core}/utils/layer/layerContext.ts +0 -0
  1017. /package/src/{ui → core}/utils/layer/types.ts +0 -0
  1018. /package/src/{ui → core}/utils/layer/useLayer.ts +0 -0
  1019. /package/src/{ui → core}/utils/portal/__workshop__/index.ts +0 -0
  1020. /package/src/{ui → core}/utils/portal/__workshop__/named.tsx +0 -0
  1021. /package/src/{ui → core}/utils/portal/index.ts +0 -0
  1022. /package/src/{ui → core}/utils/portal/portal.test.tsx +0 -0
  1023. /package/src/{ui → core}/utils/portal/portalContext.ts +0 -0
  1024. /package/src/{ui → core}/utils/portal/types.ts +0 -0
  1025. /package/src/{ui → core}/utils/portal/usePortal.ts +0 -0
  1026. /package/src/{ui → core}/utils/spanWithTextOverflow.tsx +0 -0
  1027. /package/src/{css → core}/utils/srOnly/index.ts +0 -0
  1028. /package/src/{ui → core}/utils/virtualList/__workshop__/changingProps.tsx +0 -0
  1029. /package/src/{ui → core}/utils/virtualList/__workshop__/elementScroll.tsx +0 -0
  1030. /package/src/{ui → core}/utils/virtualList/__workshop__/index.ts +0 -0
  1031. /package/src/{ui → core}/utils/virtualList/__workshop__/infiniteList.tsx +0 -0
  1032. /package/src/{ui → core}/utils/virtualList/__workshop__/windowScrolll.tsx +0 -0
  1033. /package/src/{ui → core}/utils/virtualList/index.ts +0 -0
  1034. /package/src/theme/{v2 → system}/color/_constants.ts +0 -0
  1035. /package/src/theme/{v2 → system}/color/_helpers.ts +0 -0
  1036. /package/src/theme/{v2 → system}/color/_system.ts +0 -0
  1037. /package/src/theme/{v2 → system}/color/avatar.ts +0 -0
  1038. /package/src/theme/{v2 → system}/color/badge.ts +0 -0
  1039. /package/src/theme/{v2 → system}/color/button.ts +0 -0
  1040. /package/src/theme/{v2 → system}/color/color.ts +0 -0
  1041. /package/src/theme/{v2 → system}/color/index.ts +0 -0
  1042. /package/src/theme/{v2 → system}/color/input.ts +0 -0
  1043. /package/src/theme/{v2 → system}/color/kbd.ts +0 -0
  1044. /package/src/theme/{v2 → system}/color/selectable.ts +0 -0
  1045. /package/src/theme/{v2 → system}/color/shadow.ts +0 -0
  1046. /package/src/theme/{v2 → system}/color/state.ts +0 -0
  1047. /package/src/theme/{v2 → system}/color/syntax.ts +0 -0
  1048. /package/src/theme/{v0 → system}/css.ts +0 -0
  1049. /package/src/theme/{v0 → system}/focusRing.ts +0 -0
  1050. /package/src/theme/{v0 → system}/layer.ts +0 -0
  1051. /package/src/theme/{v0 → system}/shadow.ts +0 -0
  1052. /package/src/theme/{v0 → system}/styles.ts +0 -0
  1053. /package/src/theme/{v0 → system/v0}/avatar.ts +0 -0
  1054. /package/src/theme/{v0 → system/v0}/color/_system.ts +0 -0
  1055. /package/src/theme/{v0 → system/v0}/color/base.ts +0 -0
  1056. /package/src/theme/{v0 → system/v0}/color/button.ts +0 -0
  1057. /package/src/theme/{v0 → system/v0}/color/card.ts +0 -0
  1058. /package/src/theme/{v0 → system/v0}/color/index.ts +0 -0
  1059. /package/src/theme/{v0 → system/v0}/color/muted.ts +0 -0
  1060. /package/src/theme/{v0 → system/v0}/color/selectable.ts +0 -0
  1061. /package/src/theme/{v0 → system/v0}/color/solid.ts +0 -0
  1062. /package/src/theme/{v0 → system/v0}/input.ts +0 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/ui/_compat/styles/_responsive.ts","../src/ui/helpers/animation.ts","../src/ui/helpers/focus.ts","../src/ui/hooks/useClickOutside.ts","../src/ui/hooks/useElementRect/useElementRect.ts","../src/ui/hooks/useForwardedRef.ts","../src/ui/utils/errorBoundary.tsx","../src/ui/components/autocomplete/autocompleteOption.tsx","../src/ui/components/autocomplete/autocompleteReducer.ts","../src/ui/components/autocomplete/constants.ts","../src/ui/components/autocomplete/autocomplete.tsx","../src/ui/components/breadcrumbs/breadcrumbs.tsx","../src/ui/components/dialog/dialogContext.ts","../src/ui/components/dialog/useDialog.ts","../src/ui/components/dialog/dialog.tsx","../src/ui/components/dialog/dialogProvider.tsx","../src/ui/components/menu/menuButton.tsx","../src/ui/components/skeleton/skeleton.tsx","../src/ui/components/skeleton/textSkeleton.tsx","../src/ui/components/tab/tabPanel.tsx","../src/ui/components/toast/toast.tsx","../src/ui/hooks/useMounted.ts","../src/ui/components/toast/toastContext.ts","../src/ui/components/toast/toastLayer.tsx","../src/ui/components/toast/toastState.ts","../src/ui/components/toast/toastProvider.tsx","../src/ui/components/toast/useToast.ts","../src/ui/components/tree/helpers.ts","../src/ui/components/tree/treeContext.ts","../src/ui/components/tree/tree.tsx","../src/ui/components/tree/useTree.ts","../src/ui/components/tree/treeGroup.tsx","../src/ui/components/tree/treeItem.tsx","../src/ui/StyleTags.tsx"],"sourcesContent":["import {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n * @deprecated do not use\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\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) | 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 {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 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 {ForwardedRef, MutableRefObject, 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: ForwardedRef<T>): MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {Component, ErrorInfo, PropsWithChildren, ReactNode} 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: 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: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n 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 {KeyboardEvent, ReactElement, ReactNode, useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\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): ReactElement {\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: 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 {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\n// import {Selectable} from '../../primitives/_selectable'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport {Props, Radius} from '../../types'\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 disabled?: boolean\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: ResponsiveProp<FontTextSize>\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?: ResponsiveProp<Space>\n // padding?: number | number[]\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n readOnly?: boolean\n ref?: ForwardedRef<HTMLInputElement>\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 /** 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: Omit<\n Props<AutocompleteProps<Option>, 'div'>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'inputMode'\n | 'role'\n | 'spellCheck'\n | 'type'\n >,\n forwardedRef: 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 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\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 ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(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 = useMemo(\n () =>\n 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 as Space) - 2\n }) as Space[],\n [padding],\n )\n\n const openButtonPadding = useMemo(\n () => padding.map((v) => Math.max((v as Space) - 1, 0)) as Space[],\n [padding],\n )\n\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 display=\"block\"\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 input = (\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={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\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 <Box\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 </Box>\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 renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\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={3}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\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: Omit<\n Props<AutocompleteProps<Option>, 'input'>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'inputMode'\n | 'role'\n | 'spellCheck'\n | 'type'\n >,\n) => ReactElement\n","import {breadcrumbs, composeClassNames, GapStyleProps} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n Children,\n ForwardedRef,\n forwardRef,\n Fragment,\n isValidElement,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Button, ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps extends GapStyleProps {\n expandButton?: Omit<ButtonProps, 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: Props<BreadcrumbsProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...restProps\n } = props\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 = useMemo(() => {\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\" space={gapY}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n return (\n <Flex\n as=\"nav\"\n data-ui=\"Breadcrumbs\"\n {...restProps}\n className={composeClassNames(className, breadcrumbs())}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n >\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Flex>\n )\n})\n\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\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 {\n composeClassNames,\n ContainerStyleProps,\n dialog,\n dialogCardRoot,\n dialogContainer,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayout,\n PaddingStyleProps,\n RadiusStyleProps,\n ResponsiveProp,\n ShadowStyleProps,\n} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {CardTone, DialogPosition, Props, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ContainerStyleProps, PaddingStyleProps, ShadowStyleProps {\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?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n}\n\ninterface DialogCardProps extends ContainerStyleProps, RadiusStyleProps, ShadowStyleProps {\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 // radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n // shadow: number | number[]\n tone?: CardTone\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 DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: 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 = 4,\n tone,\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 = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(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 <Container\n align=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n direction=\"column\"\n display=\"flex\"\n justify=\"center\"\n width={width}\n >\n <Card\n className={dialogCardRoot()}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n tone={tone}\n >\n <Flex className={dialogLayout()} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader()} position=\"relative\">\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 </Box>\n )}\n <Box\n className={dialogContent()}\n flex={1}\n overflow=\"auto\"\n position=\"relative\"\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>\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: Props<DialogProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const context = useDialog()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n // cardShadow = 3,\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 scheme,\n shadow: cardShadow,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n tone,\n ...restProps\n } = props\n const positionProp = _positionProp ?? context.position ?? 'fixed'\n const zOffsetProp = _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 = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(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: 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 {...restProps}\n aria-labelledby={labelId}\n aria-modal\n className={composeClassNames(className, dialog())}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\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 tone={tone}\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 </Layer>\n </Portal>\n )\n})\n\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {ReactElement, ReactNode, 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?: 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): ReactElement {\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 FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ButtonProps, Popover, PopoverProps} from '../../primitives'\nimport {Placement, Props, 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: ReactElement<Props<ButtonProps, 'button'>>\n id: string\n menu?: ReactElement\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: 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: 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 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: 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 = {\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 } satisfies Props<ButtonProps, 'button'> & {ref: ForwardedRef<HTMLButtonElement>}\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 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})\n\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {composeClassNames, skeleton, SkeletonStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useState} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends SkeletonStyleProps, 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: Props<SkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {animated = false, className, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Box\n data-ui=\"Skeleton\"\n {...restProps}\n className={composeClassNames(className, skeleton({radius}))}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n ref={ref}\n />\n )\n})\n\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {\n codeSkeleton,\n composeClassNames,\n headingSkeleton,\n labelSkeleton,\n ResponsiveProp,\n textSkeleton,\n} from '@sanity/ui/css'\nimport {FontCodeSize, FontHeadingSize, FontLabelSize, FontTextSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: Props<TextSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"TextSkeleton\"\n {...restProps}\n className={composeClassNames(className, textSkeleton({size}))}\n ref={ref}\n />\n )\n})\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: Props<LabelSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"LabelSkeleton\"\n {...restProps}\n className={composeClassNames(className, labelSkeleton({size}))}\n ref={ref}\n />\n )\n})\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: Props<HeadingSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n {...restProps}\n className={composeClassNames(className, headingSkeleton({size}))}\n ref={ref}\n />\n )\n})\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: Props<CodeSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n // root\n {...restProps}\n className={composeClassNames(className, codeSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\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: Props<TabPanelProps, 'div'>,\n ref: 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})\n\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n RadiusStyleProps,\n toast,\n toastLoadingBar,\n toastLoadingBarMask,\n toastLoadingBarProgress,\n} from '@sanity/ui/css'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {motion, type Variant, type Variants} from 'framer-motion'\nimport {ReactElement, ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ButtonTone, Props} from '../../types'\n\n/**\n * @public\n */\nexport interface ToastProps extends RadiusStyleProps {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: 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\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\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: Omit<\n Props<ToastProps, 'div'>,\n 'onDrag' | 'onDragEnd' | 'onDragStart' | 'onAnimationStart'\n >,\n): ReactElement {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\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 ? {type: 'spring', visualDuration, bounce: 0.25} : {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=\"li\"\n className={toast()}\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 layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" 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 </Flex>\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 <MotionBox className={toastLoadingBar()} variants={content} transition={transition}>\n <Card className={toastLoadingBarMask()} tone={cardTone} radius={radius} />\n <MotionCard\n // const MotionToast = motion.create(Card) // StyledToast\n // const MotionFlex = motion.create(Flex)\n // const MotionText = motion.create(Text)\n // const MotionLoadingBar = motion.create(Box) // LoadingBar\n // const MotionLoadingBarProgress = motion.create(Card)\n\n className={toastLoadingBarProgress()}\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 </MotionBox>\n )}\n </MotionCard>\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 MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionBox = motion.create(Box)\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 {GapStyleProps, PaddingStyleProps, toastLayer} from '@sanity/ui/css'\nimport {ReactNode} from 'react'\n\nimport {Grid} from '../../primitives/grid'\nimport {useLayer} from '../../utils'\n\n/**\n * @public\n */\nexport interface ToastLayerProps extends GapStyleProps, PaddingStyleProps {\n children: ReactNode\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 <Grid\n as=\"ul\"\n className={toastLayer()}\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 </Grid>\n )\n}\n\nToastLayer.displayName = 'ToastLayer'\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'framer-motion'\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 {GapStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n memo,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {Props} from '../../types'\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 extends Pick<GapStyleProps, 'gap'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: Props<TreeProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n ): ReactElement {\n const {children, gap, 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>(\n forwardedRef,\n () => ref.current,\n )\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: 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.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n gap={gap ?? space}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\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 {memo, ReactElement} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\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 {composeClassNames, ResponsiveProp, treeItem} from '@sanity/ui/css'\nimport {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n ElementType,\n KeyboardEvent,\n memo,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, CardProps, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props} from '../../types'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps extends CardProps {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: Omit<Props<TreeItemProps, 'div'>, 'as'>,\n): ReactElement {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\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 space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLDivElement | 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 = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 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<HTMLDivElement>) => {\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(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </Text>\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 <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n as=\"li\"\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <Selectable\n aria-expanded={expanded}\n as={linkAs}\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\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 className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Selectable\n as=\"button\"\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n})\n\nTreeItem.displayName = 'Memo(TreeItem)'\n","import {compilePalette, compileSystem, compileTheme} from '@sanity/ui/css'\nimport {buildTheme_v3, RootTheme, Theme_v3} from '@sanity/ui/theme'\nimport {ReactNode} from 'react'\n\n/* @beta */\nexport function StyleTags(props: {theme?: Theme_v3}): ReactNode {\n const {theme: themeProp} = props\n\n const theme = themeProp ?? buildTheme_v3()\n\n return (\n <>\n <style href=\"sanity-palette\" precedence=\"palette\">\n {compilePalette()}\n </style>\n <style href=\"sanity-theme\" precedence=\"theme\">\n {compileTheme({v3: theme} as RootTheme)}\n </style>\n <style href=\"sanity-system\" precedence=\"system\">\n {compileSystem()}\n </style>\n </>\n )\n}\n"],"names":["_responsive","media","values","callback","map","statement","mediaIndex","_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","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","t0","boundaryElement","$","_c","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","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","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","restProps","dispatch","useReducer","defaultRenderOption","useCallback","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","HTMLElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","openButtonPadding","Math","max","openButtonProps","handleOpenClick","onClick","openButtonNode","Box","Button","ChevronDownIcon","inputValue","input","TextInput","AnimatedSpinnerIcon","handleListBoxKeyDown","content","Stack","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Popover","jsxs","displayName","Autocomplete","Breadcrumbs","className","expandButton","expandButtonProps","gap","_gapProp","gapX","space","gapY","maxLength","separator","_spaceProp","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","Children","toArray","isValidElement","items","len","beforeLength","ceil","afterLength","floor","slice","Flex","composeClassNames","breadcrumbs","item","itemIndex","Fragment","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","tone","width","widthProp","shadowProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","t6","event_0","target_0","t7","t8","dialogContainer","t9","dialogCardRoot","t10","dialogLayout","t11","dialogHeader","CloseIcon","t12","dialogContent","t13","t14","dialogFooter","t15","t16","t17","Container","Dialog","context","_positionProp","_zOffsetProp","cardShadow","onActivate","animate","cardRadius","position","zOffset","_animate","cardRadiusProp","positionProp","zOffsetProp","Z_OFFSETS","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","Layer","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","_temp","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","t18","bb0","t19","t20","t21","t22","t23","overflow","popoverProps","t24","t25","Skeleton","delay","animated","visible","setVisible","timeout","skeleton","TextSkeleton","size","textSkeleton","LabelSkeleton","labelSkeleton","HeadingSkeleton","headingSkeleton","CodeSkeleton","codeSkeleton","TabPanel","flex","ROLES","warning","success","STATUS_CARD_TONE","BUTTON_TONE","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","closable","description","duration","status","title","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","toast","verticalAlign","toastLoadingBar","toastLoadingBarMask","toastLoadingBarProgress","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionCard","motion","create","MotionFlex","MotionText","MotionBox","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","ToastLayer","paddingX","paddingY","toastLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","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","memo","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","useTree","tree","TreeGroup","TreeItem","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","ToggleArrowRightIcon","transform","treeItem","Selectable","paddingLeft","StyleTags","theme","themeProp","buildTheme_v3","compilePalette","compileTheme","v3","compileSystem"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/core/helpers/animation.ts","../src/core/helpers/focus.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 {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 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 useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\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\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 ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(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 = useMemo(\n () =>\n 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 [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\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 input = (\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={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\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 renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\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={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\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 {input}\n {results}\n </StyledAutocomplete>\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 {useArrayProp, useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\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 = useArrayProp(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 = useMemo(() => {\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 }, [collapse, expand, maxLength, open, rawItems, space])\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","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 {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\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 = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(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 = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(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 {useArrayProp} from '../../hooks'\nimport {Box, BoxProps, ResponsiveRadiusProps} from '../../primitives'\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 setVisible(true)\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={useArrayProp(radius)}\n $visible={visible}\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 {useArrayProp} from '../../hooks'\nimport {_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 = useArrayProp(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 = useArrayProp(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 = useArrayProp(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 = useArrayProp(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 'framer-motion'\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 'framer-motion'\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 memo,\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 = memo(\n 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>(\n forwardedRef,\n () => ref.current,\n )\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 }),\n)\nTree.displayName = 'Memo(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 {memo} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(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 {memo, useCallback, useEffect, useId, useMemo, useRef} 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 = memo(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 const TreeItem = memo(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 rootRef = useRef<HTMLLIElement | 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 = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 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(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, 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={rootRef}\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={rootRef}\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 = 'Memo(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","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","t0","boundaryElement","$","_c","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","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","restProps","dispatch","useReducer","defaultRenderOption","useCallback","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","HTMLElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","map","openButtonPadding","Math","max","openButtonProps","handleOpenClick","onClick","openButtonNode","Button","ChevronDownIcon","inputValue","input","TextInput","handleListBoxKeyDown","content","Stack","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Popover","jsxs","Autocomplete","StyledBreadcrumbs","ol","ExpandButton","Breadcrumbs","maxLength","separator","space","spaceRaw","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","Children","toArray","isValidElement","items","len","beforeLength","ceil","afterLength","floor","slice","item","itemIndex","Fragment","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","event_0","target_0","t6","t7","CloseIcon","t8","t9","t10","t11","t12","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","t13","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","_temp","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","t14","event_2","relatedTarget","handleBlur","t15","handleItemClick","t16","els","els_0","_el","registerElement","t17","t18","t19","t20","t21","t22","t23","t24","overflow","popoverProps","t25","t26","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","_temp2","ToastContext","ToastLayer","paddingX","paddingY","gap","StyledLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","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","memo","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","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","ToggleArrowRightIcon","transform"],"mappings":"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"}