@sanity/ui 3.0.0-static.10 → 3.0.0-static.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +207 -286
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-cjs/buildCommand.js +1 -1
  4. package/dist/_chunks-cjs/buildCommand.js.map +1 -1
  5. package/dist/_chunks-cjs/refractor.js.map +1 -1
  6. package/dist/_chunks-cjs/v3_v2.js +251 -0
  7. package/dist/_chunks-cjs/v3_v2.js.map +1 -0
  8. package/dist/_chunks-es/_visual-editing.mjs +210 -289
  9. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  10. package/dist/_chunks-es/refractor.mjs.map +1 -1
  11. package/dist/_chunks-es/v3_v2.mjs +252 -0
  12. package/dist/_chunks-es/v3_v2.mjs.map +1 -0
  13. package/dist/_visual-editing.d.mts +12 -17
  14. package/dist/_visual-editing.d.ts +12 -17
  15. package/dist/cli.js +1 -1
  16. package/dist/css.d.mts +1089 -427
  17. package/dist/css.d.ts +1089 -427
  18. package/dist/css.js +2384 -2550
  19. package/dist/css.js.map +1 -1
  20. package/dist/css.mjs +2385 -2551
  21. package/dist/css.mjs.map +1 -1
  22. package/dist/index.d.mts +14 -46
  23. package/dist/index.d.ts +14 -46
  24. package/dist/index.js +31 -20
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.mjs +33 -22
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/sanity-palette.css +9 -1
  29. package/dist/sanity-theme.css +1 -1
  30. package/dist/system.css +3569 -23230
  31. package/dist/theme.d.mts +122 -88
  32. package/dist/theme.d.ts +122 -88
  33. package/dist/theme.js +217 -430
  34. package/dist/theme.js.map +1 -1
  35. package/dist/theme.mjs +200 -411
  36. package/dist/theme.mjs.map +1 -1
  37. package/exports/_visual-editing.ts +27 -27
  38. package/exports/index.ts +1 -1
  39. package/package.json +40 -40
  40. package/src/cli/buildCommand.ts +2 -2
  41. package/src/{ui → core}/StyleTags.tsx +1 -1
  42. package/src/core/_compat/theme/themeContext.ts +10 -0
  43. package/src/{ui → core}/_compat/theme/themeProvider.tsx +3 -15
  44. package/src/{ui → core}/_compat/types.ts +1 -11
  45. package/src/{ui → core}/components/autocomplete/__workshop__/async.tsx +1 -1
  46. package/src/{ui → core}/components/autocomplete/__workshop__/constrainedHeight.tsx +13 -6
  47. package/src/{ui → core}/components/autocomplete/__workshop__/fullscreen.tsx +4 -3
  48. package/src/{ui → core}/components/autocomplete/autocomplete.tsx +10 -4
  49. package/src/{ui → core}/components/dialog/dialog.tsx +4 -3
  50. package/src/{ui → core}/components/hotkeys/hotkeys.tsx +10 -8
  51. package/src/{ui → core}/components/toast/toast.tsx +1 -0
  52. package/src/{ui → core}/constants.ts +0 -6
  53. package/src/core/hooks/useMatchMedia.ts +46 -0
  54. package/src/{ui → core}/hooks/useMediaIndex/useMediaIndex.ts +4 -4
  55. package/src/{ui → core}/primitives/box/box.tsx +1 -9
  56. package/src/{ui → core}/primitives/button/button.tsx +12 -14
  57. package/src/{ui → core}/primitives/card/card.tsx +19 -35
  58. package/src/core/primitives/card/index.ts +2 -0
  59. package/src/core/primitives/card/types.ts +12 -0
  60. package/src/{ui → core}/primitives/code/code.tsx +1 -1
  61. package/src/{ui → core}/primitives/heading/heading.tsx +1 -1
  62. package/src/{ui → core}/primitives/kbd/kbd.tsx +2 -2
  63. package/src/{ui → core}/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  64. package/src/{ui → core}/primitives/popover/__workshop__/SidePanelStory.tsx +3 -7
  65. package/src/{ui → core}/primitives/popover/popover.tsx +70 -9
  66. package/src/{ui → core}/primitives/popover/popoverCard.tsx +38 -51
  67. package/src/{ui → core}/primitives/select/select.tsx +3 -3
  68. package/src/{ui → core}/primitives/stack/stack.tsx +5 -10
  69. package/src/{ui → core}/primitives/text/text.tsx +1 -1
  70. package/src/{ui → core}/primitives/textInput/textInput.tsx +1 -1
  71. package/src/{ui → core}/primitives/tooltip/tooltip.test.tsx +2 -2
  72. package/src/{ui → core}/primitives/tooltip/tooltip.tsx +3 -2
  73. package/src/{ui → core}/utils/layer/layerProvider.tsx +1 -1
  74. package/src/{ui → core}/utils/portal/portal.ts +2 -15
  75. package/src/{ui → core}/utils/virtualList/virtualList.tsx +1 -2
  76. package/src/css/_resp.ts +5 -12
  77. package/src/css/compile/compilePalette.ts +41 -8
  78. package/src/css/compile/compileRule.ts +1 -8
  79. package/src/css/compile/compileRules.test.ts +0 -1
  80. package/src/css/compile/compileRules.ts +3 -6
  81. package/src/css/compile/compileSystem.ts +3 -6
  82. package/src/css/compile/compileTheme_v3.ts +55 -46
  83. package/src/css/components/breadcrumbs/breadcrumbs.ts +2 -2
  84. package/src/css/components/dialog/dialog.ts +8 -9
  85. package/src/css/components/dialog/rules.ts +0 -2
  86. package/src/css/components/menu/menu.ts +3 -3
  87. package/src/css/components/skeleton/rules.ts +0 -1
  88. package/src/css/components/skeleton/skeleton.ts +7 -7
  89. package/src/css/components/skeleton/types.ts +1 -1
  90. package/src/css/components/toast/rules.ts +0 -1
  91. package/src/css/components/toast/toast.ts +6 -6
  92. package/src/css/components/tree/tree.ts +2 -2
  93. package/src/css/composeClassNames.ts +5 -9
  94. package/src/css/index.ts +2 -3
  95. package/src/css/primitives/_arrow/_arrow.ts +6 -6
  96. package/src/css/primitives/_arrow/{_arrow.style.ts → rules.ts} +5 -7
  97. package/src/css/primitives/_input/input.ts +12 -12
  98. package/src/css/primitives/_input/{_input.style.ts → rules.ts} +20 -19
  99. package/src/css/primitives/_input/types.ts +1 -1
  100. package/src/css/primitives/_selectable/_contants.ts +1 -1
  101. package/src/css/primitives/_selectable/{_selectable.style.ts → rules.ts} +3 -6
  102. package/src/css/primitives/_selectable/selectable.ts +3 -3
  103. package/src/css/primitives/_selectable/types.ts +1 -1
  104. package/src/css/primitives/avatar/avatar.ts +7 -7
  105. package/src/css/primitives/badge/badge.ts +3 -3
  106. package/src/css/primitives/badge/rules.ts +22 -0
  107. package/src/css/primitives/badge/types.ts +1 -1
  108. package/src/css/primitives/box/box.ts +6 -10
  109. package/src/css/primitives/box/rules.ts +28 -0
  110. package/src/css/primitives/box/types.ts +7 -5
  111. package/src/css/primitives/button/_constants.ts +1 -1
  112. package/src/css/primitives/button/button.ts +3 -3
  113. package/src/css/primitives/button/rules.ts +10 -19
  114. package/src/css/primitives/card/_constants.ts +2 -2
  115. package/src/css/primitives/card/card.ts +6 -4
  116. package/src/css/primitives/card/rules.ts +471 -0
  117. package/src/css/primitives/card/types.ts +2 -1
  118. package/src/css/primitives/checkbox/checkbox.ts +3 -3
  119. package/src/css/primitives/code/code.ts +3 -3
  120. package/src/css/primitives/code/types.ts +1 -1
  121. package/src/css/primitives/container/container.ts +3 -3
  122. package/src/css/primitives/heading/heading.ts +5 -5
  123. package/src/css/primitives/heading/types.ts +1 -1
  124. package/src/css/primitives/kbd/kbd.ts +3 -3
  125. package/src/css/primitives/kbd/types.ts +1 -1
  126. package/src/css/primitives/label/label.ts +3 -3
  127. package/src/css/primitives/label/types.ts +1 -1
  128. package/src/css/primitives/popover/popover.ts +2 -6
  129. package/src/css/primitives/radio/radio.ts +2 -2
  130. package/src/css/primitives/select/select.ts +2 -3
  131. package/src/css/primitives/spinner/rules.ts +0 -1
  132. package/src/css/primitives/spinner/spinner.ts +3 -3
  133. package/src/css/primitives/switch/switch.ts +6 -6
  134. package/src/css/primitives/text/text.ts +3 -3
  135. package/src/css/primitives/text/types.ts +1 -1
  136. package/src/css/primitives/textArea/textArea.ts +1 -2
  137. package/src/css/primitives/textInput/textInput.ts +2 -2
  138. package/src/css/primitives/tooltip/tooltip.ts +3 -3
  139. package/src/css/rules.ts +113 -0
  140. package/src/css/styles/border/border.ts +22 -0
  141. package/src/css/styles/border/rules.ts +24 -0
  142. package/src/css/styles/display/rules.ts +62 -0
  143. package/src/css/styles/flex/flex.ts +20 -0
  144. package/src/css/styles/flex/rules.ts +28 -0
  145. package/src/css/{aspects → styles}/flexItem/flexItem.ts +1 -1
  146. package/src/css/styles/flexItem/rules.ts +12 -0
  147. package/src/css/{aspects → styles}/flexItem/types.ts +1 -17
  148. package/src/css/{aspects → styles}/font/font.ts +7 -2
  149. package/src/css/{aspects/font/font.style.ts → styles/font/rules.ts} +25 -28
  150. package/src/css/styles/gap/rules.ts +34 -0
  151. package/src/css/{aspects → styles}/grid/grid.ts +2 -2
  152. package/src/css/styles/grid/rules.ts +146 -0
  153. package/src/css/{aspects → styles}/grid/types.ts +2 -2
  154. package/src/css/styles/gridItem/rules.ts +96 -0
  155. package/src/css/{aspects → styles}/index.ts +0 -2
  156. package/src/css/styles/inset/rules.ts +16 -0
  157. package/src/css/styles/margin/rules.ts +64 -0
  158. package/src/css/styles/maxWidth/rules.ts +13 -0
  159. package/src/css/{aspects → styles}/maxWidth/types.ts +1 -1
  160. package/src/css/styles/outline/rules.ts +7 -0
  161. package/src/css/styles/overflow/rules.ts +9 -0
  162. package/src/css/styles/padding/rules.ts +62 -0
  163. package/src/css/styles/pointerEvents/rules.ts +11 -0
  164. package/src/css/{aspects → styles}/position/position.ts +1 -1
  165. package/src/css/styles/position/rules.ts +24 -0
  166. package/src/css/styles/radius/rules.ts +13 -0
  167. package/src/css/{aspects → styles}/radius/types.ts +1 -1
  168. package/src/css/styles/shadow/rules.ts +53 -0
  169. package/src/css/styles/textOverflow/rules.ts +17 -0
  170. package/src/css/styles/textOverflow/textOverflow.ts +6 -0
  171. package/src/css/{aspects → styles}/width/rules.ts +0 -1
  172. package/src/css/{aspects → styles}/width/types.ts +1 -1
  173. package/src/css/types.ts +253 -311
  174. package/src/css/utils/srOnly/rules.ts +11 -0
  175. package/src/css/varNames.ts +81 -128
  176. package/src/css/vars.ts +76 -122
  177. package/src/theme/_constants.ts +1 -1
  178. package/src/theme/_types.ts +2 -2
  179. package/src/theme/build/buildTheme.ts +2 -2
  180. package/src/theme/defaults/colorTokens.ts +2 -2
  181. package/src/theme/defaults/config.ts +1 -1
  182. package/src/theme/defaults/fonts.ts +4 -4
  183. package/src/theme/palette/constants.ts +3 -1
  184. package/src/theme/palette/types.ts +12 -0
  185. package/src/theme/v3/buildTheme_v3.ts +2 -1
  186. package/src/theme/v3/color/buildColor_v3.ts +38 -43
  187. package/src/theme/v3/color/card.ts +38 -43
  188. package/src/theme/v3/color/color.ts +38 -42
  189. package/src/theme/v3/defaults.ts +72 -69
  190. package/src/theme/v3/resolveTokens.ts +38 -43
  191. package/src/theme/v3/types.ts +3 -0
  192. package/src/theme/versioning/themeColor_v3_v2.ts +1 -1
  193. package/src/css/_comp.test.ts +0 -7
  194. package/src/css/_comp.ts +0 -11
  195. package/src/css/_mergeStyles.ts +0 -31
  196. package/src/css/_responsiveRule.ts +0 -38
  197. package/src/css/aspects/border/border.style.ts +0 -13
  198. package/src/css/aspects/border/border.ts +0 -14
  199. package/src/css/aspects/display/display.style.ts +0 -34
  200. package/src/css/aspects/flex/flex.style.ts +0 -30
  201. package/src/css/aspects/flex/flex.ts +0 -13
  202. package/src/css/aspects/flex/flexAlign.style.ts +0 -12
  203. package/src/css/aspects/flex/flexDirection.style.ts +0 -11
  204. package/src/css/aspects/flex/flexJustify.style.ts +0 -13
  205. package/src/css/aspects/flex/flexWrap.style.ts +0 -10
  206. package/src/css/aspects/flexItem/flex.style.ts +0 -22
  207. package/src/css/aspects/gap/gap.style.ts +0 -21
  208. package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
  209. package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
  210. package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
  211. package/src/css/aspects/grid/gridColumns.style.ts +0 -18
  212. package/src/css/aspects/grid/gridRows.style.ts +0 -18
  213. package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
  214. package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
  215. package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
  216. package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
  217. package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
  218. package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
  219. package/src/css/aspects/height/height.style.ts +0 -9
  220. package/src/css/aspects/height/height.ts +0 -17
  221. package/src/css/aspects/height/index.ts +0 -1
  222. package/src/css/aspects/inset/inset.style.ts +0 -12
  223. package/src/css/aspects/margin/margin.style.ts +0 -46
  224. package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
  225. package/src/css/aspects/minWidth/index.ts +0 -2
  226. package/src/css/aspects/minWidth/minWidth.style.ts +0 -13
  227. package/src/css/aspects/minWidth/minWidth.ts +0 -6
  228. package/src/css/aspects/minWidth/types.ts +0 -7
  229. package/src/css/aspects/outline/outline.style.ts +0 -9
  230. package/src/css/aspects/overflow/overflow.style.ts +0 -11
  231. package/src/css/aspects/padding/padding.style.ts +0 -46
  232. package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
  233. package/src/css/aspects/position/position.style.ts +0 -12
  234. package/src/css/aspects/radius/radius.style.ts +0 -16
  235. package/src/css/aspects/shadow/shadow.style.ts +0 -49
  236. package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
  237. package/src/css/aspects/textOverflow/textOverflow.ts +0 -6
  238. package/src/css/aspects/width/width.style.ts +0 -11
  239. package/src/css/compile/compileStyle.ts +0 -148
  240. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
  241. package/src/css/components/dialog/dialog.style.ts +0 -79
  242. package/src/css/components/menu/menu.style.ts +0 -17
  243. package/src/css/components/skeleton/skeleton.style.ts +0 -96
  244. package/src/css/components/toast/toast.style.ts +0 -20
  245. package/src/css/components/tree/tree.style.ts +0 -55
  246. package/src/css/constants.ts +0 -1
  247. package/src/css/primitives/_input/__workshop__/customInput.tsx +0 -16
  248. package/src/css/primitives/_input/__workshop__/index.ts +0 -14
  249. package/src/css/primitives/avatar/avatar.style.ts +0 -175
  250. package/src/css/primitives/badge/badge.style.ts +0 -22
  251. package/src/css/primitives/box/box.style.ts +0 -31
  252. package/src/css/primitives/button/button.style.ts +0 -201
  253. package/src/css/primitives/card/card.style.ts +0 -270
  254. package/src/css/primitives/checkbox/checkbox.style.ts +0 -154
  255. package/src/css/primitives/code/code.style.ts +0 -62
  256. package/src/css/primitives/container/container.style.ts +0 -10
  257. package/src/css/primitives/heading/heading.style.ts +0 -47
  258. package/src/css/primitives/kbd/kbd.style.ts +0 -22
  259. package/src/css/primitives/label/label.style.ts +0 -48
  260. package/src/css/primitives/popover/popover.style.ts +0 -5
  261. package/src/css/primitives/radio/radio.style.ts +0 -123
  262. package/src/css/primitives/select/select.style.ts +0 -24
  263. package/src/css/primitives/spinner/spinner.style.ts +0 -22
  264. package/src/css/primitives/stack/stack.style.ts +0 -9
  265. package/src/css/primitives/stack/stack.ts +0 -6
  266. package/src/css/primitives/switch/switch.style.ts +0 -94
  267. package/src/css/primitives/text/text.style.ts +0 -64
  268. package/src/css/primitives/textArea/textArea.style.ts +0 -9
  269. package/src/css/primitives/textInput/textInput.style.ts +0 -167
  270. package/src/css/primitives/token/token.style.ts +0 -49
  271. package/src/css/primitives/tooltip/tooltip.style.ts +0 -21
  272. package/src/css/scopeClassName.ts +0 -6
  273. package/src/css/system.style.ts +0 -158
  274. package/src/css/utils/srOnly/srOnly.style.ts +0 -14
  275. package/src/ui/_compat/theme/themeContext.ts +0 -10
  276. package/src/ui/hooks/useMatchMedia.ts +0 -28
  277. package/src/ui/primitives/card/cardContext.ts +0 -10
  278. package/src/ui/primitives/card/cardProvider.tsx +0 -19
  279. package/src/ui/primitives/card/index.ts +0 -4
  280. package/src/ui/primitives/card/types.ts +0 -27
  281. package/src/ui/primitives/card/useCard.ts +0 -7
  282. package/src/ui/primitives/stack/index.ts +0 -1
  283. /package/src/{ui → core}/_compat/index.ts +0 -0
  284. /package/src/{ui → core}/_compat/styles/_responsive.ts +0 -0
  285. /package/src/{ui → core}/_compat/styles/index.ts +0 -0
  286. /package/src/{ui → core}/_compat/theme/index.ts +0 -0
  287. /package/src/{ui → core}/_compat/theme/theme.test.tsx +0 -0
  288. /package/src/{ui → core}/_compat/theme/themeColorProvider.tsx +0 -0
  289. /package/src/{ui → core}/_compat/theme/types.ts +0 -0
  290. /package/src/{ui → core}/_compat/theme/useRootTheme.ts +0 -0
  291. /package/src/{ui → core}/_compat/theme/useTheme.ts +0 -0
  292. /package/src/{ui → core}/components/autocomplete/__mocks__/apiStore.ts +0 -0
  293. /package/src/{ui → core}/components/autocomplete/__mocks__/countries.ts +0 -0
  294. /package/src/{ui → core}/components/autocomplete/__workshop__/custom.tsx +0 -0
  295. /package/src/{ui → core}/components/autocomplete/__workshop__/example.tsx +0 -0
  296. /package/src/{ui → core}/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -0
  297. /package/src/{ui → core}/components/autocomplete/__workshop__/index.ts +0 -0
  298. /package/src/{ui → core}/components/autocomplete/__workshop__/types.ts +0 -0
  299. /package/src/{ui → core}/components/autocomplete/autocompleteOption.tsx +0 -0
  300. /package/src/{ui → core}/components/autocomplete/autocompleteReducer.ts +0 -0
  301. /package/src/{ui → core}/components/autocomplete/constants.ts +0 -0
  302. /package/src/{ui → core}/components/autocomplete/index.ts +0 -0
  303. /package/src/{ui → core}/components/autocomplete/types.ts +0 -0
  304. /package/src/{ui → core}/components/breadcrumbs/__workshop__/example.tsx +0 -0
  305. /package/src/{ui → core}/components/breadcrumbs/__workshop__/index.ts +0 -0
  306. /package/src/{ui → core}/components/breadcrumbs/breadcrumbs.tsx +0 -0
  307. /package/src/{ui → core}/components/breadcrumbs/index.ts +0 -0
  308. /package/src/{ui → core}/components/dialog/__workshop__/activate.tsx +0 -0
  309. /package/src/{ui → core}/components/dialog/__workshop__/autoFocus.tsx +0 -0
  310. /package/src/{ui → core}/components/dialog/__workshop__/index.ts +0 -0
  311. /package/src/{ui → core}/components/dialog/__workshop__/layering.tsx +0 -0
  312. /package/src/{ui → core}/components/dialog/__workshop__/nested.tsx +0 -0
  313. /package/src/{ui → core}/components/dialog/__workshop__/onScroll.tsx +0 -0
  314. /package/src/{ui → core}/components/dialog/__workshop__/panes.tsx +0 -0
  315. /package/src/{ui → core}/components/dialog/__workshop__/position.tsx +0 -0
  316. /package/src/{ui → core}/components/dialog/__workshop__/props.tsx +0 -0
  317. /package/src/{ui → core}/components/dialog/__workshop__/provider.tsx +0 -0
  318. /package/src/{ui → core}/components/dialog/__workshop__/wrapped.tsx +0 -0
  319. /package/src/{ui → core}/components/dialog/dialogContext.ts +0 -0
  320. /package/src/{ui → core}/components/dialog/dialogProvider.tsx +0 -0
  321. /package/src/{ui → core}/components/dialog/index.ts +0 -0
  322. /package/src/{ui → core}/components/dialog/useDialog.ts +0 -0
  323. /package/src/{ui → core}/components/hotkeys/__workshop__/index.ts +0 -0
  324. /package/src/{ui → core}/components/hotkeys/__workshop__/plain.tsx +0 -0
  325. /package/src/{ui → core}/components/hotkeys/index.ts +0 -0
  326. /package/src/{ui → core}/components/index.ts +0 -0
  327. /package/src/{ui → core}/components/menu/__workshop__/asComponent.tsx +0 -0
  328. /package/src/{ui → core}/components/menu/__workshop__/avatarMenu.tsx +0 -0
  329. /package/src/{ui → core}/components/menu/__workshop__/closableMenuButton.tsx +0 -0
  330. /package/src/{ui → core}/components/menu/__workshop__/constrainedInBoundary.tsx +0 -0
  331. /package/src/{ui → core}/components/menu/__workshop__/customMenuItem.tsx +0 -0
  332. /package/src/{ui → core}/components/menu/__workshop__/customSelectedState.tsx +0 -0
  333. /package/src/{ui → core}/components/menu/__workshop__/disableFocusOnClose.tsx +0 -0
  334. /package/src/{ui → core}/components/menu/__workshop__/groups.tsx +0 -0
  335. /package/src/{ui → core}/components/menu/__workshop__/index.ts +0 -0
  336. /package/src/{ui → core}/components/menu/__workshop__/menuButton.tsx +0 -0
  337. /package/src/{ui → core}/components/menu/__workshop__/menuGroupRight.tsx +0 -0
  338. /package/src/{ui → core}/components/menu/__workshop__/nestedMenu.tsx +0 -0
  339. /package/src/{ui → core}/components/menu/__workshop__/onCloseMenuButton.tsx +0 -0
  340. /package/src/{ui → core}/components/menu/__workshop__/selectedItem.tsx +0 -0
  341. /package/src/{ui → core}/components/menu/__workshop__/shouldFocus.tsx +0 -0
  342. /package/src/{ui → core}/components/menu/__workshop__/tones.tsx +0 -0
  343. /package/src/{ui → core}/components/menu/__workshop__/withoutArrow.tsx +0 -0
  344. /package/src/{ui → core}/components/menu/helpers.ts +0 -0
  345. /package/src/{ui → core}/components/menu/index.ts +0 -0
  346. /package/src/{ui → core}/components/menu/menu.test.tsx +0 -0
  347. /package/src/{ui → core}/components/menu/menu.tsx +0 -0
  348. /package/src/{ui → core}/components/menu/menuButton.tsx +0 -0
  349. /package/src/{ui → core}/components/menu/menuContext.ts +0 -0
  350. /package/src/{ui → core}/components/menu/menuDivider.tsx +0 -0
  351. /package/src/{ui → core}/components/menu/menuGroup.tsx +0 -0
  352. /package/src/{ui → core}/components/menu/menuItem.tsx +0 -0
  353. /package/src/{ui → core}/components/menu/useMenu.ts +0 -0
  354. /package/src/{ui → core}/components/menu/useMenuController.ts +0 -0
  355. /package/src/{ui → core}/components/skeleton/__workshop__/delay.tsx +0 -0
  356. /package/src/{ui → core}/components/skeleton/__workshop__/index.ts +0 -0
  357. /package/src/{ui → core}/components/skeleton/__workshop__/skeleton.tsx +0 -0
  358. /package/src/{ui → core}/components/skeleton/index.ts +0 -0
  359. /package/src/{ui → core}/components/skeleton/skeleton.tsx +0 -0
  360. /package/src/{ui → core}/components/skeleton/textSkeleton.tsx +0 -0
  361. /package/src/{ui → core}/components/tab/__workshop__/example.tsx +0 -0
  362. /package/src/{ui → core}/components/tab/__workshop__/index.ts +0 -0
  363. /package/src/{ui → core}/components/tab/index.ts +0 -0
  364. /package/src/{ui → core}/components/tab/tab.tsx +0 -0
  365. /package/src/{ui → core}/components/tab/tabList.tsx +0 -0
  366. /package/src/{ui → core}/components/tab/tabPanel.tsx +0 -0
  367. /package/src/{ui → core}/components/toast/__workshop__/hook.tsx +0 -0
  368. /package/src/{ui → core}/components/toast/__workshop__/index.ts +0 -0
  369. /package/src/{ui → core}/components/toast/__workshop__/toast.tsx +0 -0
  370. /package/src/{ui → core}/components/toast/index.ts +0 -0
  371. /package/src/{ui → core}/components/toast/toast.test.tsx +0 -0
  372. /package/src/{ui → core}/components/toast/toastContext.ts +0 -0
  373. /package/src/{ui → core}/components/toast/toastLayer.tsx +0 -0
  374. /package/src/{ui → core}/components/toast/toastProvider.tsx +0 -0
  375. /package/src/{ui → core}/components/toast/toastState.ts +0 -0
  376. /package/src/{ui → core}/components/toast/types.ts +0 -0
  377. /package/src/{ui → core}/components/toast/useToast.ts +0 -0
  378. /package/src/{ui → core}/components/tree/__workshop__/basic.perf.ts +0 -0
  379. /package/src/{ui → core}/components/tree/__workshop__/basic.tsx +0 -0
  380. /package/src/{ui → core}/components/tree/__workshop__/index.ts +0 -0
  381. /package/src/{ui → core}/components/tree/__workshop__/tabFromElement.tsx +0 -0
  382. /package/src/{ui → core}/components/tree/helpers.ts +0 -0
  383. /package/src/{ui → core}/components/tree/index.ts +0 -0
  384. /package/src/{ui → core}/components/tree/tree.tsx +0 -0
  385. /package/src/{ui → core}/components/tree/treeContext.ts +0 -0
  386. /package/src/{ui → core}/components/tree/treeGroup.tsx +0 -0
  387. /package/src/{ui → core}/components/tree/treeItem.tsx +0 -0
  388. /package/src/{ui → core}/components/tree/types.ts +0 -0
  389. /package/src/{ui → core}/components/tree/useTree.ts +0 -0
  390. /package/src/{ui → core}/global.ts +0 -0
  391. /package/src/{ui → core}/helpers/animation.ts +0 -0
  392. /package/src/{ui → core}/helpers/element.ts +0 -0
  393. /package/src/{ui → core}/helpers/focus.ts +0 -0
  394. /package/src/{ui → core}/helpers/index.ts +0 -0
  395. /package/src/{ui → core}/helpers/props.ts +0 -0
  396. /package/src/{ui → core}/helpers/scroll.ts +0 -0
  397. /package/src/{ui → core}/hooks/index.ts +0 -0
  398. /package/src/{ui → core}/hooks/useArrayProp.ts +0 -0
  399. /package/src/{ui → core}/hooks/useClickOutside.test.tsx +0 -0
  400. /package/src/{ui → core}/hooks/useClickOutside.ts +0 -0
  401. /package/src/{ui → core}/hooks/useClickOutsideEvent.test.tsx +0 -0
  402. /package/src/{ui → core}/hooks/useClickOutsideEvent.ts +0 -0
  403. /package/src/{ui → core}/hooks/useCustomValidity.ts +0 -0
  404. /package/src/{ui → core}/hooks/useDelayed.test.ts +0 -0
  405. /package/src/{ui → core}/hooks/useDelayedState.ts +0 -0
  406. /package/src/{ui → core}/hooks/useElementRect/__workshop__/example.tsx +0 -0
  407. /package/src/{ui → core}/hooks/useElementRect/__workshop__/index.ts +0 -0
  408. /package/src/{ui → core}/hooks/useElementRect/index.ts +0 -0
  409. /package/src/{ui → core}/hooks/useElementRect/useElementRect.ts +0 -0
  410. /package/src/{ui → core}/hooks/useElementSize.ts +0 -0
  411. /package/src/{ui → core}/hooks/useForwardedRef.ts +0 -0
  412. /package/src/{ui → core}/hooks/useGlobalKeyDown.ts +0 -0
  413. /package/src/{ui → core}/hooks/useIsomorphicEffect.ts +0 -0
  414. /package/src/{ui → core}/hooks/useMediaIndex/__workshop__/index.ts +0 -0
  415. /package/src/{ui → core}/hooks/useMediaIndex/__workshop__/test.tsx +0 -0
  416. /package/src/{ui → core}/hooks/useMediaIndex/index.ts +0 -0
  417. /package/src/{ui → core}/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -0
  418. /package/src/{ui → core}/hooks/useMounted.ts +0 -0
  419. /package/src/{ui → core}/hooks/usePrefersDark.hydration.test.tsx +0 -0
  420. /package/src/{ui → core}/hooks/usePrefersDark.test.tsx +0 -0
  421. /package/src/{ui → core}/hooks/usePrefersDark.ts +0 -0
  422. /package/src/{ui → core}/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -0
  423. /package/src/{ui → core}/hooks/usePrefersReducedMotion.test.tsx +0 -0
  424. /package/src/{ui → core}/hooks/usePrefersReducedMotion.ts +0 -0
  425. /package/src/{ui → core}/index.ts +0 -0
  426. /package/src/{ui → core}/lib/createGlobalScopedContext.ts +0 -0
  427. /package/src/{ui → core}/lib/globalScope.ts +0 -0
  428. /package/src/{ui → core}/lib/isRecord.ts +0 -0
  429. /package/src/{ui → core}/middleware/origin.ts +0 -0
  430. /package/src/{ui → core}/observers/elementSizeObserver.ts +0 -0
  431. /package/src/{ui → core}/observers/index.ts +0 -0
  432. /package/src/{ui → core}/observers/resizeObserver.ts +0 -0
  433. /package/src/{ui → core}/primitives/_selectable/index.ts +0 -0
  434. /package/src/{ui → core}/primitives/_selectable/selectable.tsx +0 -0
  435. /package/src/{ui → core}/primitives/avatar/__workshop__/asButton.tsx +0 -0
  436. /package/src/{ui → core}/primitives/avatar/__workshop__/index.ts +0 -0
  437. /package/src/{ui → core}/primitives/avatar/__workshop__/stack.tsx +0 -0
  438. /package/src/{ui → core}/primitives/avatar/__workshop__/withinButton.tsx +0 -0
  439. /package/src/{ui → core}/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -0
  440. /package/src/{ui → core}/primitives/avatar/avatar.tsx +0 -0
  441. /package/src/{ui → core}/primitives/avatar/avatarCounter.tsx +0 -0
  442. /package/src/{ui → core}/primitives/avatar/avatarStack.tsx +0 -0
  443. /package/src/{ui → core}/primitives/avatar/index.ts +0 -0
  444. /package/src/{ui → core}/primitives/avatar/types.ts +0 -0
  445. /package/src/{ui → core}/primitives/badge/__workshop__/index.ts +0 -0
  446. /package/src/{ui → core}/primitives/badge/__workshop__/props.tsx +0 -0
  447. /package/src/{ui → core}/primitives/badge/__workshop__/tones.tsx +0 -0
  448. /package/src/{ui → core}/primitives/badge/badge.test.tsx +0 -0
  449. /package/src/{ui → core}/primitives/badge/badge.tsx +0 -0
  450. /package/src/{ui → core}/primitives/badge/index.ts +0 -0
  451. /package/src/{ui → core}/primitives/badge/types.ts +0 -0
  452. /package/src/{ui → core}/primitives/box/__workshop__/index.ts +0 -0
  453. /package/src/{ui → core}/primitives/box/__workshop__/props.tsx +0 -0
  454. /package/src/{ui → core}/primitives/box/__workshop__/responsive.tsx +0 -0
  455. /package/src/{ui → core}/primitives/box/index.ts +0 -0
  456. /package/src/{ui → core}/primitives/button/__workshop__/custom.tsx +0 -0
  457. /package/src/{ui → core}/primitives/button/__workshop__/customIcons.tsx +0 -0
  458. /package/src/{ui → core}/primitives/button/__workshop__/disabled.tsx +0 -0
  459. /package/src/{ui → core}/primitives/button/__workshop__/index.ts +0 -0
  460. /package/src/{ui → core}/primitives/button/__workshop__/mixedChildren.tsx +0 -0
  461. /package/src/{ui → core}/primitives/button/__workshop__/props.tsx +0 -0
  462. /package/src/{ui → core}/primitives/button/__workshop__/sanityUploadButton.tsx +0 -0
  463. /package/src/{ui → core}/primitives/button/__workshop__/stacked.tsx +0 -0
  464. /package/src/{ui → core}/primitives/button/__workshop__/styled1.tsx +0 -0
  465. /package/src/{ui → core}/primitives/button/__workshop__/styled2.tsx +0 -0
  466. /package/src/{ui → core}/primitives/button/__workshop__/uploadButton.tsx +0 -0
  467. /package/src/{ui → core}/primitives/button/button.test.tsx +0 -0
  468. /package/src/{ui → core}/primitives/button/index.ts +0 -0
  469. /package/src/{ui → core}/primitives/card/__workshop__/allTones.tsx +0 -0
  470. /package/src/{ui → core}/primitives/card/__workshop__/asButton.tsx +0 -0
  471. /package/src/{ui → core}/primitives/card/__workshop__/asComponent.tsx +0 -0
  472. /package/src/{ui → core}/primitives/card/__workshop__/checkered.tsx +0 -0
  473. /package/src/{ui → core}/primitives/card/__workshop__/index.ts +0 -0
  474. /package/src/{ui → core}/primitives/card/__workshop__/interactive.tsx +0 -0
  475. /package/src/{ui → core}/primitives/card/__workshop__/listNavigation.tsx +0 -0
  476. /package/src/{ui → core}/primitives/card/__workshop__/props.tsx +0 -0
  477. /package/src/{ui → core}/primitives/card/__workshop__/selected.tsx +0 -0
  478. /package/src/{ui → core}/primitives/card/__workshop__/styled.tsx +0 -0
  479. /package/src/{ui → core}/primitives/checkbox/__workshop__/example.tsx +0 -0
  480. /package/src/{ui → core}/primitives/checkbox/__workshop__/index.ts +0 -0
  481. /package/src/{ui → core}/primitives/checkbox/__workshop__/props.tsx +0 -0
  482. /package/src/{ui → core}/primitives/checkbox/__workshop__/readOnly.tsx +0 -0
  483. /package/src/{ui → core}/primitives/checkbox/__workshop__/tones.tsx +0 -0
  484. /package/src/{ui → core}/primitives/checkbox/checkbox.tsx +0 -0
  485. /package/src/{ui → core}/primitives/checkbox/index.ts +0 -0
  486. /package/src/{ui → core}/primitives/code/__workshop__/index.ts +0 -0
  487. /package/src/{ui → core}/primitives/code/__workshop__/opticalAlignment.tsx +0 -0
  488. /package/src/{ui → core}/primitives/code/__workshop__/props.tsx +0 -0
  489. /package/src/{ui → core}/primitives/code/index.ts +0 -0
  490. /package/src/{ui → core}/primitives/code/refractor.tsx +0 -0
  491. /package/src/{ui → core}/primitives/container/__workshop__/example.tsx +0 -0
  492. /package/src/{ui → core}/primitives/container/__workshop__/index.ts +0 -0
  493. /package/src/{ui → core}/primitives/container/container.tsx +0 -0
  494. /package/src/{ui → core}/primitives/container/index.ts +0 -0
  495. /package/src/{ui → core}/primitives/container/types.ts +0 -0
  496. /package/src/{ui → core}/primitives/flex/__workshop__/example.tsx +0 -0
  497. /package/src/{ui → core}/primitives/flex/__workshop__/gap.tsx +0 -0
  498. /package/src/{ui → core}/primitives/flex/__workshop__/index.ts +0 -0
  499. /package/src/{ui → core}/primitives/flex/flex.tsx +0 -0
  500. /package/src/{ui → core}/primitives/flex/index.ts +0 -0
  501. /package/src/{ui → core}/primitives/grid/__workshop__/index.ts +0 -0
  502. /package/src/{ui → core}/primitives/grid/__workshop__/responsive.tsx +0 -0
  503. /package/src/{ui → core}/primitives/grid/grid.tsx +0 -0
  504. /package/src/{ui → core}/primitives/grid/index.ts +0 -0
  505. /package/src/{ui → core}/primitives/heading/__workshop__/index.ts +0 -0
  506. /package/src/{ui → core}/primitives/heading/__workshop__/opticalAlignment.tsx +0 -0
  507. /package/src/{ui → core}/primitives/heading/__workshop__/plain.tsx +0 -0
  508. /package/src/{ui → core}/primitives/heading/index.ts +0 -0
  509. /package/src/{ui → core}/primitives/index.ts +0 -0
  510. /package/src/{ui → core}/primitives/inline/__workshop__/index.ts +0 -0
  511. /package/src/{ui → core}/primitives/inline/__workshop__/plain.tsx +0 -0
  512. /package/src/{ui → core}/primitives/inline/index.ts +0 -0
  513. /package/src/{ui → core}/primitives/inline/inline.tsx +0 -0
  514. /package/src/{ui → core}/primitives/inline/types.ts +0 -0
  515. /package/src/{ui → core}/primitives/kbd/__workshop__/index.ts +0 -0
  516. /package/src/{ui → core}/primitives/kbd/__workshop__/plain.tsx +0 -0
  517. /package/src/{ui → core}/primitives/kbd/index.ts +0 -0
  518. /package/src/{ui → core}/primitives/label/__workshop__/index.ts +0 -0
  519. /package/src/{ui → core}/primitives/label/__workshop__/opticalAlignment.tsx +0 -0
  520. /package/src/{ui → core}/primitives/label/__workshop__/plain.tsx +0 -0
  521. /package/src/{ui → core}/primitives/label/index.ts +0 -0
  522. /package/src/{ui → core}/primitives/label/label.tsx +0 -0
  523. /package/src/{ui → core}/primitives/popover/__workshop__/AlignedStory.tsx +0 -0
  524. /package/src/{ui → core}/primitives/popover/__workshop__/MarginsStory.tsx +0 -0
  525. /package/src/{ui → core}/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -0
  526. /package/src/{ui → core}/primitives/popover/__workshop__/PlainStory.tsx +0 -0
  527. /package/src/{ui → core}/primitives/popover/__workshop__/RecursiveStory.tsx +0 -0
  528. /package/src/{ui → core}/primitives/popover/__workshop__/TestStory.tsx +0 -0
  529. /package/src/{ui → core}/primitives/popover/__workshop__/index.ts +0 -0
  530. /package/src/{ui → core}/primitives/popover/constants.ts +0 -0
  531. /package/src/{ui → core}/primitives/popover/floating-ui/size.ts +0 -0
  532. /package/src/{ui → core}/primitives/popover/helpers.ts +0 -0
  533. /package/src/{ui → core}/primitives/popover/index.ts +0 -0
  534. /package/src/{ui → core}/primitives/popover/types.ts +0 -0
  535. /package/src/{ui → core}/primitives/radio/__workshop__/example.tsx +0 -0
  536. /package/src/{ui → core}/primitives/radio/__workshop__/index.ts +0 -0
  537. /package/src/{ui → core}/primitives/radio/__workshop__/plain.tsx +0 -0
  538. /package/src/{ui → core}/primitives/radio/index.ts +0 -0
  539. /package/src/{ui → core}/primitives/radio/radio.tsx +0 -0
  540. /package/src/{ui → core}/primitives/select/__workshop__/index.ts +0 -0
  541. /package/src/{ui → core}/primitives/select/__workshop__/plain.tsx +0 -0
  542. /package/src/{ui → core}/primitives/select/__workshop__/readOnly.tsx +0 -0
  543. /package/src/{ui → core}/primitives/select/index.ts +0 -0
  544. /package/src/{ui → core}/primitives/spinner/__workshop__/Props.tsx +0 -0
  545. /package/src/{ui → core}/primitives/spinner/__workshop__/index.ts +0 -0
  546. /package/src/{ui → core}/primitives/spinner/animatedSpinnerIcon.tsx +0 -0
  547. /package/src/{ui → core}/primitives/spinner/index.ts +0 -0
  548. /package/src/{ui → core}/primitives/spinner/spinner.tsx +0 -0
  549. /package/src/{ui → core}/primitives/stack/__workshop__/index.ts +0 -0
  550. /package/src/{ui → core}/primitives/stack/__workshop__/plain.tsx +0 -0
  551. /package/src/{css → core}/primitives/stack/index.ts +0 -0
  552. /package/src/{ui → core}/primitives/switch/__workshop__/example.tsx +0 -0
  553. /package/src/{ui → core}/primitives/switch/__workshop__/index.ts +0 -0
  554. /package/src/{ui → core}/primitives/switch/__workshop__/props.tsx +0 -0
  555. /package/src/{ui → core}/primitives/switch/index.ts +0 -0
  556. /package/src/{ui → core}/primitives/switch/switch.tsx +0 -0
  557. /package/src/{ui → core}/primitives/text/__workshop__/colored.tsx +0 -0
  558. /package/src/{ui → core}/primitives/text/__workshop__/example.tsx +0 -0
  559. /package/src/{ui → core}/primitives/text/__workshop__/index.ts +0 -0
  560. /package/src/{ui → core}/primitives/text/__workshop__/opticalAlignment.tsx +0 -0
  561. /package/src/{ui → core}/primitives/text/index.ts +0 -0
  562. /package/src/{ui → core}/primitives/textArea/__workshop__/index.ts +0 -0
  563. /package/src/{ui → core}/primitives/textArea/__workshop__/plain.tsx +0 -0
  564. /package/src/{ui → core}/primitives/textArea/index.ts +0 -0
  565. /package/src/{ui → core}/primitives/textArea/textArea.tsx +0 -0
  566. /package/src/{ui → core}/primitives/textInput/__workshop__/clearButton.tsx +0 -0
  567. /package/src/{ui → core}/primitives/textInput/__workshop__/customValidity.tsx +0 -0
  568. /package/src/{ui → core}/primitives/textInput/__workshop__/index.ts +0 -0
  569. /package/src/{ui → core}/primitives/textInput/__workshop__/plain.tsx +0 -0
  570. /package/src/{ui → core}/primitives/textInput/__workshop__/readOnly.tsx +0 -0
  571. /package/src/{ui → core}/primitives/textInput/__workshop__/states.tsx +0 -0
  572. /package/src/{ui → core}/primitives/textInput/__workshop__/tones.tsx +0 -0
  573. /package/src/{ui → core}/primitives/textInput/__workshop__/typed.tsx +0 -0
  574. /package/src/{ui → core}/primitives/textInput/index.ts +0 -0
  575. /package/src/{ui → core}/primitives/tooltip/__workshop__/customPortal.tsx +0 -0
  576. /package/src/{ui → core}/primitives/tooltip/__workshop__/index.ts +0 -0
  577. /package/src/{ui → core}/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -0
  578. /package/src/{ui → core}/primitives/tooltip/__workshop__/props.tsx +0 -0
  579. /package/src/{ui → core}/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -0
  580. /package/src/{ui → core}/primitives/tooltip/constants.ts +0 -0
  581. /package/src/{ui → core}/primitives/tooltip/index.ts +0 -0
  582. /package/src/{ui → core}/primitives/tooltip/tooltipCard.tsx +0 -0
  583. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/index.ts +0 -0
  584. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -0
  585. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -0
  586. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/types.ts +0 -0
  587. /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -0
  588. /package/src/{ui → core}/primitives/types.ts +0 -0
  589. /package/src/{ui → core}/types/avatar.ts +0 -0
  590. /package/src/{ui → core}/types/badge.ts +0 -0
  591. /package/src/{ui → core}/types/box.ts +0 -0
  592. /package/src/{ui → core}/types/button.ts +0 -0
  593. /package/src/{ui → core}/types/card.ts +0 -0
  594. /package/src/{ui → core}/types/dialog.ts +0 -0
  595. /package/src/{ui → core}/types/flex.ts +0 -0
  596. /package/src/{ui → core}/types/grid.ts +0 -0
  597. /package/src/{ui → core}/types/gridItem.ts +0 -0
  598. /package/src/{ui → core}/types/index.ts +0 -0
  599. /package/src/{ui → core}/types/placement.ts +0 -0
  600. /package/src/{ui → core}/types/popover.ts +0 -0
  601. /package/src/{ui → core}/types/props.ts +0 -0
  602. /package/src/{ui → core}/types/radius.ts +0 -0
  603. /package/src/{ui → core}/types/selectable.ts +0 -0
  604. /package/src/{ui → core}/types/text.ts +0 -0
  605. /package/src/{ui → core}/utils/arrow/arrow.tsx +0 -0
  606. /package/src/{ui → core}/utils/arrow/cmds.ts +0 -0
  607. /package/src/{ui → core}/utils/arrow/index.ts +0 -0
  608. /package/src/{ui → core}/utils/boundaryElement/__workshop__/index.ts +0 -0
  609. /package/src/{ui → core}/utils/boundaryElement/__workshop__/plain.tsx +0 -0
  610. /package/src/{ui → core}/utils/boundaryElement/boundaryElement.test.tsx +0 -0
  611. /package/src/{ui → core}/utils/boundaryElement/boundaryElementContext.ts +0 -0
  612. /package/src/{ui → core}/utils/boundaryElement/boundaryElementProvider.tsx +0 -0
  613. /package/src/{ui → core}/utils/boundaryElement/index.ts +0 -0
  614. /package/src/{ui → core}/utils/boundaryElement/types.ts +0 -0
  615. /package/src/{ui → core}/utils/boundaryElement/useBoundaryElement.ts +0 -0
  616. /package/src/{ui → core}/utils/conditionalWrapper/conditionalWrapper.tsx +0 -0
  617. /package/src/{ui → core}/utils/conditionalWrapper/index.ts +0 -0
  618. /package/src/{ui → core}/utils/elementQuery/__workshop__/customMedia.tsx +0 -0
  619. /package/src/{ui → core}/utils/elementQuery/__workshop__/index.ts +0 -0
  620. /package/src/{ui → core}/utils/elementQuery/elementQuery.tsx +0 -0
  621. /package/src/{ui → core}/utils/elementQuery/helpers.ts +0 -0
  622. /package/src/{ui → core}/utils/elementQuery/index.ts +0 -0
  623. /package/src/{ui → core}/utils/errorBoundary.tsx +0 -0
  624. /package/src/{ui → core}/utils/getElementRef.ts +0 -0
  625. /package/src/{ui → core}/utils/index.ts +0 -0
  626. /package/src/{ui → core}/utils/layer/__workshop__/_debug.tsx +0 -0
  627. /package/src/{ui → core}/utils/layer/__workshop__/index.ts +0 -0
  628. /package/src/{ui → core}/utils/layer/__workshop__/multipleRoots.tsx +0 -0
  629. /package/src/{ui → core}/utils/layer/__workshop__/nested.tsx +0 -0
  630. /package/src/{ui → core}/utils/layer/__workshop__/responsiveZOffset.tsx +0 -0
  631. /package/src/{ui → core}/utils/layer/getLayerContext.test.ts +0 -0
  632. /package/src/{ui → core}/utils/layer/getLayerContext.ts +0 -0
  633. /package/src/{ui → core}/utils/layer/index.ts +0 -0
  634. /package/src/{ui → core}/utils/layer/layer.test.tsx +0 -0
  635. /package/src/{ui → core}/utils/layer/layer.tsx +0 -0
  636. /package/src/{ui → core}/utils/layer/layerContext.ts +0 -0
  637. /package/src/{ui → core}/utils/layer/types.ts +0 -0
  638. /package/src/{ui → core}/utils/layer/useLayer.ts +0 -0
  639. /package/src/{ui → core}/utils/portal/__workshop__/index.ts +0 -0
  640. /package/src/{ui → core}/utils/portal/__workshop__/named.tsx +0 -0
  641. /package/src/{ui → core}/utils/portal/index.ts +0 -0
  642. /package/src/{ui → core}/utils/portal/portal.test.tsx +0 -0
  643. /package/src/{ui → core}/utils/portal/portalContext.ts +0 -0
  644. /package/src/{ui → core}/utils/portal/portalProvider.tsx +0 -0
  645. /package/src/{ui → core}/utils/portal/types.ts +0 -0
  646. /package/src/{ui → core}/utils/portal/usePortal.ts +0 -0
  647. /package/src/{ui → core}/utils/spanWithTextOverflow.tsx +0 -0
  648. /package/src/{ui → core}/utils/srOnly/index.ts +0 -0
  649. /package/src/{ui → core}/utils/srOnly/srOnly.tsx +0 -0
  650. /package/src/{ui → core}/utils/virtualList/__workshop__/changingProps.tsx +0 -0
  651. /package/src/{ui → core}/utils/virtualList/__workshop__/elementScroll.tsx +0 -0
  652. /package/src/{ui → core}/utils/virtualList/__workshop__/index.ts +0 -0
  653. /package/src/{ui → core}/utils/virtualList/__workshop__/infiniteList.tsx +0 -0
  654. /package/src/{ui → core}/utils/virtualList/__workshop__/windowScrolll.tsx +0 -0
  655. /package/src/{ui → core}/utils/virtualList/index.ts +0 -0
  656. /package/src/css/{aspects → styles}/border/index.ts +0 -0
  657. /package/src/css/{aspects → styles}/border/types.ts +0 -0
  658. /package/src/css/{aspects → styles}/display/display.ts +0 -0
  659. /package/src/css/{aspects → styles}/display/index.ts +0 -0
  660. /package/src/css/{aspects → styles}/display/types.ts +0 -0
  661. /package/src/css/{aspects → styles}/flex/index.ts +0 -0
  662. /package/src/css/{aspects → styles}/flex/types.ts +0 -0
  663. /package/src/css/{aspects → styles}/flexItem/index.ts +0 -0
  664. /package/src/css/{aspects → styles}/font/index.ts +0 -0
  665. /package/src/css/{aspects → styles}/font/types.ts +0 -0
  666. /package/src/css/{aspects → styles}/gap/gap.ts +0 -0
  667. /package/src/css/{aspects → styles}/gap/index.ts +0 -0
  668. /package/src/css/{aspects → styles}/gap/types.ts +0 -0
  669. /package/src/css/{aspects → styles}/grid/index.ts +0 -0
  670. /package/src/css/{aspects → styles}/gridItem/gridItem.ts +0 -0
  671. /package/src/css/{aspects → styles}/gridItem/index.ts +0 -0
  672. /package/src/css/{aspects → styles}/gridItem/types.ts +0 -0
  673. /package/src/css/{aspects → styles}/height/rules.ts +0 -0
  674. /package/src/css/{aspects → styles}/inset/index.ts +0 -0
  675. /package/src/css/{aspects → styles}/inset/inset.ts +0 -0
  676. /package/src/css/{aspects → styles}/inset/types.ts +0 -0
  677. /package/src/css/{aspects → styles}/margin/index.ts +0 -0
  678. /package/src/css/{aspects → styles}/margin/margin.ts +0 -0
  679. /package/src/css/{aspects → styles}/margin/types.ts +0 -0
  680. /package/src/css/{aspects → styles}/maxWidth/index.ts +0 -0
  681. /package/src/css/{aspects → styles}/maxWidth/maxWidth.ts +0 -0
  682. /package/src/css/{aspects → styles}/overflow/index.ts +0 -0
  683. /package/src/css/{aspects → styles}/overflow/overflow.ts +0 -0
  684. /package/src/css/{aspects → styles}/overflow/types.ts +0 -0
  685. /package/src/css/{aspects → styles}/padding/index.ts +0 -0
  686. /package/src/css/{aspects → styles}/padding/padding.ts +0 -0
  687. /package/src/css/{aspects → styles}/padding/types.ts +0 -0
  688. /package/src/css/{aspects → styles}/pointerEvents/index.ts +0 -0
  689. /package/src/css/{aspects → styles}/pointerEvents/pointerEvents.ts +0 -0
  690. /package/src/css/{aspects → styles}/pointerEvents/types.ts +0 -0
  691. /package/src/css/{aspects → styles}/position/index.ts +0 -0
  692. /package/src/css/{aspects → styles}/position/types.ts +0 -0
  693. /package/src/css/{aspects → styles}/radius/index.ts +0 -0
  694. /package/src/css/{aspects → styles}/radius/radius.ts +0 -0
  695. /package/src/css/{aspects → styles}/shadow/index.ts +0 -0
  696. /package/src/css/{aspects → styles}/shadow/shadow.ts +0 -0
  697. /package/src/css/{aspects → styles}/shadow/types.ts +0 -0
  698. /package/src/css/{aspects → styles}/textOverflow/index.ts +0 -0
  699. /package/src/css/{aspects → styles}/textOverflow/types.ts +0 -0
  700. /package/src/css/{aspects → styles}/width/index.ts +0 -0
  701. /package/src/css/{aspects → styles}/width/width.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"_visual-editing.mjs","sources":["../../src/ui/lib/globalScope.ts","../../src/ui/lib/createGlobalScopedContext.ts","../../src/ui/primitives/card/cardContext.ts","../../src/ui/primitives/card/cardProvider.tsx","../../src/ui/_compat/theme/themeContext.ts","../../src/ui/_compat/theme/themeProvider.tsx","../../src/ui/_compat/theme/useRootTheme.ts","../../src/ui/_compat/theme/themeColorProvider.tsx","../../src/ui/_compat/theme/useTheme.ts","../../src/ui/_compat/types.ts","../../src/ui/constants.ts","../../src/ui/helpers/element.ts","../../src/ui/helpers/props.ts","../../src/ui/helpers/scroll.ts","../../src/ui/hooks/useArrayProp.ts","../../src/ui/hooks/useClickOutsideEvent.ts","../../src/ui/hooks/useCustomValidity.ts","../../src/ui/observers/resizeObserver.ts","../../src/ui/observers/elementSizeObserver.ts","../../src/ui/hooks/useElementSize.ts","../../src/ui/hooks/useGlobalKeyDown.ts","../../src/ui/hooks/useMatchMedia.ts","../../src/ui/hooks/useMediaIndex/useMediaIndex.ts","../../src/ui/hooks/usePrefersDark.ts","../../src/ui/hooks/usePrefersReducedMotion.ts","../../src/ui/primitives/box/box.tsx","../../src/ui/primitives/label/label.tsx","../../src/ui/primitives/avatar/avatar.tsx","../../src/ui/primitives/avatar/avatarCounter.tsx","../../src/ui/primitives/avatar/avatarStack.tsx","../../src/ui/primitives/text/text.tsx","../../src/ui/primitives/badge/badge.tsx","../../src/ui/primitives/spinner/animatedSpinnerIcon.tsx","../../src/ui/primitives/spinner/spinner.tsx","../../src/ui/primitives/button/button.tsx","../../src/ui/primitives/card/useCard.ts","../../src/ui/primitives/card/card.tsx","../../src/ui/primitives/checkbox/checkbox.tsx","../../src/ui/primitives/code/code.tsx","../../src/ui/primitives/container/container.tsx","../../src/ui/primitives/flex/flex.tsx","../../src/ui/primitives/grid/grid.tsx","../../src/ui/primitives/heading/heading.tsx","../../src/ui/primitives/inline/inline.tsx","../../src/ui/primitives/kbd/kbd.tsx","../../src/ui/middleware/origin.ts","../../src/ui/utils/arrow/cmds.ts","../../src/ui/utils/arrow/arrow.tsx","../../src/ui/utils/boundaryElement/boundaryElementContext.ts","../../src/ui/utils/boundaryElement/boundaryElementProvider.tsx","../../src/ui/lib/isRecord.ts","../../src/ui/utils/boundaryElement/useBoundaryElement.ts","../../src/ui/utils/conditionalWrapper/conditionalWrapper.tsx","../../src/ui/utils/elementQuery/helpers.ts","../../src/ui/utils/elementQuery/elementQuery.tsx","../../src/ui/utils/layer/getLayerContext.ts","../../src/ui/utils/layer/layerContext.ts","../../src/ui/utils/layer/layerProvider.tsx","../../src/ui/utils/layer/useLayer.ts","../../src/ui/utils/layer/layer.tsx","../../src/ui/utils/portal/portalContext.ts","../../src/ui/utils/portal/usePortal.ts","../../src/ui/utils/portal/portal.ts","../../src/ui/utils/portal/portalProvider.tsx","../../src/ui/utils/srOnly/srOnly.tsx","../../src/ui/utils/virtualList/virtualList.tsx","../../src/ui/primitives/popover/constants.ts","../../src/ui/primitives/popover/floating-ui/size.ts","../../src/ui/primitives/popover/popoverCard.tsx","../../src/ui/primitives/popover/popover.tsx","../../src/ui/primitives/radio/radio.tsx","../../src/ui/primitives/select/select.tsx","../../src/ui/primitives/stack/stack.tsx","../../src/ui/primitives/switch/switch.tsx","../../src/ui/primitives/textArea/textArea.tsx","../../src/ui/primitives/textInput/textInput.tsx","../../src/ui/hooks/useDelayedState.ts","../../src/ui/utils/getElementRef.ts","../../src/ui/primitives/tooltip/constants.ts","../../src/ui/primitives/tooltip/tooltipCard.tsx","../../src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../src/ui/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/ui/primitives/tooltip/tooltip.tsx","../../src/ui/components/hotkeys/hotkeys.tsx","../../src/ui/components/menu/menuContext.ts","../../src/ui/components/menu/helpers.ts","../../src/ui/components/menu/useMenuController.ts","../../src/ui/components/menu/menu.tsx","../../src/ui/components/menu/menuDivider.tsx","../../src/ui/primitives/_selectable/selectable.tsx","../../src/ui/components/menu/useMenu.ts","../../src/ui/components/menu/menuGroup.tsx","../../src/ui/components/menu/menuItem.tsx","../../src/ui/components/tab/tab.tsx","../../src/ui/components/tab/tabList.tsx"],"sourcesContent":["/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {CardContextValue} from './types'\n\n/**\n * @internal\n */\nexport const CardContext: Context<CardContextValue | null> =\n createGlobalScopedContext<CardContextValue | null>('@sanity/ui/context/card', null)\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ReactNode, useMemo} from 'react'\n\nimport {CardContext} from './cardContext'\nimport {CardCompatProviderComponent} from './types'\n\nexport function CardProvider(props: {\n compat_provider?: CardCompatProviderComponent\n children?: ReactNode\n rendered?: boolean\n tone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n}) {\n const {children, rendered = false, tone, scheme} = props\n\n const context = useMemo(() => ({rendered, tone, scheme}), [rendered, tone, scheme])\n\n return <CardContext.Provider value={context}>{children}</CardContext.Provider>\n}\n","import {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext: Context<ThemeContextValue | null> =\n createGlobalScopedContext<ThemeContextValue | null>('@sanity/ui/context/theme', null)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {ReactElement, ReactNode, useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {CardProvider} from '../../primitives/card/cardProvider'\nimport {ThemeColorProvider} from './themeColorProvider'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <CardProvider\n compat_provider={\n // Render a theme provider around the card if the scheme or tone differs from the root theme.\n // This is needed for backwards compatibility with the legacy theme API.\n ThemeColorProvider\n }\n scheme={scheme}\n tone={tone}\n >\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n </CardProvider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ReactElement, ReactNode} from 'react'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): ReactElement {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {getTheme_v2, Theme, Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = (() => {\n let theme: ReturnType<typeof buildTheme> | undefined\n return {\n get value() {\n if (!theme) {\n theme = buildTheme()\n }\n return theme\n },\n }\n})()\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n\nexport const Z_OFFSETS = {\n dialog: 600,\n popover: 400,\n tooltip: 200,\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _getArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useState} from 'react'\n\nimport {_getArrayProp} from '../helpers'\n\n/** @beta */\n// export type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\n// export function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\nexport function useArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, ElementSize} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\n// TODO: get from theme?\nconst media = [360, 600, 900, 1200, 1800, 2400]\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const store = useMemo(() => _createMediaStore(), [])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {\n box,\n BoxStyleProps,\n composeClassNames,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends BoxStyleProps,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps {}\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: Props<BoxProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n align,\n as: As = 'div',\n autoCols,\n autoFlow,\n autoRows,\n border = false,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\n column,\n columnStart,\n columnEnd,\n columns,\n direction,\n display = 'block',\n flex,\n gap,\n gapX,\n gapY,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justify,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minWidth = 0,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n muted,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n sizing = 'border',\n width,\n wrap,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Box\"\n {...restProps}\n className={composeClassNames(\n className,\n box({\n align,\n autoCols,\n autoFlow,\n autoRows,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n column,\n columnStart,\n columnEnd,\n columns,\n direction,\n display,\n flex,\n gap,\n gapX,\n gapY,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justify,\n overflow,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minWidth,\n muted,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n sizing,\n width,\n wrap,\n }),\n )}\n ref={ref}\n >\n {props.children}\n </As>\n )\n})\n\nBox.displayName = 'ForwardRef(Box)'\n","import {\n composeClassNames,\n FontStyleProps,\n label,\n LabelSize,\n ResponsiveProp,\n textOverflow,\n TextOverflowStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface LabelProps extends FontStyleProps, TextOverflowStyleProps {\n accent?: boolean\n htmlFor?: string\n muted?: boolean\n size?: ResponsiveProp<LabelSize>\n}\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: Props<LabelProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n as: As = 'div',\n children,\n className,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight = 'medium',\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Label\"\n {...restProps}\n className={composeClassNames(\n className,\n label({\n accent,\n align,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nLabel.displayName = 'ForwardRef(Label)'\n","import {\n avatar,\n avatarArrow,\n avatarImage,\n avatarInitials,\n composeClassNames,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {AvatarSize, ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\n\nimport {useArrayProp} from '../../hooks'\nimport {AvatarPosition, AvatarStatus, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: ResponsiveProp<AvatarSize>\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: Props<AvatarProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n className,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const As = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageError, setImageError] = useState<boolean>(false)\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageError(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageError(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <As\n // data-as={typeof As === 'string' ? As : undefined}\n data-hide-inner-stroke={__unstable_hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n aria-label={title}\n className={composeClassNames(className, avatar({color, size: sizeProp}))}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n data-status={status}\n ref={ref}\n title={title}\n >\n <span className={avatarArrow()}>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </span>\n\n <Box\n align=\"center\"\n as=\"span\"\n className={avatarInitials()}\n display=\"flex\"\n justify=\"center\"\n position=\"absolute\"\n inset={0}\n >\n <Label\n align=\"center\"\n as=\"span\"\n size={initialsSize}\n style={{color: 'inherit'}}\n weight=\"medium\"\n >\n {initials}\n </Label>\n </Box>\n\n {src && (\n <Box className={avatarImage()} inset={0} position=\"absolute\">\n <img alt={initials} onError={handleImageError} src={src} />\n <span />\n </Box>\n )}\n </As>\n )\n})\n\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {avatarCounter, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {AvatarSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useMemo} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Label} from '../label'\n\n/**\n * @public\n */\nexport interface AvatarCounterProps\n extends Omit<BoxProps, 'align' | 'className' | 'display' | 'justify' | 'paddingX' | 'sizing'> {\n count: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: Props<AvatarCounterProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, count, size: sizeProp = 1, ...restProps} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Box\n data-ui=\"AvatarCounter\"\n {...restProps}\n align=\"center\"\n className={composeClassNames(className, avatarCounter({size}))}\n display=\"flex\"\n justify=\"center\"\n paddingX={2}\n ref={ref}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n})\n\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {avatarStack, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {AvatarSize} from '@sanity/ui/theme'\nimport {Children, cloneElement, ForwardedRef, forwardRef, isValidElement, ReactElement} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {AvatarProps} from './avatar'\nimport {AvatarCounter} from './avatarCounter'\n\n/**\n * @public\n */\nexport type AvatarStackChild = ReactElement<Props<AvatarProps, 'div'>> | null | undefined | false\n\n/**\n * @public\n */\nexport interface AvatarStackProps extends Omit<BoxProps, 'align' | 'className' | 'display'> {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: Props<AvatarStackProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n Props<AvatarProps, 'div'>\n >[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Box\n data-ui=\"AvatarStack\"\n {...restProps}\n align=\"center\"\n className={composeClassNames(className, avatarStack({size}))}\n display=\"flex\"\n ref={ref}\n >\n {len === 0 && (\n <Box flex=\"none\">\n <AvatarCounter count={len} size={size} />\n </Box>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <Box flex=\"none\">\n <AvatarCounter count={extraCount} size={size} />\n </Box>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <Box flex=\"none\" key={String(childIndex)}>\n {cloneElement(child, {size})}\n </Box>\n ))}\n </Box>\n )\n})\n\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {\n composeClassNames,\n text,\n textOverflow,\n TextOverflowStyleProps,\n TextStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TextProps extends TextStyleProps, TextOverflowStyleProps {\n htmlFor?: string\n}\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: Props<TextProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children,\n className,\n flex,\n muted = false,\n size = 2,\n textOverflow: textOverflowProp,\n weight,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Text\"\n {...restProps}\n ref={ref}\n className={composeClassNames(\n className,\n text({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nText.displayName = 'ForwardRef(Text)'\n","import {badge, composeClassNames, RadiusStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {BadgeMode, BadgeTone, Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, RadiusStyleProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n textAlign?: TextProps['align']\n tone?: BadgeTone\n}\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: Props<BadgeProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 2,\n textAlign,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Box\n data-ui=\"Badge\"\n {...restProps}\n className={composeClassNames(\n className,\n badge({\n radius,\n tone,\n }),\n )}\n display={display}\n padding={padding}\n ref={ref}\n >\n <Text align={textAlign} size={fontSize}>\n {children}\n </Text>\n </Box>\n )\n})\n\nBadge.displayName = 'ForwardRef(Badge)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {animatedSpinnerIcon, composeClassNames} from '@sanity/ui/css'\nimport {ReactElement, SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(props: SVGProps<SVGSVGElement>): ReactElement {\n const {className, ...restProps} = props\n\n return (\n <SpinnerIcon\n {...restProps}\n data-sanity-icon=\"animated-spinner\"\n className={composeClassNames(className, animatedSpinnerIcon())}\n />\n )\n}\n","import {ResponsiveProp, spinner} from '@sanity/ui/css'\nimport {FontTextSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Text} from '../text'\nimport {AnimatedSpinnerIcon} from './animatedSpinnerIcon'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: Props<SpinnerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Text data-ui=\"Spinner\" {...props} className={spinner()} ref={ref}>\n <AnimatedSpinnerIcon />\n </Text>\n )\n})\n\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {\n button,\n buttonLoadingBox,\n ButtonStyleProps,\n composeClassNames,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps,\n ResponsiveProp,\n Width,\n} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ElementType, ForwardedRef, forwardRef, isValidElement, ReactNode} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {ButtonMode, ButtonTextAlign, ButtonTone, Props} from '../../types'\nimport {Box} from '../box'\nimport {Spinner} from '../spinner'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface ButtonProps\n extends ButtonStyleProps,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps {\n 'data-ui'?: string\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'href'?: string\n 'mode'?: ButtonMode\n 'icon'?: ElementType | ReactNode\n 'iconRight'?: ElementType | ReactNode\n /** @beta Do not use in production, as this might change.*/\n 'loading'?: boolean\n 'selected'?: boolean\n /** @deprecated Use `gap` instead. */\n 'space'?: ResponsiveProp<Space>\n 'textAlign'?: ButtonTextAlign\n 'muted'?: boolean\n 'target'?: string\n 'text'?: ReactNode\n 'textOverflow'?: TextProps['textOverflow']\n 'textWeight'?: TextProps['weight']\n 'tone'?: ButtonTone\n 'type'?: 'button' | 'reset' | 'submit'\n 'width'?: ResponsiveProp<Width>\n}\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: Props<ButtonProps, 'button'>,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n const {\n align = 'center',\n as: As = 'button',\n children,\n className,\n direction,\n disabled,\n display = 'inline-flex',\n flex,\n fontSize = 1,\n gap = props.space ?? props.padding ?? 3,\n gapX,\n gapY,\n href,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify = 'center',\n loading,\n mode = 'default',\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n radius = 2,\n selected,\n space = props.gap ?? props.space ?? props.padding ?? 3, // eslint-disable-line @typescript-eslint/no-unused-vars\n text,\n textAlign,\n textOverflow = 'ellipsis',\n textWeight = 'medium',\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n wrap,\n ...restProps\n } = props\n // const {button: buttonTheme} = useTheme_v2()\n\n return (\n <As\n data-ui=\"Button\"\n {...restProps}\n className={composeClassNames(className, button({display, flex, mode, radius, tone, width}))}\n data-disabled={loading || disabled ? '' : undefined}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n href={disabled ? undefined : href}\n ref={ref}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n align=\"center\"\n as=\"span\"\n className={buttonLoadingBox()}\n display=\"flex\"\n flex={1}\n justify=\"center\"\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box\n // align={align}\n as=\"span\"\n direction={direction}\n display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n justify={justify}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n // width=\"fill\"\n // wrap={wrap}\n >\n {IconComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Text\n align={textAlign}\n as=\"span\"\n flex=\"none\"\n muted={muted}\n size={fontSize}\n textOverflow={textOverflow}\n weight={textWeight}\n >\n {text}\n </Text>\n )}\n\n {IconRightComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Box>\n )}\n\n {children && (\n <Box\n // align={align}\n as=\"span\"\n // direction={direction}\n // display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n // justify={justify}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n // width=\"fill\"\n // wrap={wrap}\n >\n {children}\n </Box>\n )}\n </As>\n )\n})\n\nButton.displayName = 'ForwardRef(Button)'\n","import {useContext} from 'react'\n\nimport {CardContext} from './cardContext'\n\nexport function useCard() {\n return useContext(CardContext)\n}\n","import {card, CardStyleProps, composeClassNames} from '@sanity/ui/css'\nimport {createElement, ForwardedRef, forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {CardProvider} from './cardProvider'\nimport {useCard} from './useCard'\n\n/**\n * @public\n */\nexport interface CardProps extends BoxProps, CardStyleProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n disabled?: boolean\n href?: string\n pressed?: boolean\n selected?: boolean\n target?: string\n}\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: Props<CardProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n className,\n pressed,\n radius = 0,\n scheme: schemeProp,\n // selectable,\n selected,\n shadow,\n style,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n\n const parent = useCard()\n\n const context = {\n tone: parent?.tone ?? 'default',\n scheme: parent?.scheme ?? 'light',\n }\n\n const tone = toneProp === 'inherit' ? context.tone : toneProp\n const scheme = schemeProp === undefined ? context.scheme : schemeProp\n\n let node = (\n <Box\n data-ui=\"Card\"\n {...restProps}\n as={as}\n className={composeClassNames(\n className,\n card({\n scheme: scheme === context.scheme ? undefined : scheme,\n shadow,\n tone,\n }),\n )}\n data-checkered={checkered ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n radius={radius}\n ref={ref}\n style={style}\n />\n )\n\n if (scheme === context.scheme && tone === context.tone) {\n return node\n }\n\n node = (\n <CardProvider\n compat_provider={parent?.compat_provider}\n rendered={true}\n scheme={scheme}\n tone={tone ?? context.tone}\n >\n {node}\n </CardProvider>\n )\n\n if (parent?.compat_provider) {\n return createElement(parent.compat_provider, {\n children: node,\n scheme,\n tone: tone ?? context.tone,\n })\n }\n\n return node\n})\n\nCard.displayName = 'ForwardRef(Card)'\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {checkbox, checkboxInput, composeClassNames} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Props<CheckboxProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span className={composeClassNames(className, checkbox())} data-ui=\"Checkbox\" style={style}>\n <input\n {...restProps}\n checked={checked}\n className={composeClassNames(className, checkboxInput())}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </span>\n )\n})\n\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {code, composeClassNames, FontStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, lazy, Suspense} from 'react'\n\nimport {Props} from '../../types'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps extends Omit<FontStyleProps, 'align'> {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n}\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: Props<CodeProps, 'pre'>,\n ref: ForwardedRef<HTMLPreElement>,\n) {\n const {\n as: As = 'pre',\n children,\n className,\n language: languageProp,\n size = 2,\n weight,\n ...restProps\n } = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <As\n data-ui=\"Code\"\n {...restProps}\n className={composeClassNames(className, code({size, weight}))}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </As>\n )\n})\n\nCode.displayName = 'ForwardRef(Code)'\n","import {composeClassNames, container, ContainerStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface ContainerProps extends Omit<BoxProps, 'width'>, ContainerStyleProps {}\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: Props<ContainerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, className, sizing = 'border', width = 2, ...restProps} = props\n\n return (\n <Box\n data-ui=\"Container\"\n {...restProps}\n as={as}\n className={composeClassNames(className, container({width}))}\n ref={ref}\n sizing={sizing}\n />\n )\n})\n\nContainer.displayName = 'ForwardRef(Container)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface FlexProps extends Omit<BoxProps, 'display'> {\n htmlFor?: string\n}\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: Props<FlexProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, direction = 'row', ...restProps} = props\n\n return (\n <Box data-ui=\"Flex\" {...restProps} as={as} direction={direction} display=\"flex\" ref={ref} />\n )\n})\n\nFlex.displayName = 'ForwardRef(Flex)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface GridProps extends Omit<BoxProps, 'display'> {}\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: Props<GridProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children, ...restProps} = props\n\n return (\n <Box data-ui=\"Grid\" {...restProps} as={as} display=\"grid\" ref={ref}>\n {children}\n </Box>\n )\n})\n\nGrid.displayName = 'ForwardRef(Grid)'\n","import {\n composeClassNames,\n heading,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface HeadingProps extends HeadingStyleProps, TextOverflowStyleProps {}\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: Props<HeadingProps, 'div'>,\n ref: ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children,\n className,\n flex,\n muted = false,\n size = 2,\n textOverflow: textOverflowProp,\n weight,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Heading\"\n {...restProps}\n className={composeClassNames(\n className,\n heading({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nHeading.displayName = 'ForwardRef(Heading)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {Children, ForwardedRef, forwardRef, useMemo} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'align' | 'display' | 'justify'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: Props<InlineProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children: childrenProp, gap, gapX, gapY, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <Box maxWidth=\"fill\">{child}</Box>),\n [childrenProp],\n )\n\n return (\n <Box\n data-ui=\"Inline\"\n {...restProps}\n align=\"center\"\n as={as}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n wrap=\"wrap\"\n >\n {children}\n </Box>\n )\n})\n\nInline.displayName = 'ForwardRef(Inline)'\n","import {composeClassNames, kbd, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps extends BoxProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n}\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: Props<KBDProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'kbd',\n children,\n className,\n display = 'inline-block',\n fontSize = 0,\n padding = 1,\n radius = 2,\n ...restProps\n } = props\n\n return (\n <Box\n data-ui=\"KBD\"\n {...restProps}\n as={as}\n className={composeClassNames(className, kbd({radius}))}\n display={display}\n muted\n padding={padding}\n ref={ref}\n >\n <Text as=\"span\" muted size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n )\n})\n\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {_arrow, _arrowShape, _arrowStroke} from '@sanity/ui/css'\nimport {CSSProperties, ForwardedRef, forwardRef, ReactElement, useMemo} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {Props} from '../../types'\nimport {compileCommands, getRoundedCommands, Point} from './cmds'\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: Props<{width: number; height: number; radius?: number}, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, style, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const path = useMemo(() => {\n const points: Point[] = [\n {x: 0, y: 0},\n {x: radius, y: 0, radius},\n {x: center, y: h - 1, radius},\n {x: w - radius, y: 0, radius},\n {x: w, y: 0},\n ]\n\n const cmds = getRoundedCommands(points)\n\n return compileCommands(cmds)\n }, [center, h, radius, w])\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <div\n {...restProps}\n className={_arrow()}\n ref={ref}\n style={{...style, '--arrow-size': `${w}px`} as CSSProperties}\n >\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <path\n className={_arrowStroke()}\n d={strokePath}\n mask=\"url(#stroke-mask)\"\n strokeWidth={strokeWidth * 2}\n />\n <path className={_arrowShape()} d={fillPath} />\n </svg>\n </div>\n )\n})\n\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\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 (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","import {ReactNode} from 'react'\n\n/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: ReactNode\n condition: boolean\n wrapper: (children: ReactNode) => ReactNode\n}): ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {ForwardedRef, forwardRef, useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {useElementSize} from '../../hooks'\nimport {Props} from '../../types'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: Props<MediaQueryProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {ReactElement, ReactNode, useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useArrayProp, useMediaIndex} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + (zOffset[mediaIndex] ?? 0) : (zOffset[mediaIndex] ?? 0)\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps extends BoxProps {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps extends BoxProps {\n onActivate?: LayerProps['onActivate']\n}\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: Props<LayerChildrenProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n onActivate,\n onFocus,\n position = 'relative',\n style = EMPTY_RECORD,\n ...restProps\n } = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Box\n data-ui=\"Layer\"\n {...restProps}\n onFocus={handleFocus}\n position={position}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </Box>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: Props<LayerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createElement, ReactNode, ReactPortal} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {CardProvider, useCard} from '../../primitives'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): ReactPortal | null {\n const {children, __unstable_name: name} = props\n const card = useCard()\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(\n createElement(\n CardProvider,\n {\n rendered: true,\n tone: 'transparent', // card?.tone || 'default',\n scheme: card?.scheme || 'light',\n },\n children,\n ),\n portalElement,\n )\n}\n\nPortal.displayName = 'Portal'\n","import {ReactElement, ReactNode, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {composeClassNames, srOnly} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, ReactNode} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n children?: ReactNode\n}\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: Props<SrOnlyProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as: As = 'div', children, className, ...rest} = props\n\n return (\n <As\n data-ui=\"SrOnly\"\n {...rest}\n aria-hidden\n className={composeClassNames(className, srOnly())}\n ref={ref}\n >\n {children}\n </As>\n )\n})\n\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {\n ForwardedRef,\n forwardRef,\n ReactElement,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {Box, StackProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> extends Omit<StackProps, 'gap'> {\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: Props<VirtualListProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <Box insetTop={0} insetLeft={0} insetRight={0} key={0} position=\"absolute\">\n {renderItem(items[0])}\n </Box>,\n ]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <Box\n insetLeft={0}\n insetRight={0}\n key={key}\n position=\"absolute\"\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </Box>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Box\n // Root\n as={as}\n data-ui=\"VirtualList\"\n {...restProps}\n position=\"relative\"\n ref={ref}\n >\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Box>\n )\n})\n\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, Elements, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {popoverCard} from '@sanity/ui/css'\nimport {motion, MotionProps} from 'framer-motion'\nimport {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, PopoverMargins, Props} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps, CardProvider, useCard} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\n/** @internal */\nexport interface PopoverCardProps extends CardProps {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement: Placement\n referenceWidth?: number\n strategy: Strategy\n x: number | null\n y: number | null\n}\n\nconst MotionCard = motion.create(Card)\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: Props<PopoverCardProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n maxWidth,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n referenceWidth,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n // width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const card = useCard()\n\n const layer = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width: referenceWidth,\n zIndex: layer.zIndex ?? 100,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, layer.zIndex, originX, originY, referenceWidth, strategy, style, x, y],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <CardProvider tone={card?.tone ?? 'transparent'} scheme={card?.scheme ?? 'light'}>\n <MotionCard\n className={popoverCard()}\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-context-tone={card?.tone ?? 'transparent'}\n data-placement={placement}\n direction=\"column\"\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <Flex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n maxWidth={maxWidth}\n overflow={overflow}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n </CardProvider>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n memo,\n MutableRefObject,\n ReactElement,\n ReactNode,\n RefCallback,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {Placement, PopoverMargins, Props} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {CardProps} from '../card'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback} from './types'\n\n/** @public */\nexport interface PopoverProps extends CardProps, LayerProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: ReactElement<{ref: ForwardedRef<HTMLElement>}>\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n *\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: Props<PopoverProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n ): ReactElement {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n // zOffset: zOffsetProp = layer.popover.zOffset,\n zOffset: zOffsetProp = Z_OFFSETS.popover,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${availableWidth}px`\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n maxWidth={widthProp}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n // referenceWidth={matchReferenceWidth ? referenceWidthRef.current : width}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(\n element: ReactElement<{ref: ForwardedRef<HTMLElement>}>,\n): ForwardedRef<HTMLElement> {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {composeClassNames, radio} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Props<RadioProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div className={composeClassNames(className, radio())} data-ui=\"Radio\" style={style}>\n <input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>\n )\n})\n\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n _inputElement,\n ResponsiveProp,\n select,\n selectPresentation,\n SelectStyleProps,\n} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SelectProps extends SelectStyleProps {\n customValidity?: string\n readOnly?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: Props<SelectProps, 'select'>,\n forwardedRef: ForwardedRef<HTMLSelectElement>,\n) {\n const {\n border = true,\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 1,\n readOnly,\n space = 2,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div\n data-ui=\"Select\"\n className={select({border, fontSize, padding, radius, gap: gap ?? space})}\n data-icon-right=\"\"\n >\n <select\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n className={_inputElement()}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </select>\n <span className={selectPresentation()}>\n <Box as=\"span\" display=\"inline-block\" padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </Box>\n </span>\n </div>\n )\n})\n\nSelect.displayName = 'ForwardRef(Select)'\n","import {composeClassNames, ResponsiveProp, stack} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface StackProps\n extends Omit<\n BoxProps,\n 'align' | 'columns' | 'direction' | 'display' | 'gapX' | 'gapY' | 'justify'\n > {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: Props<StackProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, className, gap, space, ...restProps} = props\n\n return (\n <Box\n data-ui=\"Stack\"\n {...restProps}\n as={as}\n autoRows=\"min\"\n className={composeClassNames(className, stack())}\n display=\"grid\"\n gap={gap ?? space}\n ref={ref}\n />\n )\n})\n\nStack.displayName = 'ForwardRef(Stack)'\n","import {\n _switch,\n _switchElement,\n _switchPresentation,\n _switchThumb,\n _switchTrack,\n composeClassNames,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box} from '../box'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Props<SwitchProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <Box\n className={composeClassNames(className, _switch())}\n data-checked={checked ? '' : undefined}\n data-indeterminate={indeterminate ? '' : undefined}\n data-ui=\"Switch\"\n display=\"inline-block\"\n position=\"relative\"\n style={style}\n >\n <input\n {...restProps}\n checked={indeterminate !== true && checked}\n className={_switchElement()}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <span aria-hidden className={_switchPresentation()}>\n <span className={_switchTrack()} />\n <span className={_switchThumb()} />\n </span>\n </Box>\n )\n})\n\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {\n _inputElement,\n _inputPresentation,\n ResponsiveProp,\n textArea,\n TextAreaStyleProps,\n} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends TextAreaStyleProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n weight?: ThemeFontWeightKey\n}\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: Props<TextAreaProps, 'textarea'>,\n forwardedRef: ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n space = 3,\n // weight,\n // __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span\n className={textArea({border, fontSize, padding, radius, gap: gap ?? space})}\n data-ui=\"TextArea\"\n >\n <textarea {...restProps} className={_inputElement()} disabled={disabled} ref={ref} />\n <span className={_inputPresentation()} />\n </span>\n )\n})\n\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n _inputElement,\n _inputPresentation,\n composeClassNames,\n InputStyleProps,\n ResponsiveProp,\n textInput,\n} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n CSSProperties,\n ElementType,\n ForwardedRef,\n forwardRef,\n isValidElement,\n MouseEvent,\n ReactNode,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {isRecord} from '../../lib/isRecord'\nimport {Props} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<\n Props<ButtonProps, 'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps extends InputStyleProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n prefix?: ReactNode\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n suffix?: ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: CSSProperties = {\n backgroundColor: 'transparent',\n top: 0,\n right: 0,\n zIndex: 2,\n}\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: Props<TextInputProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize = 2,\n gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n space = 3,\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n width,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const paddingArray = useArrayProp(padding)\n\n const withClearButton = Boolean(clearButton)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n const clearButtonBoxPadding = useMemo(\n () =>\n paddingArray.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return typeof v === 'number' ? v - 2 : 0\n }) as Space[],\n [paddingArray],\n )\n\n const clearButtonPadding = useMemo(\n () =>\n paddingArray.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return typeof v === 'number' ? v - 1 : 0\n }) as Space[],\n [paddingArray],\n )\n\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (isRecord(clearButton) ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n\n return (\n <Box\n align=\"center\"\n as=\"span\"\n className={composeClassNames(\n className,\n textInput({\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n width,\n }),\n )}\n data-icon-left={IconComponent ? '' : undefined}\n data-icon-right={IconRightComponent ? '' : undefined}\n data-prefix={prefix ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n display=\"flex\"\n >\n {prefix && (\n <Box as=\"span\" className=\"text-input-prefix\" sizing=\"border\">\n <span>{prefix}</span>\n </Box>\n )}\n\n <Box as=\"span\" flex={1} position=\"relative\">\n <input\n // data-as=\"input\"\n {...restProps}\n className={_inputElement()}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n <Box\n as=\"span\"\n // $unstableDisableFocusRing={__unstable_disableFocusRing}\n className={_inputPresentation()}\n data-disable-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n position=\"absolute\"\n >\n {IconComponent && (\n <Box as=\"span\" padding={padding} position=\"absolute\" style={{top: 0, left: 0}}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </Box>\n )}\n\n {!withClearButton && IconRightComponent && (\n <Box as=\"span\" padding={padding} position=\"absolute\" style={{top: 0, right: 0}}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </Box>\n )}\n </Box>\n\n {!disabled && !readOnly && clearButton && (\n <Box\n as=\"span\"\n padding={clearButtonBoxPadding}\n position=\"absolute\"\n style={CLEAR_BUTTON_BOX_STYLE}\n // tone={customValidity ? 'critical' : 'inherit'}\n >\n <Button\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n display=\"block\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </Box>\n )}\n </Box>\n\n {suffix && (\n <Box as=\"span\" className=\"text-input-suffix\" sizing=\"border\">\n <span>{suffix}</span>\n </Box>\n )}\n </Box>\n )\n})\n\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {tooltipCard} from '@sanity/ui/css'\nimport {motion} from 'framer-motion'\nimport {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Props} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = motion.create(Card)\n\n/* @internal */\nexport interface TooltipCardProps extends CardProps {\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement?: Placement\n}\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: Omit<\n Props<TooltipCardProps, 'div'>,\n 'onDrag' | 'onDragEnd' | 'onDragStart' | 'onAnimationStart'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n tone,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...restProps}\n data-animate={animate ? '' : undefined}\n className={tooltipCard()}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n tone={tone}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(props: TooltipDelayGroupProviderProps): ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {composeClassNames, RadiusStyleProps, ShadowStyleProps, tooltip} from '@sanity/ui/css'\nimport type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport type {Placement, Props} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'>, RadiusStyleProps, ShadowStyleProps {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: ReactElement<Props>\n content?: ReactNode\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n disabled?: boolean\n fallbackPlacements?: Placement[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: Props<TooltipProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n className,\n content,\n delay,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 3,\n scheme,\n shadow = 2,\n zOffset = Z_OFFSETS.tooltip,\n tone,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const node = (\n <Layer\n data-ui=\"Tooltip\"\n // {...restProps}\n className={composeClassNames(className, tooltip())}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n tone={tone}\n >\n {content}\n </TooltipCard>\n </Layer>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {node}\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\n\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {GapStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Box, KBD} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps extends GapStyleProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n keys?: string[]\n}\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: Props<HotkeysProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {fontSize, gap, gapX, gapY, keys, padding, radius, space = 0.5, ...restProps} = props\n\n if (!keys || keys.length === 0) {\n return undefined\n }\n\n return (\n <Box\n as=\"kbd\"\n data-ui=\"Hotkeys\"\n {...restProps}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n >\n {keys.map((key, i) => (\n <KBD fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </KBD>\n ))}\n </Box>\n )\n})\n\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {MouseEvent as ReactMouseEvent} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: ReactMouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: ReactMouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: ReactMouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: ReactMouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {\n composeClassNames,\n GapStyleProps,\n menu,\n PaddingStyleProps,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends PaddingStyleProps, Pick<GapStyleProps, 'gap'> {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n /** @deprecated Use `gap` property instead. */\n 'space'?: ResponsiveProp<Space>\n 'aria-labelledby'?: string\n // 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: Props<MenuProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n gap,\n // onBlurCapture,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({\n onKeyDown,\n originElement,\n shouldFocus,\n rootElementRef: ref,\n })\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Box\n data-ui=\"Menu\"\n {...restProps}\n className={composeClassNames(className, menu())}\n onKeyDown={handleKeyDown}\n overflow=\"auto\"\n outline=\"none\"\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack gap={gap ?? space}>{children}</Stack>\n </Box>\n </MenuContext.Provider>\n )\n})\n\nMenu.displayName = 'ForwardRef(Menu)'\n","import {composeClassNames, menuDivider} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface MenuDividerProps {}\n\n/**\n * @public\n */\nexport const MenuDivider = forwardRef(function MenuDivider(\n props: Props<MenuDividerProps, 'div'>,\n ref: ForwardedRef<HTMLHRElement>,\n) {\n const {className, ...restProps} = props\n\n return <hr {...restProps} className={composeClassNames(className, menuDivider())} ref={ref} />\n})\n\nMenuDivider.displayName = 'MenuDivider'\n","import {_selectable, composeClassNames, SelectableStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props, SelectableTone} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/** @internal */\nexport interface SelectableProps extends BoxProps, SelectableStyleProps {\n disabled?: boolean\n href?: string\n tone?: SelectableTone\n type?: 'button'\n}\n\n/** @internal */\nexport const Selectable = forwardRef(function Selectable(\n props: Props<SelectableProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, radius, tone, ...restProps} = props\n\n return (\n <Box\n {...restProps}\n className={composeClassNames(className, _selectable({radius, tone}))}\n ref={ref}\n />\n )\n})\n\nSelectable.displayName = 'ForwardRef(Selectable)'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {GapStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n isValidElement,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props, Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps extends GapStyleProps {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: ResponsiveProp<Space>\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text: ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(props: Props<MenuGroupProps, 'div'>): ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n gap,\n gapX,\n gapY,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n // data-as={as}\n data-ui=\"MenuGroup\"\n // forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n as={as}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n radius={radius}\n ref={setRootElement}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={gap ?? space} gapX={gapX} gapY={gapY} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {GapStyleProps, PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n ForwardedRef,\n forwardRef,\n isValidElement,\n MouseEvent,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props, SelectableTone} from '../../types'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends GapStyleProps, PaddingStyleProps, RadiusStyleProps {\n disabled?: boolean\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n pressed?: boolean\n selected?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text?: ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: Props<MenuItemProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n gap,\n gapX,\n gapY,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\n as={as}\n data-pressed={pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n radius={radius}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={gap ?? space} gapX={gapX} gapY={gapY} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys gap={0.5} keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />\n )}\n\n {IconRightComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Button} from '../../primitives'\nimport {ButtonTone, Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the corresponding `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: ElementType | ReactNode\n 'focused'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'label'?: ReactNode\n 'padding'?: ResponsiveProp<Space>\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: Props<TabProps, 'button'>,\n forwardedRef: ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <Button\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n\nTab.displayName = 'ForwardRef(Tab)'\n","import {\n Children,\n cloneElement,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n ReactElement,\n useCallback,\n useState,\n} from 'react'\n\nimport {Inline, InlineProps} from '../../primitives'\nimport {Props} from '../../types'\nimport {TabProps} from './tab'\n\n/**\n * @public\n */\nexport type TabListChild = ReactElement<Props<TabProps, 'button'>> | null | undefined | false\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: TabListChild[]\n}\n\nfunction _isReactElement(node: unknown): node is ReactElement<Props<TabProps, 'button'>> {\n return Boolean(node)\n}\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: Props<TabListProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = Children.toArray(childrenProp).filter(_isReactElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <Inline data-ui=\"TabList\" {...restProps} onKeyDown={handleKeyDown} ref={ref} role=\"tablist\">\n {tabs}\n </Inline>\n )\n})\n\nTabList.displayName = 'ForwardRef(TabList)'\n"],"names":["getGlobalScope","globalThis","window","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","Symbol","for","document","createContext","CardContext","CardProvider","props","$","_c","children","rendered","t0","tone","scheme","undefined","t1","t2","context","t3","ThemeContext","ThemeProvider","parentTheme","useContext","rootTheme","theme","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","t4","ThemeColorProvider","displayName","useRootTheme","value","root","useTheme","useStyledTheme","useTheme_v2","getTheme_v2","createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","type","visualDuration","bounce","Z_OFFSETS","dialog","popover","tooltip","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_getArrayProp","val","defaultVal","Array","isArray","_isScrollable","el","Element","style","getComputedStyle","overflowX","includes","overflowY","useArrayProp","JSON","stringify","setCache","useState","cachedVal","cachedHash","hash","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","Boolean","handleEvent","evt_0","addEventListener","removeEventListener","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","height","blockSize","content","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","length","useElementSize","size","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","media","matchMedia","matches","useSyncExternalStore","_getMediaQuery","index","_createMediaStore","mediaLen","sizes","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","Box","forwardRef","align","autoCols","autoFlow","autoRows","borderBottom","borderLeft","borderRight","borderTop","className","column","columnEnd","columnStart","columns","direction","flex","gap","gapX","gapY","inset","insetBottom","insetLeft","insetRight","insetTop","justify","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","maxWidth","muted","overflow","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","pointerEvents","position","radius","restProps","row","rowEnd","rowStart","rows","t5","t6","wrap","as","display","margin","minWidth","padding","sizing","As","t7","composeClassNames","box","t8","Label","accent","textOverflowProp","textOverflow","weight","label","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","initials","onImageLoadError","src","title","color","arrowPosition","status","sizeProp","ReactIs","isValidElementType","setArrowPosition","imageError","setImageError","raf","requestAnimationFrame","cancelAnimationFrame","handleImageError","t9","map","initialsSize","t10","t11","avatar","t12","t13","avatarArrow","t14","t15","avatarInitials","t16","t17","t18","avatarImage","t19","s","AvatarCounter","count","fontSize","avatarCounter","AvatarStack","childrenProp","maxLength","maxLengthProp","Children","toArray","filter","isValidElement","Math","max","len","visibleCount","extraCount","visibleChildren","slice","T0","avatarStack","child","childIndex","cloneElement","String","Text","text","Badge","textAlign","mode","_deprecated_mode","badge","AnimatedSpinnerIcon","animatedSpinnerIcon","Spinner","spinner","Button","disabled","space","href","icon","IconComponent","iconRight","IconRightComponent","loading","selected","textWeight","button","buttonLoadingBox","useCard","Card","pressed","schemeProp","shadow","__unstable_checkered","__unstable_focusRing","checkered","focusRing","toneProp","parent","compat_provider","createElement","Checkbox","forwardedRef","checked","indeterminate","readOnly","useRef","useImperativeHandle","checkbox","checkboxInput","LazyRefractor","lazy","Code","languageProp","language","code","Container","container","Flex","Grid","Heading","heading","Inline","KBD","kbd","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","min","moveTowardsLength","movingPoint","targetPoint","amount","distance","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","i","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","join","Arrow","h","w","strokeWidth","outline","center","path","strokePath","fillPath","_arrow","_arrowStroke","_arrowShape","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","keys","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","default","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","SrOnly","rest","srOnly","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","floor","toIndex","ceil","item","_itemIndex","itemIndex","top","wrapperStyle","_scrollEl","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","MotionCard","motion","create","PopoverCard","memo","animate","arrow","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","layer","rootStyle","arrowStyle","popoverCard","t20","t21","ViewportOverlay","Popover","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","preventOverflow","referenceBoundary","referenceElement","widthProp","updateRef","referenceWidthRef","middleware","useMemo","flip","offset","mainAxis","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","Radio","radio","Select","select","_inputElement","selectPresentation","Stack","stack","Switch","_switch","_switchElement","_switchPresentation","_switchTrack","_switchThumb","TextArea","textArea","_inputPresentation","CLEAR_BUTTON_BOX_STYLE","backgroundColor","TextInput","__unstable_disableFocusRing","clearButton","onClear","prefix","suffix","t22","t23","t24","_width","t25","t26","paddingArray","withClearButton","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","t27","t28","CloseIcon","t29","t30","t31","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","tooltipCard","TooltipDelayGroupContext","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","Tooltip","fallbackPlacementsProp","portalProp","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","useId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","from","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","menu","MenuDivider","menuDivider","Selectable","_selectable","useMenu","MenuGroup","menuProps","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","setRef","Tab","focused","id","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
1
+ {"version":3,"file":"_visual-editing.mjs","sources":["../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/_compat/theme/themeContext.ts","../../src/core/_compat/theme/themeProvider.tsx","../../src/core/_compat/theme/useRootTheme.ts","../../src/core/_compat/theme/themeColorProvider.tsx","../../src/core/_compat/theme/useTheme.ts","../../src/core/_compat/types.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/helpers/props.ts","../../src/core/helpers/scroll.ts","../../src/core/hooks/useArrayProp.ts","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/primitives/box/box.tsx","../../src/core/primitives/label/label.tsx","../../src/core/primitives/avatar/avatar.tsx","../../src/core/primitives/avatar/avatarCounter.tsx","../../src/core/primitives/avatar/avatarStack.tsx","../../src/core/primitives/text/text.tsx","../../src/core/primitives/badge/badge.tsx","../../src/core/primitives/spinner/animatedSpinnerIcon.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/primitives/button/button.tsx","../../src/core/primitives/card/card.tsx","../../src/core/primitives/checkbox/checkbox.tsx","../../src/core/primitives/code/code.tsx","../../src/core/primitives/container/container.tsx","../../src/core/primitives/flex/flex.tsx","../../src/core/primitives/grid/grid.tsx","../../src/core/primitives/heading/heading.tsx","../../src/core/primitives/inline/inline.tsx","../../src/core/primitives/kbd/kbd.tsx","../../src/core/middleware/origin.ts","../../src/core/utils/arrow/cmds.ts","../../src/core/utils/arrow/arrow.tsx","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../../src/core/lib/isRecord.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../../src/core/utils/elementQuery/helpers.ts","../../src/core/utils/elementQuery/elementQuery.tsx","../../src/core/utils/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/useLayer.ts","../../src/core/utils/layer/layer.tsx","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.ts","../../src/core/utils/portal/portalProvider.tsx","../../src/core/utils/srOnly/srOnly.tsx","../../src/core/utils/virtualList/virtualList.tsx","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/popover/helpers.ts","../../src/core/primitives/popover/popoverCard.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/radio/radio.tsx","../../src/core/primitives/select/select.tsx","../../src/core/primitives/stack/stack.tsx","../../src/core/primitives/switch/switch.tsx","../../src/core/primitives/textArea/textArea.tsx","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useDelayedState.ts","../../src/core/utils/getElementRef.ts","../../src/core/primitives/tooltip/constants.ts","../../src/core/primitives/tooltip/tooltipCard.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.tsx","../../src/core/primitives/_selectable/selectable.tsx","../../src/core/components/menu/useMenu.ts","../../src/core/components/menu/menuGroup.tsx","../../src/core/components/menu/menuItem.tsx","../../src/core/components/tab/tab.tsx","../../src/core/components/tab/tabList.tsx"],"sourcesContent":["/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {ReactElement, ReactNode, useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ReactElement, ReactNode} from 'react'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): ReactElement {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {getTheme_v2, Theme, Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _getArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useState} from 'react'\n\nimport {_getArrayProp} from '../helpers'\n\n/** @beta */\n// export type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\n// export function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\nexport function useArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, ElementSize} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {\n box,\n BoxStyleProps,\n composeClassNames,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends BoxStyleProps,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps {}\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: Props<BoxProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n align,\n as: As = 'div',\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\n column,\n columnStart,\n columnEnd,\n columns,\n direction,\n display = 'block',\n flex,\n gap,\n gapX,\n gapY,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justify,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n muted,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n sizing = 'border',\n width,\n wrap,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Box\"\n {...restProps}\n className={composeClassNames(\n className,\n box({\n align,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n column,\n columnStart,\n columnEnd,\n columns,\n direction,\n display,\n flex,\n gap,\n gapX,\n gapY,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justify,\n overflow,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n muted,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n sizing,\n width,\n wrap,\n }),\n )}\n ref={ref}\n >\n {props.children}\n </As>\n )\n})\n\nBox.displayName = 'ForwardRef(Box)'\n","import {\n composeClassNames,\n FontStyleProps,\n label,\n LabelSize,\n ResponsiveProp,\n textOverflow,\n TextOverflowStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface LabelProps extends FontStyleProps, TextOverflowStyleProps {\n accent?: boolean\n htmlFor?: string\n muted?: boolean\n size?: ResponsiveProp<LabelSize>\n}\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: Props<LabelProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n as: As = 'div',\n children,\n className,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight = 'medium',\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Label\"\n {...restProps}\n className={composeClassNames(\n className,\n label({\n accent,\n align,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nLabel.displayName = 'ForwardRef(Label)'\n","import {\n avatar,\n avatarArrow,\n avatarImage,\n avatarInitials,\n composeClassNames,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {AvatarSize, ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\n\nimport {useArrayProp} from '../../hooks'\nimport {AvatarPosition, AvatarStatus, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: ResponsiveProp<AvatarSize>\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: Props<AvatarProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n className,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const As = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageError, setImageError] = useState<boolean>(false)\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageError(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageError(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <As\n // data-as={typeof As === 'string' ? As : undefined}\n data-hide-inner-stroke={__unstable_hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n aria-label={title}\n className={composeClassNames(className, avatar({color, size: sizeProp}))}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n data-status={status}\n ref={ref}\n title={title}\n >\n <span className={avatarArrow()}>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </span>\n\n <Box\n align=\"center\"\n as=\"span\"\n className={avatarInitials()}\n display=\"flex\"\n justify=\"center\"\n position=\"absolute\"\n inset={0}\n >\n <Label\n align=\"center\"\n as=\"span\"\n size={initialsSize}\n style={{color: 'inherit'}}\n weight=\"medium\"\n >\n {initials}\n </Label>\n </Box>\n\n {src && (\n <Box className={avatarImage()} inset={0} position=\"absolute\">\n <img alt={initials} onError={handleImageError} src={src} />\n <span />\n </Box>\n )}\n </As>\n )\n})\n\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {avatarCounter, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {AvatarSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useMemo} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Label} from '../label'\n\n/**\n * @public\n */\nexport interface AvatarCounterProps\n extends Omit<BoxProps, 'align' | 'className' | 'display' | 'justify' | 'paddingX' | 'sizing'> {\n count: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: Props<AvatarCounterProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, count, size: sizeProp = 1, ...restProps} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Box\n data-ui=\"AvatarCounter\"\n {...restProps}\n align=\"center\"\n className={composeClassNames(className, avatarCounter({size}))}\n display=\"flex\"\n justify=\"center\"\n paddingX={2}\n ref={ref}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n})\n\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {avatarStack, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {AvatarSize} from '@sanity/ui/theme'\nimport {Children, cloneElement, ForwardedRef, forwardRef, isValidElement, ReactElement} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {AvatarProps} from './avatar'\nimport {AvatarCounter} from './avatarCounter'\n\n/**\n * @public\n */\nexport type AvatarStackChild = ReactElement<Props<AvatarProps, 'div'>> | null | undefined | false\n\n/**\n * @public\n */\nexport interface AvatarStackProps extends Omit<BoxProps, 'align' | 'className' | 'display'> {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: Props<AvatarStackProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n Props<AvatarProps, 'div'>\n >[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Box\n data-ui=\"AvatarStack\"\n {...restProps}\n align=\"center\"\n className={composeClassNames(className, avatarStack({size}))}\n display=\"flex\"\n ref={ref}\n >\n {len === 0 && (\n <Box flex=\"none\">\n <AvatarCounter count={len} size={size} />\n </Box>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <Box flex=\"none\">\n <AvatarCounter count={extraCount} size={size} />\n </Box>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <Box flex=\"none\" key={String(childIndex)}>\n {cloneElement(child, {size})}\n </Box>\n ))}\n </Box>\n )\n})\n\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {\n composeClassNames,\n text,\n textOverflow,\n TextOverflowStyleProps,\n TextStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TextProps extends TextStyleProps, TextOverflowStyleProps {\n htmlFor?: string\n}\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: Props<TextProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children,\n className,\n flex,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Text\"\n {...restProps}\n ref={ref}\n className={composeClassNames(\n className,\n text({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nText.displayName = 'ForwardRef(Text)'\n","import {badge, composeClassNames, RadiusStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {BadgeMode, BadgeTone, Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, RadiusStyleProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n textAlign?: TextProps['align']\n tone?: BadgeTone\n}\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: Props<BadgeProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 2,\n textAlign,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Box\n data-ui=\"Badge\"\n {...restProps}\n className={composeClassNames(\n className,\n badge({\n radius,\n tone,\n }),\n )}\n display={display}\n padding={padding}\n ref={ref}\n >\n <Text align={textAlign} size={fontSize}>\n {children}\n </Text>\n </Box>\n )\n})\n\nBadge.displayName = 'ForwardRef(Badge)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {animatedSpinnerIcon, composeClassNames} from '@sanity/ui/css'\nimport {ReactElement, SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(props: SVGProps<SVGSVGElement>): ReactElement {\n const {className, ...restProps} = props\n\n return (\n <SpinnerIcon\n {...restProps}\n data-sanity-icon=\"animated-spinner\"\n className={composeClassNames(className, animatedSpinnerIcon())}\n />\n )\n}\n","import {ResponsiveProp, spinner} from '@sanity/ui/css'\nimport {FontTextSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Text} from '../text'\nimport {AnimatedSpinnerIcon} from './animatedSpinnerIcon'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: Props<SpinnerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Text data-ui=\"Spinner\" {...props} className={spinner()} ref={ref}>\n <AnimatedSpinnerIcon />\n </Text>\n )\n})\n\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {\n button,\n buttonLoadingBox,\n ButtonStyleProps,\n composeClassNames,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps,\n ResponsiveProp,\n Width,\n} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ElementType, ForwardedRef, forwardRef, isValidElement, ReactNode} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {useTheme_v2} from '../../_compat'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, Props} from '../../types'\nimport {Box} from '../box'\nimport {Spinner} from '../spinner'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface ButtonProps\n extends ButtonStyleProps,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps {\n 'data-ui'?: string\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'href'?: string\n 'mode'?: ButtonMode\n 'icon'?: ElementType | ReactNode\n 'iconRight'?: ElementType | ReactNode\n /** @beta Do not use in production, as this might change.*/\n 'loading'?: boolean\n 'selected'?: boolean\n /** @deprecated Use `gap` instead. */\n 'space'?: ResponsiveProp<Space>\n 'textAlign'?: ButtonTextAlign\n 'muted'?: boolean\n 'target'?: string\n 'text'?: ReactNode\n 'textOverflow'?: TextProps['textOverflow']\n 'textWeight'?: TextProps['weight']\n 'tone'?: ButtonTone\n 'type'?: 'button' | 'reset' | 'submit'\n 'width'?: ResponsiveProp<Width>\n}\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: Props<ButtonProps, 'button'>,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n const {\n align = 'center',\n as: As = 'button',\n children,\n className,\n direction,\n disabled,\n display = 'inline-flex',\n flex,\n fontSize = 1,\n gap = props.space ?? props.padding ?? 3,\n gapX,\n gapY,\n href,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify = 'center',\n loading,\n mode = 'default',\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n radius = 2,\n selected,\n space = props.gap ?? props.space ?? props.padding ?? 3, // eslint-disable-line @typescript-eslint/no-unused-vars\n text,\n textAlign,\n textOverflow = 'ellipsis',\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n wrap,\n ...restProps\n } = props\n const {button: buttonTheme} = useTheme_v2()\n\n return (\n <As\n data-ui=\"Button\"\n {...restProps}\n className={composeClassNames(className, button({display, flex, mode, radius, tone, width}))}\n data-disabled={loading || disabled ? '' : undefined}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n href={disabled ? undefined : href}\n ref={ref}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n align={align}\n as=\"span\"\n className={buttonLoadingBox()}\n display=\"flex\"\n flex={1}\n justify={justify}\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box\n as=\"span\"\n direction={direction}\n display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n justify={justify}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n width=\"fill\"\n wrap={wrap}\n >\n {IconComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Text\n align={textAlign}\n as=\"span\"\n flex=\"none\"\n muted={muted}\n size={fontSize}\n textOverflow={textOverflow}\n weight={textWeight ?? buttonTheme.textWeight}\n >\n {text}\n </Text>\n )}\n\n {IconRightComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Box>\n )}\n\n {children && (\n <Box\n as=\"span\"\n direction={direction}\n display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n width=\"fill\"\n wrap={wrap}\n >\n {children}\n </Box>\n )}\n </As>\n )\n})\n\nButton.displayName = 'ForwardRef(Button)'\n","import {card, CardStyleProps, composeClassNames} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {ThemeColorProvider, useRootTheme} from '../../_compat'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface CardProps extends BoxProps, CardStyleProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n disabled?: boolean\n href?: string\n pressed?: boolean\n selected?: boolean\n target?: string\n}\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: Props<CardProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n className,\n pressed,\n radius = 0,\n scheme: schemeProp,\n selectable,\n selected,\n shadow,\n style,\n tone: toneProp,\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n\n const rootTheme = useRootTheme()\n\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n const scheme = schemeProp === undefined ? rootTheme.scheme : schemeProp\n\n const node = (\n <Box\n // data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Card\"\n {...restProps}\n as={as}\n className={composeClassNames(\n className,\n card({\n scheme: scheme === rootTheme.scheme ? undefined : scheme,\n shadow,\n tone: tone === rootTheme.tone ? undefined : tone,\n }),\n )}\n data-checkered={checkered ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selectable={selectable ? '' : undefined}\n data-selected={selected ? '' : undefined}\n radius={radius}\n ref={ref}\n // selected={selected}\n style={style}\n />\n )\n\n if (scheme === rootTheme.scheme && tone === rootTheme.tone) {\n return node\n }\n\n return (\n // Render a theme provider around the card if the scheme or tone differs from the root theme.\n // This is needed for backwards compatibility with the legacy theme API.\n <ThemeColorProvider scheme={scheme} tone={tone ?? rootTheme.tone}>\n {node}\n </ThemeColorProvider>\n )\n})\n\nCard.displayName = 'ForwardRef(Card)'\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {checkbox, checkboxInput, composeClassNames} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Props<CheckboxProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span className={composeClassNames(className, checkbox())} data-ui=\"Checkbox\" style={style}>\n <input\n {...restProps}\n checked={checked}\n className={composeClassNames(className, checkboxInput())}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </span>\n )\n})\n\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {code, composeClassNames, FontStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, lazy, Suspense} from 'react'\n\nimport {Props} from '../../types'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps extends Omit<FontStyleProps, 'align'> {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n}\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: Props<CodeProps, 'pre'>,\n ref: ForwardedRef<HTMLPreElement>,\n) {\n const {\n as: As = 'pre',\n children,\n className,\n language: languageProp,\n size = 1,\n weight,\n ...restProps\n } = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <As\n data-ui=\"Code\"\n {...restProps}\n className={composeClassNames(className, code({size, weight}))}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </As>\n )\n})\n\nCode.displayName = 'ForwardRef(Code)'\n","import {composeClassNames, container, ContainerStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface ContainerProps extends Omit<BoxProps, 'width'>, ContainerStyleProps {}\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: Props<ContainerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, className, sizing = 'border', width = 2, ...restProps} = props\n\n return (\n <Box\n data-ui=\"Container\"\n {...restProps}\n as={as}\n className={composeClassNames(className, container({width}))}\n ref={ref}\n sizing={sizing}\n />\n )\n})\n\nContainer.displayName = 'ForwardRef(Container)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface FlexProps extends Omit<BoxProps, 'display'> {\n htmlFor?: string\n}\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: Props<FlexProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, direction = 'row', ...restProps} = props\n\n return (\n <Box data-ui=\"Flex\" {...restProps} as={as} direction={direction} display=\"flex\" ref={ref} />\n )\n})\n\nFlex.displayName = 'ForwardRef(Flex)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface GridProps extends Omit<BoxProps, 'display'> {}\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: Props<GridProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children, ...restProps} = props\n\n return (\n <Box data-ui=\"Grid\" {...restProps} as={as} display=\"grid\" ref={ref}>\n {children}\n </Box>\n )\n})\n\nGrid.displayName = 'ForwardRef(Grid)'\n","import {\n composeClassNames,\n heading,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface HeadingProps extends HeadingStyleProps, TextOverflowStyleProps {}\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: Props<HeadingProps, 'div'>,\n ref: ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children,\n className,\n flex,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Heading\"\n {...restProps}\n className={composeClassNames(\n className,\n heading({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nHeading.displayName = 'ForwardRef(Heading)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {Children, ForwardedRef, forwardRef, useMemo} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'align' | 'display' | 'justify'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: Props<InlineProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children: childrenProp, gap, gapX, gapY, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <Box maxWidth=\"fill\">{child}</Box>),\n [childrenProp],\n )\n\n return (\n <Box\n data-ui=\"Inline\"\n {...restProps}\n align=\"center\"\n as={as}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n wrap=\"wrap\"\n >\n {children}\n </Box>\n )\n})\n\nInline.displayName = 'ForwardRef(Inline)'\n","import {composeClassNames, kbd, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps extends BoxProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n}\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: Props<KBDProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'kbd',\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n padding = 1,\n radius = 2,\n ...restProps\n } = props\n\n return (\n <Box\n data-ui=\"KBD\"\n {...restProps}\n as={as}\n className={composeClassNames(className, kbd({radius}))}\n display={display}\n muted\n padding={padding}\n ref={ref}\n >\n <Text as=\"span\" muted size={fontSize}>\n {children}\n </Text>\n </Box>\n )\n})\n\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {_arrow, _arrowShape, _arrowStroke} from '@sanity/ui/css'\nimport {CSSProperties, ForwardedRef, forwardRef, ReactElement, useMemo} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {Props} from '../../types'\nimport {compileCommands, getRoundedCommands, Point} from './cmds'\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: Props<{width: number; height: number; radius?: number}, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, style, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const path = useMemo(() => {\n const points: Point[] = [\n {x: 0, y: 0},\n {x: radius, y: 0, radius},\n {x: center, y: h - 1, radius},\n {x: w - radius, y: 0, radius},\n {x: w, y: 0},\n ]\n\n const cmds = getRoundedCommands(points)\n\n return compileCommands(cmds)\n }, [center, h, radius, w])\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <div\n {...restProps}\n className={_arrow()}\n ref={ref}\n style={{...style, '--arrow-size': `${w}px`} as CSSProperties}\n >\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <path\n className={_arrowStroke()}\n d={strokePath}\n mask=\"url(#stroke-mask)\"\n strokeWidth={strokeWidth * 2}\n />\n <path className={_arrowShape()} d={fillPath} />\n </svg>\n </div>\n )\n})\n\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\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 (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","import {ReactNode} from 'react'\n\n/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: ReactNode\n condition: boolean\n wrapper: (children: ReactNode) => ReactNode\n}): ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {ForwardedRef, forwardRef, useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {useElementSize} from '../../hooks'\nimport {Props} from '../../types'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: Props<MediaQueryProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {ReactElement, ReactNode, useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useArrayProp, useMediaIndex} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps extends BoxProps {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps extends BoxProps {\n onActivate?: LayerProps['onActivate']\n}\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: Props<LayerChildrenProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n onActivate,\n onFocus,\n position = 'relative',\n style = EMPTY_RECORD,\n ...restProps\n } = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Box\n data-ui=\"Layer\"\n {...restProps}\n onFocus={handleFocus}\n position={position}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </Box>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: Props<LayerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {ReactNode, ReactPortal} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {ReactElement, ReactNode, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {composeClassNames, srOnly} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, ReactNode} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n children?: ReactNode\n}\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: Props<SrOnlyProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as: As = 'div', children, className, ...rest} = props\n\n return (\n <As\n data-ui=\"SrOnly\"\n {...rest}\n aria-hidden\n className={composeClassNames(className, srOnly())}\n ref={ref}\n >\n {children}\n </As>\n )\n})\n\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {\n ForwardedRef,\n forwardRef,\n ReactElement,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {Box, StackProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> extends Omit<StackProps, 'gap'> {\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: Props<VirtualListProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <Box insetTop={0} insetLeft={0} key={0} position=\"absolute\">\n {renderItem(items[0])}\n </Box>,\n ]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <Box\n insetLeft={0}\n key={key}\n position=\"absolute\"\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </Box>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Box\n // Root\n as={as}\n data-ui=\"VirtualList\"\n {...restProps}\n position=\"relative\"\n ref={ref}\n >\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Box>\n )\n})\n\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, Elements, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {ContainerWidth} from '@sanity/ui/theme'\n\nimport {DEFAULT_POPOVER_PADDING} from './constants'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: (ContainerWidth | 'fill' | null | undefined)[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {motion, MotionProps} from 'framer-motion'\nimport {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, PopoverMargins, Props} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\n/** @internal */\nexport interface PopoverCardProps extends CardProps {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement: Placement\n referenceWidth?: number\n strategy: Strategy\n x: number | null\n y: number | null\n}\n\nconst MotionCard = motion.create(Card)\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: Props<PopoverCardProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n referenceWidth,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n // width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width: referenceWidth,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, referenceWidth, strategy, style, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n className=\"popover-card\"\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n direction=\"column\"\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n memo,\n MutableRefObject,\n ReactElement,\n ReactNode,\n RefCallback,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {Placement, PopoverMargins, Props} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {CardProps} from '../card'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback} from './types'\n\n/** @public */\nexport interface PopoverProps extends CardProps, LayerProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: ReactElement<{ref: ForwardedRef<HTMLElement>}>\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: Props<PopoverProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n ): ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n // const padding = useArrayProp(paddingProp)\n // const radius = useArrayProp(radiusProp)\n // const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n referenceWidth={matchReferenceWidth ? referenceWidthRef.current : width}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(\n element: ReactElement<{ref: ForwardedRef<HTMLElement>}>,\n): ForwardedRef<HTMLElement> {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {composeClassNames, radio} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Props<RadioProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div className={composeClassNames(className, radio())} data-ui=\"Radio\" style={style}>\n <input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>\n )\n})\n\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n _inputElement,\n ResponsiveProp,\n select,\n selectPresentation,\n SelectStyleProps,\n} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SelectProps extends SelectStyleProps {\n customValidity?: string\n readOnly?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: Props<SelectProps, 'select'>,\n forwardedRef: ForwardedRef<HTMLSelectElement>,\n) {\n const {\n border = true,\n children,\n customValidity,\n disabled,\n fontSize = 1,\n gap,\n padding = 2,\n radius = 2,\n readOnly,\n space = 2,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div\n data-ui=\"Select\"\n className={select({border, fontSize, padding, radius, gap: gap ?? space})}\n data-icon-right=\"\"\n >\n <select\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n className={_inputElement()}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </select>\n <span className={selectPresentation()}>\n <Box as=\"span\" display=\"inline-block\" padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </Box>\n </span>\n </div>\n )\n})\n\nSelect.displayName = 'ForwardRef(Select)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface StackProps extends Omit<BoxProps, 'direction' | 'display' | 'gapX' | 'gapY'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: Props<StackProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, gap, space, ...restProps} = props\n\n return (\n <Box\n data-ui=\"Stack\"\n {...restProps}\n as={as}\n direction=\"column\"\n display=\"flex\"\n gap={gap ?? space}\n ref={ref}\n />\n )\n})\n\nStack.displayName = 'ForwardRef(Stack)'\n","import {\n _switch,\n _switchElement,\n _switchPresentation,\n _switchThumb,\n _switchTrack,\n composeClassNames,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box} from '../box'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Props<SwitchProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <Box\n className={composeClassNames(className, _switch())}\n data-checked={checked ? '' : undefined}\n data-indeterminate={indeterminate ? '' : undefined}\n data-ui=\"Switch\"\n display=\"inline-block\"\n position=\"relative\"\n style={style}\n >\n <input\n {...restProps}\n checked={indeterminate !== true && checked}\n className={_switchElement()}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <span aria-hidden className={_switchPresentation()}>\n <span className={_switchTrack()} />\n <span className={_switchThumb()} />\n </span>\n </Box>\n )\n})\n\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {\n _inputElement,\n _inputPresentation,\n ResponsiveProp,\n textArea,\n TextAreaStyleProps,\n} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends TextAreaStyleProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n weight?: ThemeFontWeightKey\n}\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: Props<TextAreaProps, 'textarea'>,\n forwardedRef: ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n space = 3,\n // weight,\n // __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span\n className={textArea({border, fontSize, padding, radius, gap: gap ?? space})}\n data-ui=\"TextArea\"\n >\n <textarea {...restProps} className={_inputElement()} disabled={disabled} ref={ref} />\n <span className={_inputPresentation()} />\n </span>\n )\n})\n\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n _inputElement,\n _inputPresentation,\n composeClassNames,\n InputStyleProps,\n ResponsiveProp,\n textInput,\n} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n CSSProperties,\n ElementType,\n ForwardedRef,\n forwardRef,\n isValidElement,\n MouseEvent,\n ReactNode,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {isRecord} from '../../lib/isRecord'\nimport {Props} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<\n Props<ButtonProps, 'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps extends InputStyleProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n prefix?: ReactNode\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n suffix?: ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: CSSProperties = {\n backgroundColor: 'transparent',\n top: 0,\n right: 0,\n zIndex: 2,\n}\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: Props<TextInputProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize = 1,\n gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n space = 3,\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n width,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const paddingArray = useArrayProp(padding)\n\n const withClearButton = Boolean(clearButton)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n const clearButtonBoxPadding = useMemo(\n () =>\n paddingArray.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return typeof v === 'number' ? v - 2 : 0\n }) as Space[],\n [paddingArray],\n )\n\n const clearButtonPadding = useMemo(\n () =>\n paddingArray.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return typeof v === 'number' ? v - 1 : 0\n }) as Space[],\n [paddingArray],\n )\n\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (isRecord(clearButton) ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n\n return (\n <Box\n align=\"center\"\n as=\"span\"\n className={composeClassNames(\n className,\n textInput({\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n width,\n }),\n )}\n data-icon-left={IconComponent ? '' : undefined}\n data-icon-right={IconRightComponent ? '' : undefined}\n data-prefix={prefix ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n display=\"flex\"\n >\n {prefix && (\n <Box as=\"span\" className=\"text-input-prefix\" sizing=\"border\">\n <span>{prefix}</span>\n </Box>\n )}\n\n <Box as=\"span\" flex={1} position=\"relative\">\n <input\n // data-as=\"input\"\n {...restProps}\n className={_inputElement()}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n <Box\n as=\"span\"\n // $unstableDisableFocusRing={__unstable_disableFocusRing}\n className={_inputPresentation()}\n data-disable-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n position=\"absolute\"\n >\n {IconComponent && (\n <Box as=\"span\" padding={padding} position=\"absolute\" style={{top: 0, left: 0}}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </Box>\n )}\n\n {!withClearButton && IconRightComponent && (\n <Box as=\"span\" padding={padding} position=\"absolute\" style={{top: 0, right: 0}}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </Box>\n )}\n </Box>\n\n {!disabled && !readOnly && clearButton && (\n <Box\n as=\"span\"\n padding={clearButtonBoxPadding}\n position=\"absolute\"\n style={CLEAR_BUTTON_BOX_STYLE}\n // tone={customValidity ? 'critical' : 'inherit'}\n >\n <Button\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n display=\"block\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </Box>\n )}\n </Box>\n\n {suffix && (\n <Box as=\"span\" className=\"text-input-suffix\" sizing=\"border\">\n <span>{suffix}</span>\n </Box>\n )}\n </Box>\n )\n})\n\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {tooltipCard} from '@sanity/ui/css'\nimport {motion} from 'framer-motion'\nimport {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Props} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = motion.create(Card)\n\n/* @internal */\nexport interface TooltipCardProps extends CardProps {\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement?: Placement\n}\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: Omit<\n Props<TooltipCardProps, 'div'>,\n 'onDrag' | 'onDragEnd' | 'onDragStart' | 'onAnimationStart'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n tone,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...restProps}\n data-animate={animate ? '' : undefined}\n className={tooltipCard()}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n tone={tone}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(props: TooltipDelayGroupProviderProps): ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {composeClassNames, RadiusStyleProps, ShadowStyleProps, tooltip} from '@sanity/ui/css'\nimport type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {useTheme_v2} from '../../_compat'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport type {Placement, Props} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'>, RadiusStyleProps, ShadowStyleProps {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: ReactElement<Props>\n content?: ReactNode\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n disabled?: boolean\n fallbackPlacements?: Placement[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: Props<TooltipProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n className,\n content,\n delay,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 3,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n tone,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const node = (\n <Layer\n data-ui=\"Tooltip\"\n // {...restProps}\n className={composeClassNames(className, tooltip())}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n tone={tone}\n >\n {content}\n </TooltipCard>\n </Layer>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {node}\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\n\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {GapStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Box, Inline, KBD} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps extends GapStyleProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n keys?: string[]\n}\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: Props<HotkeysProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {fontSize, gap, gapX, gapY, keys, padding, radius, space = 1, ...restProps} = props\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Box\n as=\"kbd\"\n data-ui=\"Hotkeys\"\n {...restProps}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n >\n <Inline as=\"span\" gap={gap}>\n {keys.map((key, i) => (\n <KBD display=\"block\" fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </KBD>\n ))}\n </Inline>\n </Box>\n )\n})\n\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {MouseEvent as ReactMouseEvent} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: ReactMouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: ReactMouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: ReactMouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: ReactMouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {\n composeClassNames,\n GapStyleProps,\n menu,\n PaddingStyleProps,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends PaddingStyleProps, Pick<GapStyleProps, 'gap'> {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n /** @deprecated Use `gap` property instead. */\n 'space'?: ResponsiveProp<Space>\n 'aria-labelledby'?: string\n // 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: Props<MenuProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n gap,\n // onBlurCapture,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({\n onKeyDown,\n originElement,\n shouldFocus,\n rootElementRef: ref,\n })\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Box\n data-ui=\"Menu\"\n {...restProps}\n className={composeClassNames(className, menu())}\n onKeyDown={handleKeyDown}\n overflow=\"auto\"\n outline=\"none\"\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack gap={gap ?? space}>{children}</Stack>\n </Box>\n </MenuContext.Provider>\n )\n})\n\nMenu.displayName = 'ForwardRef(Menu)'\n","import {composeClassNames, menuDivider} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface MenuDividerProps {}\n\n/**\n * @public\n */\nexport const MenuDivider = forwardRef(function MenuDivider(\n props: Props<MenuDividerProps, 'div'>,\n ref: ForwardedRef<HTMLHRElement>,\n) {\n const {className, ...restProps} = props\n\n return <hr {...restProps} className={composeClassNames(className, menuDivider())} ref={ref} />\n})\n\nMenuDivider.displayName = 'MenuDivider'\n","import {_selectable, composeClassNames, SelectableStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props, SelectableTone} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/** @internal */\nexport interface SelectableProps extends BoxProps, SelectableStyleProps {\n disabled?: boolean\n href?: string\n tone?: SelectableTone\n type?: 'button'\n}\n\n/** @internal */\nexport const Selectable = forwardRef(function Selectable(\n props: Props<SelectableProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, radius, tone, ...restProps} = props\n\n return (\n <Box\n {...restProps}\n className={composeClassNames(className, _selectable({radius, tone}))}\n ref={ref}\n />\n )\n})\n\nSelectable.displayName = 'ForwardRef(Selectable)'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {GapStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n isValidElement,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props, Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps extends GapStyleProps {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: ResponsiveProp<Space>\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text: ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(props: Props<MenuGroupProps, 'div'>): ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n gap,\n gapX,\n gapY,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n // data-as={as}\n data-ui=\"MenuGroup\"\n // forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n as={as}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n radius={radius}\n ref={setRootElement}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={gap ?? space} gapX={gapX} gapY={gapY} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {GapStyleProps, PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n ForwardedRef,\n forwardRef,\n isValidElement,\n MouseEvent,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props, SelectableTone} from '../../types'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends GapStyleProps, PaddingStyleProps, RadiusStyleProps {\n disabled?: boolean\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n pressed?: boolean\n selected?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text?: ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: Props<MenuItemProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n gap,\n gapX,\n gapY,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\n as={as}\n data-pressed={pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n radius={radius}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={gap ?? space} gapX={gapX} gapY={gapY} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys gap={0.5} keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />\n )}\n\n {IconRightComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Button} from '../../primitives'\nimport {ButtonTone, Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the corresponding `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: ElementType | ReactNode\n 'focused'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'label'?: ReactNode\n 'padding'?: ResponsiveProp<Space>\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: Props<TabProps, 'button'>,\n forwardedRef: ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <Button\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n\nTab.displayName = 'ForwardRef(Tab)'\n","import {\n Children,\n cloneElement,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n ReactElement,\n useCallback,\n useState,\n} from 'react'\n\nimport {Inline, InlineProps} from '../../primitives'\nimport {Props} from '../../types'\nimport {TabProps} from './tab'\n\n/**\n * @public\n */\nexport type TabListChild = ReactElement<Props<TabProps, 'button'>> | null | undefined | false\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: TabListChild[]\n}\n\nfunction _isReactElement(node: unknown): node is ReactElement<Props<TabProps, 'button'>> {\n return Boolean(node)\n}\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: Props<TabListProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = Children.toArray(childrenProp).filter(_isReactElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <Inline data-ui=\"TabList\" {...restProps} onKeyDown={handleKeyDown} ref={ref} role=\"tablist\">\n {tabs}\n </Inline>\n )\n})\n\nTabList.displayName = 'ForwardRef(TabList)'\n"],"names":["getGlobalScope","globalThis","window","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","Symbol","for","document","createContext","ThemeContext","ThemeProvider","props","$","_c","parentTheme","useContext","children","scheme","rootTheme","theme","tone","t0","bb0","t1","version","themeContext","bb1","t2","getScopedTheme","StyledThemeProvider","t3","displayName","useRootTheme","value","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","getTheme_v2","createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","type","visualDuration","bounce","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_getArrayProp","val","defaultVal","undefined","Array","isArray","_isScrollable","el","Element","style","getComputedStyle","overflowX","includes","overflowY","useArrayProp","JSON","stringify","setCache","useState","cachedVal","cachedHash","hash","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","Boolean","handleEvent","evt_0","addEventListener","removeEventListener","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","height","blockSize","content","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","length","useElementSize","size","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","_getMediaQuery","media","index","_createMediaStore","mediaLen","sizes","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","Box","forwardRef","align","borderBottom","borderLeft","borderRight","borderTop","className","column","columnEnd","columnStart","columns","direction","flex","gap","gapX","gapY","inset","insetBottom","insetLeft","insetRight","insetTop","justify","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","maxWidth","muted","overflow","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","pointerEvents","position","radius","restProps","row","rowEnd","rowStart","rows","t4","wrap","as","display","margin","padding","sizing","As","t5","composeClassNames","box","t6","Label","accent","textOverflowProp","textOverflow","weight","label","t7","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","initials","onImageLoadError","src","title","color","arrowPosition","status","sizeProp","ReactIs","isValidElementType","setArrowPosition","imageError","setImageError","raf","requestAnimationFrame","cancelAnimationFrame","handleImageError","t8","t9","map","initialsSize","t10","t11","avatar","t12","t13","avatarArrow","t14","t15","avatarInitials","t16","t17","t18","avatarImage","t19","s","AvatarCounter","count","fontSize","avatarCounter","AvatarStack","childrenProp","maxLength","maxLengthProp","Children","toArray","filter","isValidElement","Math","max","len","visibleCount","extraCount","visibleChildren","slice","T0","avatarStack","child","childIndex","cloneElement","String","Text","text","Badge","textAlign","mode","_deprecated_mode","badge","AnimatedSpinnerIcon","animatedSpinnerIcon","Spinner","spinner","Button","disabled","space","href","icon","IconComponent","iconRight","IconRightComponent","loading","selected","textWeight","button","buttonTheme","buttonLoadingBox","Card","pressed","schemeProp","selectable","shadow","toneProp","__unstable_checkered","__unstable_focusRing","checkered","focusRing","Checkbox","forwardedRef","checked","indeterminate","readOnly","useRef","useImperativeHandle","checkbox","checkboxInput","LazyRefractor","lazy","Code","languageProp","language","code","Container","container","Flex","Grid","Heading","heading","Inline","KBD","kbd","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","min","moveTowardsLength","movingPoint","targetPoint","amount","distance","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","i","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","join","Arrow","h","w","strokeWidth","outline","center","path","strokePath","fillPath","_arrow","_arrowStroke","_arrowShape","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","keys","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","default","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","SrOnly","rest","srOnly","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","floor","toIndex","ceil","item","_itemIndex","itemIndex","top","wrapperStyle","_scrollEl","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","PopoverCard","memo","animate","arrow","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","preventOverflow","referenceBoundary","referenceElement","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","offset","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","Radio","radio","Select","select","_inputElement","selectPresentation","Stack","Switch","_switch","_switchElement","_switchPresentation","_switchTrack","_switchThumb","TextArea","textArea","_inputPresentation","CLEAR_BUTTON_BOX_STYLE","backgroundColor","TextInput","__unstable_disableFocusRing","clearButton","onClear","prefix","suffix","t20","t21","t22","t23","t24","_width","t25","t26","paddingArray","withClearButton","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","t27","t28","CloseIcon","t29","t30","t31","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","tooltipCard","TooltipDelayGroupContext","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","useId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","from","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","menu","MenuDivider","menuDivider","Selectable","_selectable","useMenu","MenuGroup","menuProps","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","setRef","Tab","focused","id","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}