@sanity/ui 3.0.0-static.1 → 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 (660) hide show
  1. package/LICENSE +1 -1
  2. package/bin/ui.js +0 -1
  3. package/dist/_chunks-cjs/_visual-editing.js +3059 -0
  4. package/dist/_chunks-cjs/_visual-editing.js.map +1 -0
  5. package/dist/_chunks-cjs/buildCommand.js +14 -3524
  6. package/dist/_chunks-cjs/buildCommand.js.map +1 -1
  7. package/dist/_chunks-cjs/refractor.js +27 -0
  8. package/dist/_chunks-cjs/refractor.js.map +1 -0
  9. package/dist/_chunks-cjs/v3_v2.js +251 -0
  10. package/dist/_chunks-cjs/v3_v2.js.map +1 -0
  11. package/dist/_chunks-es/_visual-editing.mjs +3066 -0
  12. package/dist/_chunks-es/_visual-editing.mjs.map +1 -0
  13. package/dist/_chunks-es/refractor.mjs +26 -0
  14. package/dist/_chunks-es/refractor.mjs.map +1 -0
  15. package/dist/_chunks-es/v3_v2.mjs +252 -0
  16. package/dist/_chunks-es/v3_v2.mjs.map +1 -0
  17. package/dist/_visual-editing.d.mts +806 -0
  18. package/dist/_visual-editing.d.ts +806 -0
  19. package/dist/_visual-editing.js +31 -0
  20. package/dist/_visual-editing.js.map +1 -0
  21. package/dist/_visual-editing.mjs +31 -0
  22. package/dist/_visual-editing.mjs.map +1 -0
  23. package/dist/cli.js +337 -5
  24. package/dist/cli.js.map +1 -1
  25. package/dist/css.d.mts +1446 -373
  26. package/dist/css.d.ts +1446 -373
  27. package/dist/css.js +2665 -1747
  28. package/dist/css.js.map +1 -1
  29. package/dist/css.mjs +2651 -1732
  30. package/dist/css.mjs.map +1 -1
  31. package/dist/index.d.mts +418 -520
  32. package/dist/index.d.ts +418 -520
  33. package/dist/index.js +737 -4617
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +633 -4522
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/sanity-palette.css +9 -0
  38. package/dist/sanity-theme.css +1 -25
  39. package/dist/system.css +596 -404
  40. package/dist/theme.d.mts +431 -110
  41. package/dist/theme.d.ts +431 -110
  42. package/dist/theme.js +1216 -2430
  43. package/dist/theme.js.map +1 -1
  44. package/dist/theme.mjs +1238 -2450
  45. package/dist/theme.mjs.map +1 -1
  46. package/exports/_visual-editing.ts +31 -0
  47. package/package.json +92 -81
  48. package/src/{css/cli → cli}/buildCommand.ts +21 -9
  49. package/src/{css/cli → cli}/index.ts +1 -1
  50. package/src/core/StyleTags.tsx +24 -0
  51. package/src/core/_compat/index.ts +8 -1
  52. package/src/core/_compat/styles/_responsive.ts +19 -0
  53. package/src/core/_compat/styles/index.ts +1 -5
  54. package/src/core/{theme → _compat/theme}/theme.test.tsx +2 -2
  55. package/src/core/{theme → _compat/theme}/themeColorProvider.tsx +4 -2
  56. package/src/core/{theme → _compat/theme}/themeContext.ts +1 -1
  57. package/src/core/{theme → _compat/theme}/themeProvider.tsx +10 -11
  58. package/src/core/{theme → _compat/theme}/useRootTheme.ts +1 -0
  59. package/src/core/{theme → _compat/theme}/useTheme.ts +2 -2
  60. package/src/core/_compat/types.ts +11 -11
  61. package/src/core/components/autocomplete/__mocks__/apiStore.ts +1 -1
  62. package/src/core/components/autocomplete/__workshop__/async.tsx +1 -0
  63. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +4 -2
  64. package/src/core/components/autocomplete/__workshop__/custom.tsx +3 -2
  65. package/src/core/components/autocomplete/__workshop__/example.tsx +3 -2
  66. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -0
  67. package/src/core/components/autocomplete/autocomplete.tsx +54 -61
  68. package/src/core/components/autocomplete/autocompleteOption.tsx +5 -4
  69. package/src/core/components/autocomplete/types.ts +2 -2
  70. package/src/core/components/breadcrumbs/__workshop__/example.tsx +7 -0
  71. package/src/core/components/breadcrumbs/breadcrumbs.tsx +32 -16
  72. package/src/core/components/dialog/__workshop__/activate.tsx +2 -1
  73. package/src/core/components/dialog/__workshop__/nested.tsx +3 -3
  74. package/src/core/components/dialog/__workshop__/onScroll.tsx +2 -2
  75. package/src/core/components/dialog/__workshop__/panes.tsx +1 -0
  76. package/src/core/components/dialog/__workshop__/position.tsx +2 -1
  77. package/src/core/components/dialog/__workshop__/props.tsx +2 -1
  78. package/src/core/components/dialog/__workshop__/wrapped.tsx +1 -3
  79. package/src/core/components/dialog/dialog.tsx +50 -27
  80. package/src/core/components/dialog/dialogProvider.tsx +4 -3
  81. package/src/core/components/dialog/useDialog.ts +1 -0
  82. package/src/core/components/hotkeys/hotkeys.tsx +20 -14
  83. package/src/core/components/menu/__workshop__/asComponent.tsx +2 -1
  84. package/src/core/components/menu/__workshop__/avatarMenu.tsx +1 -0
  85. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +1 -0
  86. package/src/core/components/menu/__workshop__/customSelectedState.tsx +1 -0
  87. package/src/core/components/menu/__workshop__/menuButton.tsx +2 -1
  88. package/src/core/components/menu/__workshop__/shouldFocus.tsx +1 -0
  89. package/src/core/components/menu/__workshop__/tones.tsx +7 -7
  90. package/src/core/components/menu/menu.test.tsx +4 -5
  91. package/src/core/components/menu/menu.tsx +49 -22
  92. package/src/core/components/menu/menuButton.tsx +47 -61
  93. package/src/core/components/menu/menuContext.ts +6 -4
  94. package/src/core/components/menu/menuDivider.tsx +9 -3
  95. package/src/core/components/menu/menuGroup.tsx +50 -26
  96. package/src/core/components/menu/menuItem.tsx +31 -38
  97. package/src/core/components/menu/useMenu.ts +1 -0
  98. package/src/core/components/menu/useMenuController.ts +18 -7
  99. package/src/core/components/skeleton/__workshop__/delay.tsx +2 -1
  100. package/src/core/components/skeleton/__workshop__/skeleton.tsx +2 -1
  101. package/src/core/components/skeleton/skeleton.tsx +4 -3
  102. package/src/core/components/skeleton/textSkeleton.tsx +11 -25
  103. package/src/core/components/tab/tab.tsx +21 -14
  104. package/src/core/components/tab/tabList.tsx +24 -11
  105. package/src/core/components/tab/tabPanel.tsx +5 -4
  106. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  107. package/src/core/components/toast/__workshop__/toast.tsx +2 -1
  108. package/src/core/components/toast/toast.test.tsx +0 -1
  109. package/src/core/components/toast/toast.tsx +130 -40
  110. package/src/core/components/toast/toastLayer.tsx +38 -0
  111. package/src/core/components/toast/toastProvider.tsx +60 -140
  112. package/src/core/components/toast/toastState.ts +6 -0
  113. package/src/core/components/toast/types.ts +10 -2
  114. package/src/core/components/toast/useToast.ts +1 -0
  115. package/src/core/components/tree/__workshop__/basic.tsx +1 -0
  116. package/src/core/components/tree/__workshop__/tabFromElement.tsx +2 -1
  117. package/src/core/components/tree/tree.tsx +16 -13
  118. package/src/core/components/tree/treeGroup.tsx +5 -7
  119. package/src/core/components/tree/treeItem.tsx +41 -34
  120. package/src/core/components/tree/useTree.ts +1 -0
  121. package/src/core/constants.ts +45 -23
  122. package/src/core/helpers/focus.ts +3 -3
  123. package/src/core/helpers/index.ts +1 -0
  124. package/src/core/helpers/props.ts +10 -0
  125. package/src/core/hooks/useArrayProp.ts +19 -15
  126. package/src/core/hooks/useClickOutside.test.tsx +3 -4
  127. package/src/core/hooks/useClickOutside.ts +1 -0
  128. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -1
  129. package/src/core/hooks/useClickOutsideEvent.ts +2 -1
  130. package/src/core/hooks/useDelayed.test.ts +2 -1
  131. package/src/core/hooks/useDelayedState.ts +2 -3
  132. package/src/core/hooks/useElementRect/__workshop__/example.tsx +3 -2
  133. package/src/core/hooks/useElementSize.ts +2 -1
  134. package/src/core/hooks/useForwardedRef.ts +2 -2
  135. package/src/core/hooks/useGlobalKeyDown.ts +9 -4
  136. package/src/core/hooks/useMatchMedia.ts +1 -1
  137. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -2
  138. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +2 -1
  139. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -1
  140. package/src/core/hooks/usePrefersDark.test.tsx +2 -1
  141. package/src/core/hooks/usePrefersDark.ts +1 -1
  142. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -1
  143. package/src/core/hooks/usePrefersReducedMotion.test.tsx +2 -1
  144. package/src/core/hooks/usePrefersReducedMotion.ts +1 -1
  145. package/src/core/index.ts +2 -3
  146. package/src/core/lib/createGlobalScopedContext.ts +2 -1
  147. package/src/core/lib/globalScope.ts +0 -1
  148. package/src/core/primitives/_selectable/selectable.tsx +9 -5
  149. package/src/core/primitives/avatar/__workshop__/asButton.tsx +2 -1
  150. package/src/core/primitives/avatar/__workshop__/stack.tsx +2 -1
  151. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +4 -3
  152. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +26 -23
  153. package/src/core/primitives/avatar/avatar.tsx +42 -80
  154. package/src/core/primitives/avatar/avatarCounter.tsx +26 -57
  155. package/src/core/primitives/avatar/avatarStack.tsx +37 -55
  156. package/src/core/primitives/avatar/types.ts +1 -0
  157. package/src/core/primitives/badge/__workshop__/props.tsx +2 -1
  158. package/src/core/primitives/badge/__workshop__/tones.tsx +2 -1
  159. package/src/core/primitives/badge/badge.test.tsx +1 -0
  160. package/src/core/primitives/badge/badge.tsx +10 -5
  161. package/src/core/primitives/box/__workshop__/props.tsx +2 -1
  162. package/src/core/primitives/box/box.tsx +45 -12
  163. package/src/core/primitives/button/__workshop__/custom.tsx +7 -4
  164. package/src/core/primitives/button/__workshop__/disabled.tsx +1 -0
  165. package/src/core/primitives/button/__workshop__/props.tsx +7 -2
  166. package/src/core/primitives/button/__workshop__/stacked.tsx +2 -1
  167. package/src/core/primitives/button/button.test.tsx +1 -0
  168. package/src/core/primitives/button/button.tsx +137 -113
  169. package/src/core/primitives/card/__workshop__/allTones.tsx +21 -21
  170. package/src/core/primitives/card/__workshop__/asButton.tsx +44 -25
  171. package/src/core/primitives/card/__workshop__/asComponent.tsx +2 -2
  172. package/src/core/primitives/card/__workshop__/checkered.tsx +17 -7
  173. package/src/core/primitives/card/__workshop__/interactive.tsx +10 -3
  174. package/src/core/primitives/card/__workshop__/listNavigation.tsx +6 -3
  175. package/src/core/primitives/card/__workshop__/props.tsx +13 -7
  176. package/src/core/primitives/card/__workshop__/selected.tsx +11 -9
  177. package/src/core/primitives/card/card.tsx +47 -55
  178. package/src/core/primitives/card/types.ts +1 -0
  179. package/src/core/primitives/checkbox/__workshop__/tones.tsx +6 -0
  180. package/src/core/primitives/checkbox/checkbox.tsx +9 -5
  181. package/src/core/primitives/code/__workshop__/props.tsx +3 -2
  182. package/src/core/primitives/code/code.tsx +11 -11
  183. package/src/core/primitives/code/refractor.tsx +20 -0
  184. package/src/core/primitives/container/__workshop__/example.tsx +3 -2
  185. package/src/core/primitives/container/container.tsx +7 -4
  186. package/src/core/primitives/flex/__workshop__/example.tsx +5 -4
  187. package/src/core/primitives/flex/__workshop__/gap.tsx +6 -6
  188. package/src/core/primitives/flex/flex.tsx +9 -12
  189. package/src/core/primitives/grid/__workshop__/responsive.tsx +12 -12
  190. package/src/core/primitives/grid/grid.tsx +7 -11
  191. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +13 -25
  192. package/src/core/primitives/heading/__workshop__/plain.tsx +3 -2
  193. package/src/core/primitives/heading/heading.tsx +19 -39
  194. package/src/core/primitives/inline/__workshop__/plain.tsx +5 -4
  195. package/src/core/primitives/inline/inline.tsx +10 -7
  196. package/src/core/primitives/kbd/kbd.tsx +8 -6
  197. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +13 -7
  198. package/src/core/primitives/label/__workshop__/plain.tsx +22 -8
  199. package/src/core/primitives/label/label.tsx +26 -50
  200. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +3 -2
  201. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +5 -4
  202. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  203. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +3 -2
  204. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +5 -2
  205. package/src/core/primitives/popover/__workshop__/TestStory.tsx +5 -4
  206. package/src/core/primitives/popover/floating-ui/size.ts +2 -1
  207. package/src/core/primitives/popover/helpers.ts +4 -3
  208. package/src/core/primitives/popover/popover.tsx +51 -44
  209. package/src/core/primitives/popover/popoverCard.tsx +22 -27
  210. package/src/core/primitives/radio/__workshop__/plain.tsx +2 -2
  211. package/src/core/primitives/radio/radio.tsx +10 -11
  212. package/src/core/primitives/select/__workshop__/plain.tsx +5 -2
  213. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  214. package/src/core/primitives/select/select.tsx +40 -41
  215. package/src/core/primitives/spinner/__workshop__/Props.tsx +2 -1
  216. package/src/core/primitives/spinner/spinner.tsx +5 -3
  217. package/src/core/primitives/stack/__workshop__/plain.tsx +2 -1
  218. package/src/core/primitives/stack/stack.tsx +10 -11
  219. package/src/core/primitives/switch/switch.tsx +22 -13
  220. package/src/core/primitives/text/__workshop__/colored.tsx +8 -14
  221. package/src/core/primitives/text/__workshop__/example.tsx +8 -7
  222. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +11 -21
  223. package/src/core/primitives/text/text.tsx +20 -38
  224. package/src/core/primitives/textArea/__workshop__/plain.tsx +4 -3
  225. package/src/core/primitives/textArea/textArea.tsx +28 -75
  226. package/src/core/primitives/textInput/__workshop__/index.ts +0 -5
  227. package/src/core/primitives/textInput/__workshop__/plain.tsx +8 -3
  228. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +6 -2
  229. package/src/core/primitives/textInput/__workshop__/tones.tsx +38 -0
  230. package/src/core/primitives/textInput/__workshop__/typed.tsx +2 -1
  231. package/src/core/primitives/textInput/textInput.tsx +133 -220
  232. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +2 -1
  233. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +2 -1
  234. package/src/core/primitives/tooltip/__workshop__/props.tsx +8 -3
  235. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +2 -1
  236. package/src/core/primitives/tooltip/tooltip.test.tsx +4 -2
  237. package/src/core/primitives/tooltip/tooltip.tsx +64 -61
  238. package/src/core/primitives/tooltip/tooltipCard.tsx +31 -26
  239. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +1 -1
  240. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +4 -6
  241. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -1
  242. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -0
  243. package/src/core/primitives/types.ts +5 -5
  244. package/src/core/types/box.ts +0 -3
  245. package/src/core/types/button.ts +2 -0
  246. package/src/core/types/flex.ts +0 -4
  247. package/src/core/types/grid.ts +5 -7
  248. package/src/core/types/gridItem.ts +4 -9
  249. package/src/core/types/index.ts +1 -0
  250. package/src/core/types/props.ts +18 -0
  251. package/src/core/types/selectable.ts +1 -0
  252. package/src/core/utils/arrow/arrow.tsx +34 -97
  253. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -1
  254. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +4 -3
  255. package/src/core/utils/boundaryElement/index.ts +1 -1
  256. package/src/core/utils/boundaryElement/useBoundaryElement.ts +1 -0
  257. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +5 -3
  258. package/src/core/utils/elementQuery/elementQuery.tsx +21 -21
  259. package/src/core/utils/errorBoundary.tsx +5 -4
  260. package/src/core/utils/getElementRef.ts +26 -0
  261. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +1 -0
  262. package/src/core/utils/layer/__workshop__/nested.tsx +1 -0
  263. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +1 -0
  264. package/src/core/utils/layer/index.ts +1 -1
  265. package/src/core/utils/layer/layer.test.tsx +0 -1
  266. package/src/core/utils/layer/layer.tsx +15 -11
  267. package/src/core/utils/layer/layerProvider.tsx +6 -5
  268. package/src/core/utils/layer/useLayer.ts +1 -0
  269. package/src/core/utils/portal/portal.test.tsx +0 -1
  270. package/src/core/utils/portal/portal.ts +4 -2
  271. package/src/core/utils/portal/portalProvider.tsx +4 -3
  272. package/src/core/utils/portal/usePortal.ts +1 -0
  273. package/src/core/utils/spanWithTextOverflow.tsx +10 -0
  274. package/src/core/utils/srOnly/srOnly.tsx +17 -18
  275. package/src/core/utils/virtualList/virtualList.tsx +55 -37
  276. package/src/css/_resp.ts +4 -1
  277. package/src/css/compile/compilePalette.ts +60 -0
  278. package/src/css/compile/compileRule.ts +45 -13
  279. package/src/css/compile/compileRules.test.ts +35 -0
  280. package/src/css/compile/compileRules.ts +14 -30
  281. package/src/css/compile/compileTheme.ts +8 -505
  282. package/src/css/compile/compileTheme_v3.ts +410 -0
  283. package/src/css/compile/types.ts +6 -0
  284. package/src/css/components/breadcrumbs/breadcrumbs.ts +1 -1
  285. package/src/css/components/dialog/{classes.ts → dialog.ts} +7 -7
  286. package/src/css/components/dialog/index.ts +1 -1
  287. package/src/css/components/dialog/rules.ts +2 -1
  288. package/src/css/components/menu/menu.ts +5 -1
  289. package/src/css/components/menu/rules.ts +6 -1
  290. package/src/css/components/skeleton/rules.ts +28 -22
  291. package/src/css/components/skeleton/skeleton.ts +5 -5
  292. package/src/css/components/skeleton/types.ts +2 -0
  293. package/src/css/components/toast/index.ts +1 -0
  294. package/src/css/components/toast/rules.ts +17 -68
  295. package/src/css/components/toast/toast.ts +21 -0
  296. package/src/css/components/tree/rules.ts +3 -2
  297. package/src/css/components/tree/tree.ts +1 -1
  298. package/src/css/composeClassNames.ts +12 -2
  299. package/src/css/index.ts +12 -23
  300. package/src/css/primitives/_arrow/_arrow.ts +14 -0
  301. package/src/css/primitives/_arrow/index.ts +1 -0
  302. package/src/css/primitives/_arrow/rules.ts +71 -0
  303. package/src/css/primitives/_input/index.ts +2 -0
  304. package/src/css/primitives/_input/input.ts +25 -0
  305. package/src/css/primitives/_input/rules.ts +163 -0
  306. package/src/css/primitives/_input/types.ts +12 -0
  307. package/src/css/primitives/{selectable → _selectable}/__style.ts +1 -1
  308. package/src/css/primitives/_selectable/_contants.ts +11 -0
  309. package/src/css/primitives/_selectable/rules.ts +129 -0
  310. package/src/css/primitives/_selectable/selectable.ts +9 -0
  311. package/src/css/primitives/_selectable/types.ts +8 -0
  312. package/src/css/primitives/avatar/avatar.ts +10 -15
  313. package/src/css/primitives/avatar/rules.ts +85 -99
  314. package/src/css/primitives/avatar/types.ts +1 -2
  315. package/src/css/primitives/badge/badge.ts +2 -2
  316. package/src/css/primitives/badge/rules.ts +13 -16
  317. package/src/css/primitives/badge/types.ts +2 -2
  318. package/src/css/primitives/box/box.ts +24 -14
  319. package/src/css/primitives/box/rules.ts +5 -2
  320. package/src/css/primitives/box/types.ts +24 -19
  321. package/src/css/primitives/button/_constants.ts +17 -0
  322. package/src/css/primitives/button/button.ts +27 -12
  323. package/src/css/primitives/button/rules.ts +275 -40
  324. package/src/css/primitives/card/_constants.ts +13 -0
  325. package/src/css/primitives/card/card.ts +8 -13
  326. package/src/css/primitives/card/index.ts +1 -0
  327. package/src/css/primitives/card/rules.ts +353 -123
  328. package/src/css/primitives/card/types.ts +11 -0
  329. package/src/css/primitives/checkbox/checkbox.ts +2 -2
  330. package/src/css/primitives/checkbox/rules.ts +31 -15
  331. package/src/css/primitives/code/code.ts +2 -2
  332. package/src/css/primitives/code/rules.ts +27 -2
  333. package/src/css/primitives/code/types.ts +1 -1
  334. package/src/css/primitives/container/container.ts +2 -2
  335. package/src/css/primitives/container/types.ts +1 -0
  336. package/src/css/primitives/heading/heading.ts +3 -2
  337. package/src/css/primitives/heading/rules.ts +77 -6
  338. package/src/css/primitives/heading/types.ts +2 -2
  339. package/src/css/primitives/kbd/kbd.ts +2 -2
  340. package/src/css/primitives/kbd/rules.ts +5 -5
  341. package/src/css/primitives/kbd/types.ts +3 -1
  342. package/src/css/primitives/label/label.ts +2 -2
  343. package/src/css/primitives/label/rules.ts +54 -2
  344. package/src/css/primitives/label/types.ts +1 -1
  345. package/src/css/primitives/popover/popover.ts +1 -1
  346. package/src/css/primitives/radio/radio.ts +1 -1
  347. package/src/css/primitives/radio/rules.ts +117 -1
  348. package/src/css/primitives/select/index.ts +1 -0
  349. package/src/css/primitives/select/rules.ts +18 -1
  350. package/src/css/primitives/select/select.ts +8 -2
  351. package/src/css/primitives/select/types.ts +5 -0
  352. package/src/css/primitives/spinner/spinner.ts +2 -2
  353. package/src/css/primitives/switch/rules.ts +264 -56
  354. package/src/css/primitives/switch/switch.ts +17 -1
  355. package/src/css/primitives/text/rules.ts +93 -4
  356. package/src/css/primitives/text/text.ts +3 -2
  357. package/src/css/primitives/text/types.ts +2 -2
  358. package/src/css/primitives/textArea/index.ts +1 -0
  359. package/src/css/primitives/textArea/rules.ts +3 -1
  360. package/src/css/primitives/textArea/textArea.ts +4 -2
  361. package/src/css/primitives/textArea/types.ts +5 -0
  362. package/src/css/primitives/textInput/rules.ts +33 -130
  363. package/src/css/primitives/textInput/textInput.ts +4 -11
  364. package/src/css/primitives/textInput/types.ts +8 -5
  365. package/src/css/primitives/token/rules.ts +37 -37
  366. package/src/css/primitives/tooltip/rules.ts +2 -0
  367. package/src/css/primitives/tooltip/tooltip.ts +2 -2
  368. package/src/css/rules.ts +16 -2
  369. package/src/css/styles/border/border.ts +1 -1
  370. package/src/css/styles/display/display.ts +7 -0
  371. package/src/css/styles/display/index.ts +2 -0
  372. package/src/css/styles/display/rules.ts +2 -2
  373. package/src/css/styles/display/types.ts +17 -0
  374. package/src/css/styles/flex/flex.ts +1 -1
  375. package/src/css/styles/flexItem/flexItem.ts +1 -1
  376. package/src/css/styles/flexItem/rules.ts +1 -0
  377. package/src/css/styles/font/font.ts +1 -1
  378. package/src/css/styles/font/rules.ts +4 -4
  379. package/src/css/styles/gap/gap.ts +1 -1
  380. package/src/css/styles/gap/rules.ts +1 -0
  381. package/src/css/styles/gap/types.ts +1 -0
  382. package/src/css/styles/grid/grid.ts +1 -1
  383. package/src/css/styles/gridItem/gridItem.ts +1 -1
  384. package/src/css/styles/index.ts +19 -0
  385. package/src/css/styles/inset/index.ts +2 -0
  386. package/src/css/styles/inset/inset.ts +13 -0
  387. package/src/css/styles/inset/rules.ts +16 -0
  388. package/src/css/styles/inset/types.ts +13 -0
  389. package/src/css/styles/margin/margin.ts +1 -1
  390. package/src/css/styles/margin/rules.ts +1 -0
  391. package/src/css/styles/maxWidth/rules.ts +8 -31
  392. package/src/css/styles/maxWidth/types.ts +2 -1
  393. package/src/css/styles/overflow/overflow.ts +1 -1
  394. package/src/css/styles/padding/padding.ts +1 -1
  395. package/src/css/styles/padding/rules.ts +1 -0
  396. package/src/css/styles/padding/types.ts +9 -7
  397. package/src/css/styles/pointerEvents/pointerEvents.ts +1 -1
  398. package/src/css/styles/position/position.ts +2 -2
  399. package/src/css/styles/position/rules.ts +0 -7
  400. package/src/css/styles/position/types.ts +0 -4
  401. package/src/css/styles/radius/radius.ts +1 -1
  402. package/src/css/styles/radius/rules.ts +1 -1
  403. package/src/css/styles/radius/types.ts +1 -0
  404. package/src/css/styles/shadow/index.ts +2 -0
  405. package/src/css/styles/shadow/rules.ts +5 -5
  406. package/src/css/styles/shadow/shadow.ts +7 -0
  407. package/src/css/styles/shadow/types.ts +8 -0
  408. package/src/css/styles/textOverflow/index.ts +2 -0
  409. package/src/css/styles/textOverflow/rules.ts +17 -0
  410. package/src/css/styles/textOverflow/textOverflow.ts +6 -0
  411. package/src/css/styles/textOverflow/types.ts +8 -0
  412. package/src/css/styles/width/index.ts +1 -1
  413. package/src/css/styles/width/types.ts +3 -2
  414. package/src/css/types.ts +457 -289
  415. package/src/css/util.ts +27 -0
  416. package/src/css/utils/srOnly/index.ts +1 -0
  417. package/src/css/utils/srOnly/rules.ts +11 -0
  418. package/src/css/utils/srOnly/srOnly.ts +5 -0
  419. package/src/css/varNames.ts +352 -260
  420. package/src/css/vars.ts +330 -286
  421. package/src/theme/{system/_constants.ts → _constants.ts} +5 -4
  422. package/src/theme/{system/_types.ts → _types.ts} +1 -1
  423. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +1 -1
  424. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +1 -1
  425. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +1 -6
  426. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +2 -2
  427. package/src/theme/build/_deprecated/color/card/createCardStates.ts +2 -2
  428. package/src/theme/build/_deprecated/color/factory.ts +8 -9
  429. package/src/theme/build/_deprecated/color/input/createInputModes.ts +1 -1
  430. package/src/theme/build/_deprecated/color/muted/createMuted.ts +2 -2
  431. package/src/theme/build/_deprecated/color/spot/createSpot.ts +1 -1
  432. package/src/theme/build/buildColorTheme.ts +62 -52
  433. package/src/theme/build/buildTheme.ts +8 -32
  434. package/src/theme/build/colorToken/colorToken.ts +1 -1
  435. package/src/theme/build/lib/color-fns/rgba.ts +4 -0
  436. package/src/theme/build/merge.ts +0 -2
  437. package/src/theme/build/mixThemeColor.ts +1 -1
  438. package/src/theme/build/renderColorTheme.ts +34 -37
  439. package/src/theme/build/renderColorValue.ts +4 -3
  440. package/src/theme/build/resolveColorTokens.ts +57 -120
  441. package/src/theme/config/helpers.ts +2 -2
  442. package/src/theme/config/system.ts +3 -2
  443. package/src/theme/config/tokens/color/types.ts +5 -18
  444. package/src/theme/config/tokens/parseTokenKey.ts +1 -1
  445. package/src/theme/config/tokens/parseTokenValue.ts +1 -1
  446. package/src/theme/config/tokens/types.ts +3 -2
  447. package/src/theme/config/types.ts +4 -4
  448. package/src/theme/defaults/colorTokens.ts +6 -4
  449. package/src/theme/defaults/config.ts +2 -2
  450. package/src/theme/defaults/fonts.ts +18 -17
  451. package/src/theme/getScopedTheme.ts +10 -4
  452. package/src/theme/index.ts +7 -1
  453. package/src/theme/palette/constants.ts +15 -0
  454. package/src/theme/palette/index.ts +2 -0
  455. package/src/theme/palette/types.ts +16 -0
  456. package/src/theme/types.ts +32 -0
  457. package/src/theme/{system/v0 → v0}/color/_generic.ts +1 -1
  458. package/src/theme/v0/color/_system.ts +17 -0
  459. package/src/theme/{system/v0 → v0}/color/color.ts +3 -2
  460. package/src/theme/{system/v0 → v0}/color/input.ts +1 -1
  461. package/src/theme/{system/v0 → v0}/color/spot.ts +1 -1
  462. package/src/theme/{system → v0}/css.ts +1 -2
  463. package/src/theme/{system → v0}/font.ts +1 -0
  464. package/src/theme/{system → v0}/index.ts +0 -4
  465. package/src/theme/v0/theme.ts +72 -0
  466. package/src/theme/{system → v2}/avatar.ts +1 -1
  467. package/src/theme/{system → v2}/color/_constants.ts +6 -2
  468. package/src/theme/{system → v2}/color/_helpers.ts +1 -0
  469. package/src/theme/v2/color/badge.ts +16 -0
  470. package/src/theme/{system → v2}/color/color.ts +1 -1
  471. package/src/theme/{system/v0 → v2}/index.ts +2 -1
  472. package/src/theme/{system → v2}/input.ts +1 -1
  473. package/src/theme/v2/theme.ts +49 -0
  474. package/src/theme/v3/buildTheme_v3.test.ts +40 -0
  475. package/src/theme/v3/buildTheme_v3.ts +30 -0
  476. package/src/theme/v3/color/buildColor_v3.ts +193 -0
  477. package/src/theme/v3/color/card.ts +116 -0
  478. package/src/theme/v3/color/color.ts +94 -0
  479. package/src/theme/v3/color/element.ts +19 -0
  480. package/src/theme/v3/color/index.ts +7 -0
  481. package/src/theme/v3/color/parseColor.test.ts +79 -0
  482. package/src/theme/v3/color/parseColor.ts +167 -0
  483. package/src/theme/v3/color/renderColor.test.ts +19 -0
  484. package/src/theme/v3/color/renderColor.ts +33 -0
  485. package/src/theme/v3/color/token.ts +17 -0
  486. package/src/theme/v3/color/tokens.ts +5 -0
  487. package/src/theme/v3/defaults.ts +205 -0
  488. package/src/theme/v3/index.ts +6 -0
  489. package/src/theme/v3/merge.ts +22 -0
  490. package/src/theme/v3/resolveTokens.ts +199 -0
  491. package/src/theme/v3/tokens.ts +16 -0
  492. package/src/theme/v3/types.ts +48 -0
  493. package/src/theme/versioning/getTheme_v2.ts +2 -1
  494. package/src/theme/versioning/index.ts +0 -4
  495. package/src/theme/versioning/is_v0.ts +2 -1
  496. package/src/theme/versioning/is_v2.ts +2 -1
  497. package/src/theme/versioning/themeColor_v0_v2.ts +33 -5
  498. package/src/theme/versioning/themeColor_v2_v2_9.ts +49 -0
  499. package/src/theme/versioning/themeColor_v3_v2.ts +206 -0
  500. package/src/theme/versioning/v0_v2.ts +6 -1
  501. package/src/theme/versioning/v2_v0.ts +6 -6
  502. package/src/theme/versioning/v3_v2.ts +108 -0
  503. package/dist/css.esm.js +0 -3794
  504. package/dist/css.esm.js.map +0 -1
  505. package/dist/index.esm.js +0 -5431
  506. package/dist/index.esm.js.map +0 -1
  507. package/dist/theme.esm.js +0 -4201
  508. package/dist/theme.esm.js.map +0 -1
  509. package/src/core/__workshop__/constants.ts +0 -305
  510. package/src/core/__workshop__/fontsPlugin.tsx +0 -76
  511. package/src/core/_compat/styles/border/borderStyle.ts +0 -61
  512. package/src/core/_compat/styles/border/index.ts +0 -2
  513. package/src/core/_compat/styles/border/types.ts +0 -11
  514. package/src/core/_compat/styles/box/boxStyle.ts +0 -74
  515. package/src/core/_compat/styles/box/index.ts +0 -2
  516. package/src/core/_compat/styles/box/types.ts +0 -11
  517. package/src/core/_compat/styles/card/_cardColorStyle.ts +0 -101
  518. package/src/core/_compat/styles/card/index.ts +0 -1
  519. package/src/core/_compat/styles/flex/flexItemStyle.ts +0 -26
  520. package/src/core/_compat/styles/flex/flexStyle.ts +0 -69
  521. package/src/core/_compat/styles/flex/index.ts +0 -3
  522. package/src/core/_compat/styles/flex/types.ts +0 -24
  523. package/src/core/_compat/styles/focusRing/index.ts +0 -25
  524. package/src/core/_compat/styles/font/codeFontStyle.ts +0 -12
  525. package/src/core/_compat/styles/font/headingFontStyle.ts +0 -12
  526. package/src/core/_compat/styles/font/index.ts +0 -6
  527. package/src/core/_compat/styles/font/labelFontStyle.ts +0 -12
  528. package/src/core/_compat/styles/font/responsiveFont.ts +0 -101
  529. package/src/core/_compat/styles/font/textAlignStyle.ts +0 -18
  530. package/src/core/_compat/styles/font/textFontStyle.ts +0 -12
  531. package/src/core/_compat/styles/font/types.ts +0 -34
  532. package/src/core/_compat/styles/grid/gridItemStyle.ts +0 -81
  533. package/src/core/_compat/styles/grid/gridStyle.ts +0 -97
  534. package/src/core/_compat/styles/grid/index.ts +0 -3
  535. package/src/core/_compat/styles/grid/types.ts +0 -37
  536. package/src/core/_compat/styles/helpers.ts +0 -81
  537. package/src/core/_compat/styles/input/index.ts +0 -2
  538. package/src/core/_compat/styles/input/responsiveInputPaddingStyle.ts +0 -77
  539. package/src/core/_compat/styles/input/textInputStyle.ts +0 -263
  540. package/src/core/_compat/styles/internal.ts +0 -12
  541. package/src/core/_compat/styles/margin/index.ts +0 -2
  542. package/src/core/_compat/styles/margin/marginStyle.ts +0 -20
  543. package/src/core/_compat/styles/margin/marginsStyle.test.ts +0 -32
  544. package/src/core/_compat/styles/margin/types.ts +0 -9
  545. package/src/core/_compat/styles/padding/index.ts +0 -2
  546. package/src/core/_compat/styles/padding/paddingStyle.test.ts +0 -32
  547. package/src/core/_compat/styles/padding/paddingStyle.ts +0 -20
  548. package/src/core/_compat/styles/padding/types.ts +0 -12
  549. package/src/core/_compat/styles/radius/index.ts +0 -2
  550. package/src/core/_compat/styles/radius/radiusStyle.ts +0 -22
  551. package/src/core/_compat/styles/radius/types.ts +0 -8
  552. package/src/core/_compat/styles/shadow/index.ts +0 -2
  553. package/src/core/_compat/styles/shadow/shadowStyle.ts +0 -29
  554. package/src/core/_compat/styles/shadow/types.ts +0 -6
  555. package/src/core/_compat/styles/types.ts +0 -8
  556. package/src/core/components/autocomplete/__workshop__/.eslintrc +0 -5
  557. package/src/core/components/breadcrumbs/__workshop__/.eslintrc +0 -5
  558. package/src/core/components/dialog/__workshop__/.eslintrc +0 -5
  559. package/src/core/components/hotkeys/__workshop__/.eslintrc +0 -5
  560. package/src/core/components/menu/__workshop__/.eslintrc +0 -5
  561. package/src/core/components/skeleton/__workshop__/.eslintrc +0 -5
  562. package/src/core/components/tab/__workshop__/.eslintrc +0 -5
  563. package/src/core/components/toast/__workshop__/.eslintrc +0 -5
  564. package/src/core/components/tree/__workshop__/.eslintrc +0 -5
  565. package/src/core/hooks/useElementRect/__workshop__/.eslintrc +0 -5
  566. package/src/core/hooks/useMediaIndex/__workshop__/.eslintrc +0 -5
  567. package/src/core/lib/styled/elements.ts +0 -135
  568. package/src/core/lib/styled/index.ts +0 -2
  569. package/src/core/lib/styled/members.ts +0 -15
  570. package/src/core/lib/styled/styled.ts +0 -79
  571. package/src/core/primitives/avatar/__workshop__/.eslintrc +0 -5
  572. package/src/core/primitives/avatar/styles.ts +0 -166
  573. package/src/core/primitives/badge/__workshop__/.eslintrc +0 -5
  574. package/src/core/primitives/badge/styles.ts +0 -19
  575. package/src/core/primitives/box/__workshop__/.eslintrc +0 -5
  576. package/src/core/primitives/button/__workshop__/.eslintrc +0 -5
  577. package/src/core/primitives/button/styles.ts +0 -116
  578. package/src/core/primitives/card/RootCardContext.ts +0 -3
  579. package/src/core/primitives/card/__workshop__/.eslintrc +0 -5
  580. package/src/core/primitives/checkbox/__workshop__/.eslintrc +0 -5
  581. package/src/core/primitives/code/__workshop__/.eslintrc +0 -5
  582. package/src/core/primitives/code/styles.ts +0 -77
  583. package/src/core/primitives/container/__workshop__/.eslintrc +0 -5
  584. package/src/core/primitives/container/styles.ts +0 -22
  585. package/src/core/primitives/flex/__workshop__/.eslintrc +0 -5
  586. package/src/core/primitives/grid/__workshop__/.eslintrc +0 -5
  587. package/src/core/primitives/heading/__workshop__/.eslintrc +0 -5
  588. package/src/core/primitives/heading/styles.ts +0 -63
  589. package/src/core/primitives/heading/types.ts +0 -7
  590. package/src/core/primitives/inline/__workshop__/.eslintrc +0 -5
  591. package/src/core/primitives/inline/styles.ts +0 -31
  592. package/src/core/primitives/kbd/__workshop__/.eslintrc +0 -5
  593. package/src/core/primitives/label/__workshop__/.eslintrc +0 -5
  594. package/src/core/primitives/label/styles.ts +0 -44
  595. package/src/core/primitives/popover/__workshop__/.eslintrc +0 -5
  596. package/src/core/primitives/radio/__workshop__/.eslintrc +0 -5
  597. package/src/core/primitives/radio/styles.ts +0 -116
  598. package/src/core/primitives/select/__workshop__/.eslintrc +0 -5
  599. package/src/core/primitives/select/styles.ts +0 -166
  600. package/src/core/primitives/spinner/__workshop__/.eslintrc +0 -5
  601. package/src/core/primitives/stack/__workshop__/.eslintrc +0 -5
  602. package/src/core/primitives/stack/styles.ts +0 -31
  603. package/src/core/primitives/switch/__workshop__/.eslintrc +0 -5
  604. package/src/core/primitives/switch/styles.ts +0 -172
  605. package/src/core/primitives/text/__workshop__/.eslintrc +0 -5
  606. package/src/core/primitives/text/styles.ts +0 -73
  607. package/src/core/primitives/textArea/__workshop__/.eslintrc +0 -5
  608. package/src/core/primitives/textInput/__workshop__/.eslintrc +0 -5
  609. package/src/core/primitives/textInput/__workshop__/multipleTones.tsx +0 -20
  610. package/src/core/primitives/tooltip/__workshop__/.eslintrc +0 -5
  611. package/src/core/theme/__workshop__/.eslintrc +0 -5
  612. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  613. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  614. package/src/core/theme/__workshop__/build/story.tsx +0 -457
  615. package/src/core/theme/__workshop__/canvas.tsx +0 -350
  616. package/src/core/theme/__workshop__/color.tsx +0 -62
  617. package/src/core/theme/__workshop__/debug/story.tsx +0 -401
  618. package/src/core/theme/__workshop__/index.ts +0 -39
  619. package/src/core/theme/__workshop__/layer.tsx +0 -78
  620. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  621. package/src/core/utils/boundaryElement/__workshop__/.eslintrc +0 -5
  622. package/src/core/utils/elementQuery/__workshop__/.eslintrc +0 -5
  623. package/src/core/utils/layer/__workshop__/.eslintrc +0 -5
  624. package/src/core/utils/portal/__workshop__/.eslintrc +0 -5
  625. package/src/core/utils/virtualList/__workshop__/.eslintrc +0 -5
  626. package/src/css/primitives/selectable/rules.ts +0 -27
  627. package/src/css/primitives/selectable/selectable.ts +0 -9
  628. package/src/css/primitives/selectable/types.ts +0 -6
  629. package/src/theme/system/color/badge.ts +0 -20
  630. package/src/theme/system/theme.ts +0 -138
  631. package/src/theme/system/v0/color/_system.ts +0 -13
  632. package/theme.js +0 -2
  633. package/src/core/{theme → _compat/theme}/index.ts +1 -1
  634. package/src/core/{theme → _compat/theme}/types.ts +0 -0
  635. package/src/core/components/autocomplete/{__fixtures__ → __mocks__}/countries.ts +0 -0
  636. package/src/core/primitives/kbd/{index.tsx → index.ts} +0 -0
  637. package/src/css/primitives/{selectable → _selectable}/index.ts +0 -0
  638. package/src/theme/{system/v0 → v0}/avatar.ts +0 -0
  639. package/src/theme/{system/v0 → v0}/color/base.ts +0 -0
  640. package/src/theme/{system/v0 → v0}/color/button.ts +0 -0
  641. package/src/theme/{system/v0 → v0}/color/card.ts +0 -0
  642. package/src/theme/{system/v0 → v0}/color/index.ts +1 -1
  643. package/src/theme/{system/v0 → v0}/color/muted.ts +0 -0
  644. package/src/theme/{system/v0 → v0}/color/selectable.ts +0 -0
  645. package/src/theme/{system/v0 → v0}/color/solid.ts +0 -0
  646. package/src/theme/{system → v0}/focusRing.ts +0 -0
  647. package/src/theme/{system/v0 → v0}/input.ts +0 -0
  648. package/src/theme/{system → v0}/layer.ts +0 -0
  649. package/src/theme/{system → v0}/shadow.ts +0 -0
  650. package/src/theme/{system → v0}/styles.ts +0 -0
  651. package/src/theme/{system → v2}/color/_system.ts +1 -1
  652. /package/src/theme/{system → v2}/color/avatar.ts +0 -0
  653. /package/src/theme/{system → v2}/color/button.ts +0 -0
  654. /package/src/theme/{system → v2}/color/index.ts +0 -0
  655. /package/src/theme/{system → v2}/color/input.ts +0 -0
  656. /package/src/theme/{system → v2}/color/kbd.ts +0 -0
  657. /package/src/theme/{system → v2}/color/selectable.ts +0 -0
  658. /package/src/theme/{system → v2}/color/shadow.ts +0 -0
  659. /package/src/theme/{system → v2}/color/state.ts +0 -0
  660. /package/src/theme/{system → v2}/color/syntax.ts +0 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/core/_compat/types.ts","../src/core/constants.ts","../src/core/_compat/styles/helpers.ts","../src/core/_compat/styles/font/responsiveFont.ts","../src/core/_compat/styles/font/codeFontStyle.ts","../src/core/_compat/styles/font/headingFontStyle.ts","../src/core/_compat/styles/font/labelFontStyle.ts","../src/core/_compat/styles/font/textAlignStyle.ts","../src/core/_compat/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useClickOutsideEvent.ts","../src/core/hooks/useCustomValidity.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/hooks/useMatchMedia.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/lib/styled/members.ts","../src/core/lib/styled/elements.ts","../src/core/lib/styled/styled.ts","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/_compat/styles/focusRing/index.ts","../src/core/_compat/styles/input/responsiveInputPaddingStyle.ts","../src/core/_compat/styles/input/textInputStyle.ts","../src/core/_compat/styles/radius/radiusStyle.ts","../src/core/primitives/label/styles.ts","../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/box/box.tsx","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/animatedSpinnerIcon.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/primitives/button/button.tsx","../src/core/primitives/card/RootCardContext.ts","../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/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/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../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/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../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/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/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/menuButton.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/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\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 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 ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\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 ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\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 ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\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 {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\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity'\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\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","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function px(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue}px`\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(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/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n fontWeight,\n 'padding': '1px 0',\n 'margin': 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n 'fontSize': rem(fontSize),\n 'lineHeight': `calc(${lineHeight} / ${fontSize})`,\n 'letterSpacing': rem(letterSpacing),\n 'transform': `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useMemo} from 'react'\nimport {_getArrayProp} from '../_compat'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n // JSON.stringify is fast, but it's not faster than useMemo's referencial equality check\n const __perf_hash__ = useMemo(() => JSON.stringify(val ?? defaultVal), [defaultVal, val])\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__],\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\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, onEvent])\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","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\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'\nimport {ElementSize, _elementSizeObserver} 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 {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\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://react.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","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = 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 {createContext, type Context} from 'react'\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 type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: rootTheme = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\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'\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 {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.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 {\n css as _css,\n createGlobalStyle as _createGlobalStyle,\n type ExecutionContext as _ExecutionContext,\n keyframes as _keyframes,\n // ThemeProvider as _ThemeProvider,\n useTheme as _useTheme,\n} from 'styled-components'\n\nexport const createGlobalStyle = _createGlobalStyle\nexport const css = _css\nexport type ExecutionContext = _ExecutionContext\nexport const keyframes = _keyframes\n// export const ThemeProvider = _ThemeProvider\nexport const useTheme = _useTheme\n","export const elements = [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'use',\n 'var',\n 'video',\n 'wbr', // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'tspan',\n] as const\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport {createElement, forwardRef} from 'react'\nimport {styled as _styled} from 'styled-components'\nimport {elements} from './elements'\n\nconst baseStyled = (tagName: string): any => {\n const m = (_strings: TemplateStringsArray, ..._interpolations: any[]) => {\n const Styled = forwardRef(function Styled(props: any, ref: any) {\n const {as, forwardedAs, ...rest} = props\n\n const sanitizedProps = Object.fromEntries(\n Object.entries(rest)\n .filter(([, val]) => Boolean(val) && (!isArray(val) || val.length > 0))\n .map(([key, val]) => {\n if (key.startsWith('$')) {\n return [`data-${toSnakeCase(key.slice(1))}`, val]\n }\n\n return [key, val]\n }),\n )\n\n const t = as ?? tagName\n\n return createElement(t, {...sanitizedProps, as: forwardedAs, ref})\n })\n\n Styled.displayName = `Styled(${typeof tagName === 'function' ? (tagName as any).displayName : tagName})`\n\n return Styled\n }\n\n m['attrs'] = (attrs: any) => {\n return (_strings: TemplateStringsArray, ..._interpolations: any[]) => {\n const StyledAttrs = forwardRef(function StyledAttrs(_props: any, ref: any) {\n const props = {...attrs, ..._props}\n const {as, forwardedAs, ...rest} = props\n\n const sanitizedProps = Object.fromEntries(\n Object.entries(rest)\n .filter(([, val]) => Boolean(val) && (!isArray(val) || val.length > 0))\n .map(([key, val]) => {\n if (key.startsWith('$')) {\n return [`data-${toSnakeCase(key.slice(1))}`, val]\n }\n\n return [key, val]\n }),\n )\n\n const t = as ?? tagName\n\n return createElement(t, {...sanitizedProps, as: forwardedAs, ref})\n })\n\n StyledAttrs.displayName = `StyledAttrs(${typeof tagName === 'function' ? (tagName as any).displayName : tagName})`\n\n return StyledAttrs\n }\n }\n\n return m\n}\n\nexport const styled = baseStyled as typeof _styled\n\nfor (const tagName of elements) {\n ;(styled as any)[tagName] = baseStyled(tagName)\n}\n\nfunction toSnakeCase(str: string): string {\n return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)\n}\n\nfunction isArray(value: unknown): value is unknown[] {\n return Array.isArray(value)\n}\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from '../lib/styled'\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","import {useMemo, useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\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://react.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://react.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 {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from '../../../lib/styled'\nimport {CardTone} from '../../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {ThemeProps} from '../../_compat'\nimport {css} from '../../lib/styled'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {composeClassNames, FontStyleProps, label} from '@sanity/ui/css'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../_compat/styles/internal'\nimport {styled} from '../../lib/styled'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps extends FontStyleProps {\n accent?: boolean\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n className,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <Root\n data-ui=\"Label\"\n {...restProps}\n $weight={weight}\n className={composeClassNames(\n className,\n label({\n accent,\n align,\n muted,\n size,\n }),\n )}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n\nLabel.displayName = 'ForwardRef(Label)'\n","import {\n avatar,\n avatarArrow,\n avatarBgStroke,\n avatarImage,\n avatarInitials,\n avatarStroke,\n composeClassNames,\n} from '@sanity/ui/css'\nimport {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\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 as?: React.ElementType | keyof JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | 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: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.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 {avatar: avatarTheme} = useTheme_v2()\n const As = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatarTheme.sizes[size[0]] || avatarTheme.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\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) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(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-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n className={composeClassNames(\n className,\n avatar({\n arrowPosition,\n color,\n size: sizeProp,\n }),\n )}\n // data-arrow-position={arrowPosition}\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 {!imageFailed && src && (\n <svg className={avatarImage()} viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <ellipse\n className={avatarBgStroke()}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke()}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <span className={avatarInitials()}>\n <Label as=\"span\" size={initialsSize} style={{color: 'inherit'}} weight=\"medium\">\n {initials}\n </Label>\n </span>\n </>\n )}\n </As>\n )\n})\n\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {rem, _responsive, ThemeProps} from '../../_compat'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {styled, css} from '../../lib/styled'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = 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 <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Root>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {rem, _responsive, ThemeProps} from '../../_compat'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {styled, css} from '../../lib/styled'\nimport {AvatarSize} from '../../types'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children = useMemo<React.ReactElement[]>(\n () => Children.toArray(childrenProp).filter(isValidElement),\n [childrenProp],\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 <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </Root>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {box, BoxStyleProps, composeClassNames, PositionStyleProps} from '@sanity/ui/css'\nimport {GapStyleProps} from '@sanity/ui/css'\nimport {forwardRef} from 'react'\n\n/**\n * @public\n */\nexport interface BoxProps extends BoxStyleProps, GapStyleProps, PositionStyleProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\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: BoxProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows' | 'wrap' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n align,\n as: As = 'div',\n className,\n column,\n columnStart,\n columnEnd,\n direction,\n display = 'block',\n flex,\n gap,\n gapX,\n gapY,\n height,\n inset,\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 row,\n rowStart,\n rowEnd,\n sizing,\n width,\n wrap,\n ...restProps\n } = props\n\n return (\n <As\n data-as={typeof As === 'string' ? As : undefined}\n data-ui=\"Box\"\n {...restProps}\n className={composeClassNames(\n className,\n box({\n align,\n column,\n columnStart,\n columnEnd,\n direction,\n display,\n flex,\n gap,\n gapX,\n gapY,\n height,\n inset,\n justify,\n overflow,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n row,\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 {composeClassNames, text, TextStyleProps} from '@sanity/ui/css'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from '../../lib/styled'\n\n/**\n * @public\n */\nexport interface TextProps extends TextStyleProps {\n accent?: boolean\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis' | 'none'\n weight?: ThemeFontWeightKey\n}\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\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: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children: childrenProp,\n className,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\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 muted,\n size,\n weight,\n }),\n )}\n >\n {children}\n </As>\n )\n})\n\nText.displayName = 'ForwardRef(Text)'\n","import {badge, composeClassNames, RadiusStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, RadiusStyleProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\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: BadgeProps & React.HTMLProps<HTMLDivElement>,\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 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 size={fontSize}>{children}</Text>\n </Box>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface FlexProps extends Omit<BoxProps, 'display'> {}\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: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, direction = 'row', ...restProps} = props\n\n return (\n <Box\n data-ui=\"Flex\"\n {...restProps}\n direction={direction}\n display=\"flex\"\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n\nFlex.displayName = 'ForwardRef(Flex)'\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 {forwardRef} from 'react'\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: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.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 {buttonLoadingBox, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {button} from '@sanity/ui/css'\nimport {PaddingStyleProps, RadiusStyleProps} from '@sanity/ui/css'\nimport {Width} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface ButtonProps extends PaddingStyleProps, RadiusStyleProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: ResponsiveProp<FontTextSize>\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: ResponsiveProp<FlexJustify>\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: ResponsiveProp<Space>\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n textOverflow?: TextProps['textOverflow']\n textWeight?: TextProps['weight']\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n // width?: ButtonWidth\n width?: ResponsiveProp<Width>\n}\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width' | 'height' | 'wrap'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n as: As = 'button',\n children,\n className,\n disabled,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n textOverflow = 'ellipsis',\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button: buttonTheme} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n // const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <As\n data-ui=\"Button\"\n {...restProps}\n // $mode={mode}\n // $radius={radius}\n // $tone={tone}\n className={composeClassNames(\n className,\n button({\n mode,\n radius: radiusProp,\n tone,\n width,\n }),\n )}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n // $width={width}\n >\n {Boolean(loading) && (\n <Box align=\"center\" className={buttonLoadingBox()} display=\"flex\" justify=\"center\">\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text as=\"span\" size={fontSize} style={{flex: 'none'}}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n as=\"span\"\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow={textOverflow}\n weight={textWeight ?? buttonTheme.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text as=\"span\" size={fontSize} style={{flex: 'none'}}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </As>\n )\n})\n\nButton.displayName = 'ForwardRef(Button)'\n","import {createContext} from 'react'\n\nexport const RootCardContext = createContext<{renderedVars: boolean} | null>(null)\n","import {card, CardStyleProps, composeClassNames} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useContext} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {RootCardContext} from './RootCardContext'\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 muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\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: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\n muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n style,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootCard = useContext(RootCardContext)\n const rootTheme = useRootTheme()\n\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not\n // changing, avoid unnecessary ThemeColorProvider\n const node = (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Box\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n as={as}\n className={composeClassNames(\n className,\n // rootCard ? undefined : 'root',\n card({\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n radius,\n shadow,\n }),\n )}\n data-checkered={checkered ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-muted={muted ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n ref={ref}\n selected={selected}\n style={style}\n />\n </ThemeColorProvider>\n )\n\n if (!rootCard) {\n return <RootCardContext.Provider value={{renderedVars: true}}>{node}</RootCardContext.Provider>\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 {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {useCustomValidity} from '../../hooks'\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: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = 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 useCustomValidity(ref, customValidity)\n\n return (\n <span className={composeClassNames(className, checkbox())} data-ui=\"Checkbox\" style={style}>\n <input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n className={composeClassNames(className, checkboxInput())}\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","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport {code, composeClassNames, FontStyleProps} from '@sanity/ui/css'\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\n\n/**\n * @public\n */\nexport interface CodeProps extends Omit<FontStyleProps, 'align'> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\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: CodeProps & Omit<React.HTMLProps<HTMLPreElement>, 'as' | 'size'>,\n ref: React.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 const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <As\n data-ui=\"Code\"\n {...restProps}\n className={composeClassNames(className, code({size, weight}))}\n ref={ref}\n >\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </As>\n )\n})\n\nCode.displayName = 'ForwardRef(Code)'\n","import {composeClassNames, container, ContainerStyleProps} from '@sanity/ui/css'\nimport {forwardRef} from 'react'\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: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, className, 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 />\n )\n})\n\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\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: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, children, ...restProps} = props\n\n return (\n <Box\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n display=\"grid\"\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Box>\n )\n})\n\nGrid.displayName = 'ForwardRef(Grid)'\n","import {composeClassNames, FontStyleProps, heading, ResponsiveProp} from '@sanity/ui/css'\nimport {FontHeadingSize} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from '../../lib/styled'\n\n/**\n * @public\n */\nexport interface HeadingProps extends FontStyleProps {\n accent?: boolean\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: ResponsiveProp<FontHeadingSize>\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n}\n\n// todo\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children: childrenProp,\n className,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <As\n data-ui=\"Heading\"\n {...restProps}\n // todo\n // $align={useArrayProp(align)}\n className={composeClassNames(\n className,\n heading({\n accent,\n align,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span>{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 {forwardRef, useMemo, Children, ForwardedRef} from 'react'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface InlineProps\n extends Omit<BoxProps, 'align' | 'display' | 'gap' | 'gapX' | 'gapY' | 'justify'> {\n /** The spacing between children. */\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: InlineProps & Omit<React.HTMLProps<HTMLDivElement>, 'wrap'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children: childrenProp, 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={space}\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 {forwardRef} from 'react'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps extends BoxProps, RadiusStyleProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\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: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.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 padding={padding}\n ref={ref}\n >\n <Text as=\"span\" 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 {ForwardedRef, HTMLProps, ReactElement, forwardRef} from 'react'\nimport {styled, css} from '../../lib/styled'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst Root = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Root {...restProps} $w={w} ref={ref}>\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 <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </Root>\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 {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.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'\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","/**\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: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.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 {forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media = theme.media, ...restProps} = props\n\n const ref = useRef<HTMLDivElement | null>(null)\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(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setElement(el)\n }, [])\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {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 {useContext} from 'react'\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","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\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 {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.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],\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 {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\n// import {styled} from '../../lib/styled'\nimport {Box, BoxProps} from '../../primitives'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps extends BoxProps {\n // as?: React.ElementType | keyof JSX.IntrinsicElements\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 // as?: React.ElementType | keyof JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\n// const Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows' | 'width' | 'wrap'>,\n forwardedRef: React.Ref<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: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'rows' | 'width' | 'wrap'>,\n ref: React.Ref<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'\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 {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.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): React.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 {useMemo, useRef, useSyncExternalStore} from 'react'\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: React.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): React.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 {forwardRef} from 'react'\nimport {styled} from '../../lib/styled'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {_isScrollable} from '../../helpers'\nimport {styled} from '../../lib/styled'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\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> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.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(() => {\n if (!ref.current) return\n\n let _scrollEl = ref.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\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 [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\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 <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\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 {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\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 {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = 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 {RadiusStyleProps} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {\n // POPOVER_MOTION_CONTENT_OPACITY_PROPERTY,\n POPOVER_MOTION_PROPS,\n} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} 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 RadiusStyleProps {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n}\n\nconst MotionCard = motion(Card)\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: PopoverCardProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows' | 'width' | 'wrap'>,\n ref: React.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 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,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, 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 radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n // todo\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...((animate ? POPOVER_MOTION_PROPS : {}) as any)}\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","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {RadiusStyleProps} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'width'>,\n RadiusStyleProps,\n ResponsiveShadowProps {\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?: React.ReactElement\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?: React.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 open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\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 scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\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: PopoverProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'children' | 'content' | 'height' | 'rows' | 'width' | 'wrap'\n >,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.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 // 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>()\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 })\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 (!childProp || referenceElement) 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 useEffect(() => {\n if (child) return\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs, child])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\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 scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\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(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.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {rem, ThemeProps} from '../../_compat'\nimport {focusRingBorderStyle, focusRingStyle} from '../../_compat/styles/internal'\nimport {css} from '../../lib/styled'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {useCustomValidity} from '../../hooks'\nimport {styled} from '../../lib/styled'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\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: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.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 <Root className={className} 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 </Root>\n )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../_compat'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../_compat/styles/internal'\nimport {css} from '../../lib/styled'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {styled} from '../../lib/styled'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\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 <Root data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface StackProps\n extends Omit<BoxProps, 'direction' | 'display' | 'gap' | 'gapX' | 'gapY'> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\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: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <Box\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n direction=\"column\"\n display=\"flex\"\n forwardedAs={as}\n gapY={space}\n ref={ref}\n />\n )\n})\n\nStack.displayName = 'ForwardRef(Stack)'\n","import {_switch, composeClassNames} from '@sanity/ui/css'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\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: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.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-ui=\"Switch\"\n display=\"inline-block\"\n position=\"relative\"\n style={style}\n >\n <input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n className=\"switch-input\"\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <span aria-hidden className=\"switch-presentation\" data-name=\"representation\">\n <span className=\"switch-track\" />\n <span\n className=\"switch-thumb\"\n data-checked={checked ? '' : undefined}\n data-indeterminate={indeterminate ? '' : undefined}\n />\n </span>\n </Box>\n )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../_compat/styles/internal'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {styled} from '../../lib/styled'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n composeClassNames,\n RadiusStyleProps,\n ResponsiveProp,\n textInput,\n textInputElement,\n} from '@sanity/ui/css'\nimport {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {styled} from '../../lib/styled'\nimport {useRootTheme} from '../../theme'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\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 RadiusStyleProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: ResponsiveProp<Space>\n prefix?: React.ReactNode\n space?: ResponsiveProp<Space>\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {\n backgroundColor: 'transparent',\n top: 0,\n right: 0,\n zIndex: 2,\n}\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: _space = 3, // eslint-disable-line @typescript-eslint/no-unused-vars\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n // const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n // const $hasIcon = Boolean(IconComponent)\n // const $hasIconRight = Boolean(IconRightComponent)\n // const $hasSuffix = Boolean(suffix)\n // const $hasPrefix = Boolean(prefix)\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: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.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 // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Card\n as=\"span\"\n borderTop\n borderLeft\n borderBottom\n className=\"text-input-prefix\"\n radius={radius}\n sizing=\"border\"\n tone=\"inherit\"\n >\n <span>{prefix}</span>\n </Card>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Card\n as=\"span\"\n // $hasPrefix={$hasPrefix}\n // $unstableDisableFocusRing={__unstable_disableFocusRing}\n // $hasSuffix={$hasSuffix}\n // $radius={radius}\n // $scheme={rootTheme.scheme}\n // $tone={rootTheme.tone}\n // border={border}\n className=\"text-input-presentation\"\n data-border={border ? '' : undefined}\n data-disable-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n position=\"absolute\"\n radius={radius}\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 {!$hasClearButton && 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 </Card>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n // $hasPrefix,\n // $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return (v as Space) - 2\n }),\n [padding],\n )\n\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return (v as Space) - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <Card\n // forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n position=\"absolute\"\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n\n // position: absolute;\n // top: 0;\n // right: 0;\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\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 </Card>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Card\n as=\"span\"\n borderTop\n borderRight\n borderBottom\n className=\"text-input-suffix\"\n radius={radius}\n sizing=\"border\"\n tone=\"inherit\"\n >\n <span>{suffix}</span>\n </Card>\n ),\n [radius, suffix],\n )\n\n return (\n <Card\n align=\"center\"\n as=\"span\"\n className={composeClassNames(className, textInput({padding, size: fontSizeProp}))}\n data-ui=\"TextInput\"\n display=\"flex\"\n tone={rootTheme.tone}\n >\n {prefixNode}\n\n <Box\n as=\"span\"\n // className=\"text-input-wrapper\"\n flex={1}\n // todo\n // minWidth={0}\n position=\"relative\"\n >\n <input\n data-as=\"input\"\n // data-scheme={rootTheme.scheme}\n // data-tone={rootTheme.tone}\n {...restProps}\n className={textInputElement()}\n // $fontSize={fontSize}\n // $iconLeft={$hasIcon}\n // $iconRight={$hasIconRight || $hasClearButton}\n // $padding={padding}\n // $scheme={rootTheme.scheme}\n // $space={space}\n // $tone={rootTheme.tone}\n // $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </Box>\n\n {suffixNode}\n </Card>\n )\n})\n\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} 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>()\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","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 {RadiusStyleProps, tooltipCard} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {\n // POPOVER_MOTION_CONTENT_OPACITY_PROPERTY,\n POPOVER_MOTION_PROPS,\n} from '../../constants'\nimport {Placement} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card} 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(Card) as typeof Card\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & RadiusStyleProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows' | 'width' | 'wrap'>,\n ref: React.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 ...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 {...(animate ? POPOVER_MOTION_PROPS : {})}\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 {useContext} from 'react'\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 {useMemo} from 'react'\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?: React.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(\n props: TooltipDelayGroupProviderProps,\n): React.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 isGroupActive: isGroupActive,\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","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\n} from '@floating-ui/react-dom'\nimport {composeClassNames, RadiusStyleProps, tooltip} from '@sanity/ui/css'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\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 {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n // radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\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 /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width' | 'wrap'>,\n forwardedRef: React.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 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 = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\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 })\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 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 delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.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 delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.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 [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\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})\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 // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\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 childRef = useRef<HTMLElement | null>(null)\n\n // Merge refs so that any ref we are overriding is called as well\n useImperativeHandle((childProp as any)?.ref, () => childRef.current)\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: childRef,\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 useEffect(() => {\n if (!child) return undefined\n\n setReferenceElement(childRef.current)\n\n return () => setReferenceElement(null)\n }, [child])\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 >\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.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: 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.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n 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) 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 }, [onMouseMove, showTooltip])\n}\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport {Radius} from '../../types'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: ResponsiveProp<Space>\n // padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return (v as Space) - 2\n }),\n [padding],\n )\n\n const openButtonPadding = useMemo(\n () => padding.map((v) => Math.max((v as Space) - 1, 0)),\n [padding],\n )\n\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n})\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import {breadcrumbs, composeClassNames, GapStyleProps} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {Children, forwardRef, isValidElement, useCallback, useMemo, useRef, useState} from 'react'\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Button, ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps extends GapStyleProps {\n expandButton?: Omit<ButtonProps, 'onClick' | 'selected'>\n maxLength?: number\n separator?: React.ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...restProps\n } = props\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" space={gapY}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n const len = items.length\n\n return (\n <nav\n data-ui=\"Breadcrumbs\"\n {...restProps}\n className={composeClassNames(className, breadcrumbs())}\n ref={ref}\n >\n <Flex align=\"flex-start\" as=\"ol\" gapX={gapX} gapY={gapY} wrap=\"wrap\">\n {items.map((item, itemIndex) => (\n <Flex align=\"flex-start\" as=\"li\" gapX={gapX} gapY={gapY} key={itemIndex}>\n <Box>{item}</Box>\n {itemIndex < len - 1 && <Box aria-hidden>{separator || <Text muted>/</Text>}</Box>}\n </Flex>\n ))}\n </Flex>\n </nav>\n )\n})\n\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n composeClassNames,\n ContainerStyleProps,\n dialog,\n dialogCardRoot,\n dialogContainer,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayout,\n PaddingStyleProps,\n} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends PaddingStyleProps, ContainerStyleProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n}\n\ninterface DialogCardProps extends ContainerStyleProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <Container\n align=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n direction=\"column\"\n display=\"flex\"\n justify=\"center\"\n width={width}\n >\n <Card\n className={dialogCardRoot()}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout()} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader()} position=\"relative\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n <Box\n className={dialogContent()}\n flex={1}\n overflow=\"auto\"\n position=\"relative\"\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'id' | 'rows' | 'width' | 'wrap'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const context = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: positionProp = context.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = context.zOffset || layer.dialog.zOffset,\n animate: _animate = false,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Layer\n {...restProps}\n aria-labelledby={labelId}\n aria-modal\n className={composeClassNames(className, dialog())}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n})\n\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Inline, KBD} from '../../primitives'\n\n/**\n * @public\n */\nexport interface HotkeysProps extends RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\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: HotkeysProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'display' | 'height' | 'ref' | 'rows' | 'size' | 'width' | 'wrap'\n >,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Box as=\"kbd\" data-ui=\"Hotkeys\" {...restProps} display=\"flex\" gap={spaceProp} ref={ref}>\n <Inline as=\"span\" space={space}>\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 {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: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<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 {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.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?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.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: React.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: React.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 {PaddingStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends PaddingStyleProps {\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 space?: ResponsiveProp<Space>\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: MenuProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'role' | 'rows' | 'tabIndex' | 'width' | 'wrap'\n >,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\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 onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\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({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\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 onKeyDown={handleKeyDown}\n overflow=\"auto\"\n outline=\"none\"\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </Box>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': ref,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n // If there's a button then we need to set the reference element to the cloned button ref\n // and if button changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!button) return undefined\n\n setButtonElement(ref.current)\n\n return () => setButtonElement(null)\n }, [button])\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {composeClassNames, menuDivider} from '@sanity/ui/css'\nimport {forwardRef, HTMLProps} from 'react'\n\n/**\n * @public\n */\nexport const MenuDivider = forwardRef(function MenuDivider(\n props: HTMLProps<HTMLHRElement>,\n ref: React.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 {composeClassNames, selectable, SelectableStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, HTMLProps} from 'react'\nimport {SelectableTone} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/** @internal */\nexport interface SelectableProps extends BoxProps, SelectableStyleProps {\n tone?: SelectableTone\n}\n\n/** @internal */\nexport const Selectable = forwardRef(function Selectable(\n props: SelectableProps & Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'wrap' | 'width'>,\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'\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 {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: ResponsiveProp<Space>\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'popover' | 'ref' | 'rows' | 'tabIndex' | 'width' | 'wrap'\n > &\n MenuGroupProps,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\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 = menu.onMouseEnter,\n registerElement,\n } = menu\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: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.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: React.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 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: React.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 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={space} 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 {PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n// import {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\n// import {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends PaddingStyleProps, RadiusStyleProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n // space?: number | number[]\n space?: ResponsiveProp<Space>\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'ref' | 'rows' | 'selected' | 'tabIndex' | 'width' | 'wrap'\n >,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\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 // const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\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: React.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 hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\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 {...restProps}\n aria-pressed={as === 'button' && pressed}\n as={as}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n // forwardedAs={as}\n radius={radius}\n // $radius={useArrayProp(radius)}\n // $padding={useArrayProp(0)}\n // $tone={disabled ? 'default' : tone}\n // $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text 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\n // fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {composeClassNames, skeleton, SkeletonStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, HTMLProps, useEffect, useState} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends SkeletonStyleProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows' | 'width' | 'wrap'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {animated = false, className, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Box\n data-ui=\"Skeleton\"\n {...restProps}\n className={composeClassNames(className, skeleton({radius}))}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n ref={ref}\n />\n )\n})\n\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {\n codeSkeleton,\n composeClassNames,\n headingSkeleton,\n labelSkeleton,\n ResponsiveProp,\n textSkeleton,\n} from '@sanity/ui/css'\nimport {FontCodeSize, FontHeadingSize, FontLabelSize, FontTextSize} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'children' | 'height' | 'rows' | 'size' | 'width' | 'wrap'\n >,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"TextSkeleton\"\n {...restProps}\n className={composeClassNames(className, textSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'children' | 'height' | 'rows' | 'size' | 'width' | 'wrap'\n >,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"LabelSkeleton\"\n {...restProps}\n className={composeClassNames(className, labelSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'children' | 'height' | 'rows' | 'size' | 'width' | 'wrap'\n >,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n {...restProps}\n className={composeClassNames(className, headingSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'children' | 'height' | 'rows' | 'size' | 'width' | 'wrap'\n >,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n // root\n {...restProps}\n className={composeClassNames(className, codeSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.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: React.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 {cloneElement, ForwardedRef, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.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","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {CloseIcon} from '@sanity/icons'\nimport {RadiusStyleProps} from '@sanity/ui/css'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {Box, Button, Flex, Stack, Text, Card} from '../../primitives'\nimport type {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface ToastProps extends RadiusStyleProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorStateToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'ref' | 'rows' | 'title' | 'width' | 'wrap'\n >,\n): React.ReactElement {\n const {\n closable,\n description,\n duration, // eslint-disable-line @typescript-eslint/no-unused-vars\n onClose,\n radius = 3,\n title,\n status,\n ...restProps\n } = props\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Card\n // root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n pointerEvents=\"auto\"\n radius={radius}\n shadow={2}\n tone={cardTone}\n // todo\n // $duration={duration}\n >\n <Flex align=\"flex-start\">\n <Box\n // text-box\n flex={1}\n overflowX=\"auto\"\n padding={3}\n >\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </Box>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n\nToast.displayName = 'Toast'\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [1, 0, 0],\n scale: 0.5,\n transition: prefersReducedMotion ? {duration: 0} : {duration: 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <Layer\n // root\n data-ui=\"ToastProvider\"\n inset={0}\n pointerEvents=\"none\"\n position=\"fixed\"\n zOffset={zOffset}\n width=\"fill\"\n >\n <Box\n // container\n position=\"absolute\"\n sizing=\"border\"\n style={{\n // todo: move to css?\n right: 0,\n bottom: 0,\n maxWidth: 420,\n }}\n width=\"fill\"\n >\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </Box>\n </Layer>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: ResponsiveProp<Space>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'align' | 'as' | 'height' | 'ref' | 'rows' | 'role' | 'width' | 'wrap'\n >,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'ref' | 'role' | 'rows' | 'width' | 'wrap'\n >,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {composeClassNames, ResponsiveProp, treeItem} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: ResponsiveProp<Space>\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'ref' | 'role' | 'rows' | 'width' | 'wrap'\n >,\n): React.ReactElement {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLDivElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\n // marginRight={space}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text\n // ToggleArrowText\n muted={muted}\n size={fontSize}\n weight={weight}\n >\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </Text>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n as=\"li\"\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <Box\n // $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n // todo\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Box>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Box\n // $level={tree.level}\n as=\"div\"\n data-ui=\"TreeItem__box\"\n // todo\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Box>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n})\n\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["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_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","px","pixelValue","rem","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","t0","boundaryElement","$","_c","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useClickOutsideEvent","_temp","resolvedBoundaryElement","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","document","useDebugValue","useCustomValidity","ref","customValidity","setCustomValidity","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","entries","ot","entry","targetDepth","lastReportedSize","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","useForwardedRef","innerRef","Symbol","for","useImperativeHandle","useGlobalKeyDown","onKeyDown","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","themeContext","version","getScopedTheme","jsx","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","css","_css","useTheme","_useTheme","baseStyled","m","_strings","_interpolations","Styled","forwardRef","as","forwardedAs","rest","sanitizedProps","fromEntries","startsWith","toSnakeCase","createElement","attrs","StyledAttrs","_props","styled","str","replace","letter","toLowerCase","useStyledTheme","useTheme_v2","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","max","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveRadiusStyle","radius","$radius","borderRadius","labelBaseStyle","$accent","$muted","code","Root","div","SpanWithTextOverflow","span","Label","childrenProp","textOverflow","accent","align","className","restProps","weight","muted","composeClassNames","label","Avatar","asProp","animateArrowFrom","arrowPositionProp","src","onImageLoadError","__unstable_hideInnerStroke","initials","title","arrowPosition","status","sizeProp","avatar","avatarTheme","As","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t6","t7","handleImageError","t8","t9","t10","initialsSize","t11","t12","avatarArrow","t13","t14","avatarImage","avatarBgStroke","avatarStroke","t15","Fragment","avatarInitials","t16","_responsiveAvatarCounterSizeStyle","avatarSize","minWidth","_avatarCounterBaseStyle","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","jsxs","child","childIndex","cloneElement","String","Box","column","columnStart","columnEnd","direction","flex","gap","gapX","gapY","inset","justify","overflow","marginX","marginY","marginRight","maxWidth","paddingX","paddingY","pointerEvents","position","row","rowStart","rowEnd","sizing","wrap","padding","Text","Badge","mode","_deprecated_mode","badge","Flex","AnimatedSpinnerIcon","animatedSpinnerIcon","SpinnerIcon","Spinner","spinner","Button","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","loading","selected","IconComponent","IconRightComponent","textWeight","icon","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","button","buttonTheme","boxProps","t17","buttonLoadingBox","t18","t19","t20","RootCardContext","Card","shadow","pressed","__unstable_checkered","__unstable_focusRing","checkered","toneProp","rootCard","card","renderedVars","Checkbox","forwardedRef","indeterminate","checked","checkbox","checkboxInput","CheckmarkIcon","RemoveIcon","Code","languageProp","language","Refractor","hasLanguage","registered","Container","container","Grid","Heading","heading","Inline","KBD","kbd","origin","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","min","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","$w","w","StrokePath","path","ShapePath","Arrow","h","strokeWidth","outline","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","findMinBreakpoints","ElementQuery","elementSize","innerWidth","setRef","useCallback","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","href","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","v","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","_temp2","valueRef","_isEqual","objA","objB","keysA","keysB","every","SrOnly","ItemWrapper","VirtualList","renderItem","onChange","getItemKey","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","passive","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","bb0","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","PopoverCard","memo","marginsProp","xProp","yProp","strategy","arrowX","arrowY","arrow","arrowRef","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","getElementRef","AnimatePresence","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","radioBaseStyle","inputElementStyle","dist","radio","markSize","Input","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","ChevronDownIcon","Stack","Switch","_switch","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","backgroundColor","TextInputClearButton","TextInput","clearButton","onClear","prefix","suffix","t21","t22","t23","_width","t24","fontSizeProp","$hasClearButton","handleClearMouseDown","event_0","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","v_0","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","t25","suffixNode","t26","textInput","t27","t28","textInputElement","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","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","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","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","AutocompleteOption","id","onSelect","currentTarget","handleKeyDown","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","openOnFocus","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","handleListBoxKeyDown","active","results","hidden","inputElement","Autocomplete","Breadcrumbs","expandButton","expandButtonProps","_gapProp","separator","_spaceProp","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","breadcrumbs","DialogContext","useDialog","isTargetWithinScope","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","shadowProp","labelId","showCloseButton","showHeader","target_0","dialogContainer","dialogCardRoot","dialogLayout","dialogHeader","dialogContent","dialogFooter","Dialog","context","cardRadius","cardRadiusProp","cardShadow","positionProp","dialog","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","handleRootClick","DialogProvider","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","from","unshift","EMPTY_PATH","_sortElements","_sort","a","b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","popoverProps","MenuDivider","menuDivider","Selectable","selectable","useMenu","MenuGroup","setRootElement","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","Skeleton","animated","visible","setVisible","skeleton","TextSkeleton","textSkeleton","LabelSkeleton","labelSkeleton","HeadingSkeleton","headingSkeleton","CodeSkeleton","codeSkeleton","Tab","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","Toast","description","closable","cardTone","buttonTone","role","verticalAlign","useMounted","ToastContext","toastId","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","querySelectorAll","useTree","tree","TreeGroup","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","ToggleArrowRightIcon","transform","treeItem"],"mappings":"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","x_google_ignoreList":[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
1
+ {"version":3,"file":"index.js","sources":["../src/core/_compat/styles/_responsive.ts","../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx","../src/core/StyleTags.tsx"],"sourcesContent":["import {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n * @deprecated do not use\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {ForwardedRef, MutableRefObject, useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: ForwardedRef<T>): MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {Component, ErrorInfo, PropsWithChildren, ReactNode} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {KeyboardEvent, ReactElement, ReactNode, useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport {Props, Radius} from '../../types'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n disabled?: boolean\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: ResponsiveProp<Space>\n // padding?: number | number[]\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n readOnly?: boolean\n ref?: ForwardedRef<HTMLInputElement>\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: ForwardedRef<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: Omit<\n Props<AutocompleteProps<Option>, 'div'>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'inputMode'\n | 'role'\n | 'spellCheck'\n | 'type'\n >,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 1,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card\n as=\"button\"\n // data-as=\"button\"\n padding={paddingProp}\n radius={2}\n tone=\"inherit\"\n >\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return (v as Space) - 2\n }) as Space[],\n [padding],\n )\n\n const openButtonPadding = useMemo(\n () => padding.map((v) => Math.max((v as Space) - 1, 0)) as Space[],\n [padding],\n )\n\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n display=\"block\"\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n})\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: Omit<\n Props<AutocompleteProps<Option>, 'input'>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'inputMode'\n | 'role'\n | 'spellCheck'\n | 'type'\n >,\n) => ReactElement\n","import {breadcrumbs, composeClassNames, GapStyleProps} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n Children,\n ForwardedRef,\n forwardRef,\n Fragment,\n isValidElement,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Button, ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps extends GapStyleProps {\n expandButton?: Omit<ButtonProps, 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: Props<BreadcrumbsProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...restProps\n } = props\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" space={gapY}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n return (\n <Flex\n as=\"nav\"\n data-ui=\"Breadcrumbs\"\n {...restProps}\n className={composeClassNames(className, breadcrumbs())}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n >\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Flex>\n )\n})\n\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n composeClassNames,\n ContainerStyleProps,\n dialog,\n dialogCardRoot,\n dialogContainer,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayout,\n PaddingStyleProps,\n RadiusStyleProps,\n ResponsiveProp,\n ShadowStyleProps,\n} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {CardTone, DialogPosition, Props, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ContainerStyleProps, PaddingStyleProps, ShadowStyleProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n open?: boolean\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n}\n\ninterface DialogCardProps extends ContainerStyleProps, RadiusStyleProps, ShadowStyleProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n // radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n // shadow: number | number[]\n tone?: CardTone\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp = 4,\n tone,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <Container\n align=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n direction=\"column\"\n display=\"flex\"\n justify=\"center\"\n width={width}\n >\n <Card\n className={dialogCardRoot()}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n tone={tone}\n >\n <Flex className={dialogLayout()} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader()} position=\"relative\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n <Box\n className={dialogContent()}\n flex={1}\n overflow=\"auto\"\n position=\"relative\"\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: Props<DialogProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const context = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n // cardShadow = 3,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n shadow: cardShadow,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n tone,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (context.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (context.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Layer\n {...restProps}\n aria-labelledby={labelId}\n aria-modal\n className={composeClassNames(className, dialog())}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n tone={tone}\n width={width}\n >\n {children}\n </DialogCard>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n})\n\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ButtonProps, Popover, PopoverProps} from '../../primitives'\nimport {Placement, Props, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: ReactElement<Props<ButtonProps, 'button'>>\n id: string\n menu?: ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLElement>) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: Props<MenuProps, 'div'> = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(() => {\n if (!buttonProp) return null\n\n const buttonProps = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n } satisfies Props<ButtonProps, 'button'> & {ref: ForwardedRef<HTMLButtonElement>}\n\n return cloneElement(buttonProp, buttonProps)\n }, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open])\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {composeClassNames, skeleton, SkeletonStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useState} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends SkeletonStyleProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: Props<SkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {animated = false, className, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Box\n data-ui=\"Skeleton\"\n {...restProps}\n className={composeClassNames(className, skeleton({radius}))}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n ref={ref}\n />\n )\n})\n\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {\n codeSkeleton,\n composeClassNames,\n headingSkeleton,\n labelSkeleton,\n ResponsiveProp,\n textSkeleton,\n} from '@sanity/ui/css'\nimport {FontCodeSize, FontHeadingSize, FontLabelSize, FontTextSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: Props<TextSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"TextSkeleton\"\n {...restProps}\n className={composeClassNames(className, textSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: Props<LabelSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"LabelSkeleton\"\n {...restProps}\n className={composeClassNames(className, labelSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: Props<HeadingSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n {...restProps}\n className={composeClassNames(className, headingSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: Props<CodeSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n // root\n {...restProps}\n className={composeClassNames(className, codeSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: Props<TabPanelProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n RadiusStyleProps,\n toast,\n toastLoadingBar,\n toastLoadingBarMask,\n toastLoadingBarProgress,\n} from '@sanity/ui/css'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {motion, type Variant, type Variants} from 'framer-motion'\nimport {ReactElement, ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ButtonTone, Props} from '../../types'\n\n/**\n * @public\n */\nexport interface ToastProps extends RadiusStyleProps {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: Omit<\n Props<ToastProps, 'div'>,\n 'onDrag' | 'onDragEnd' | 'onDragStart' | 'onAnimationStart'\n >,\n): ReactElement {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration ? {type: 'spring', visualDuration, bounce: 0.25} : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionCard\n as=\"li\"\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n width=\"fill\"\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionBox className={toastLoadingBar()} variants={content} transition={transition}>\n <Card className={toastLoadingBarMask()} tone={cardTone} radius={radius} />\n <MotionCard\n // const MotionToast = motion.create(Card) // StyledToast\n // const MotionFlex = motion.create(Flex)\n // const MotionText = motion.create(Text)\n // const MotionLoadingBar = motion.create(Box) // LoadingBar\n // const MotionLoadingBarProgress = motion.create(Card)\n\n className={toastLoadingBarProgress()}\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionBox>\n )}\n </MotionCard>\n )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionBox = motion.create(Box)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {GapStyleProps, PaddingStyleProps, toastLayer} from '@sanity/ui/css'\nimport {ReactNode} from 'react'\n\nimport {Grid} from '../../primitives/grid'\nimport {useLayer} from '../../utils'\n\n/**\n * @public\n */\nexport interface ToastLayerProps extends GapStyleProps, PaddingStyleProps {\n children: ReactNode\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as=\"ul\"\n className={toastLayer()}\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </Grid>\n )\n}\n\nToastLayer.displayName = 'ToastLayer'\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {GapStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n memo,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps extends Pick<GapStyleProps, 'gap'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: Props<TreeProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n ): ReactElement {\n const {children, gap, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n gap={gap ?? space}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo, ReactElement} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {composeClassNames, ResponsiveProp, treeItem} from '@sanity/ui/css'\nimport {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n ElementType,\n KeyboardEvent,\n memo,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, CardProps, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props} from '../../types'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps extends CardProps {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: Omit<Props<TreeItemProps, 'div'>, 'as'>,\n): ReactElement {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs = 'a',\n muted,\n onClick,\n padding = 2,\n radius = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLDivElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </Text>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n as=\"li\"\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <Selectable\n aria-expanded={expanded}\n as={linkAs}\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Selectable\n as=\"button\"\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n})\n\nTreeItem.displayName = 'Memo(TreeItem)'\n","import {compilePalette, compileSystem, compileTheme} from '@sanity/ui/css'\nimport {buildTheme_v3, RootTheme, Theme_v3} from '@sanity/ui/theme'\nimport {ReactNode} from 'react'\n\n/* @beta */\nexport function StyleTags(props: {theme?: Theme_v3}): ReactNode {\n const {theme: themeProp} = props\n\n const theme = themeProp ?? buildTheme_v3()\n\n return (\n <>\n <style href=\"sanity-palette\" precedence=\"palette\">\n {compilePalette(theme._palette)}\n </style>\n <style href=\"sanity-theme\" precedence=\"theme\">\n {compileTheme({v3: theme} as RootTheme)}\n </style>\n <style href=\"sanity-system\" precedence=\"system\">\n {compileSystem()}\n </style>\n </>\n )\n}\n"],"names":["_responsive","media","values","callback","map","statement","mediaIndex","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","t0","boundaryElement","$","_c","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","jsx","Code","children","AutocompleteOption","id","onSelect","selected","value","setTimeout","handleClick","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","InnerAutocomplete","forwardRef","forwardedRef","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","restProps","dispatch","useReducer","defaultRenderOption","useCallback","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","HTMLElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","openButtonPadding","Math","max","openButtonProps","handleOpenClick","onClick","openButtonNode","Box","Button","ChevronDownIcon","inputValue","input","TextInput","AnimatedSpinnerIcon","handleListBoxKeyDown","content","Stack","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Popover","jsxs","displayName","Autocomplete","Breadcrumbs","className","expandButton","expandButtonProps","gap","_gapProp","gapX","space","gapY","maxLength","separator","_spaceProp","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","Children","toArray","isValidElement","items","len","beforeLength","ceil","afterLength","floor","slice","Flex","composeClassNames","breadcrumbs","item","itemIndex","Fragment","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","tone","width","widthProp","shadowProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","t6","event_0","target_0","t7","t8","dialogContainer","t9","dialogCardRoot","t10","dialogLayout","t11","dialogHeader","CloseIcon","t12","dialogContent","t13","t14","dialogFooter","t15","t16","t17","Container","Dialog","context","useTheme_v2","_positionProp","_zOffsetProp","cardShadow","onActivate","animate","cardRadius","position","zOffset","_animate","cardRadiusProp","positionProp","zOffsetProp","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","Layer","Portal","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","_temp","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","t18","bb0","t19","t20","t21","t22","t23","overflow","popoverProps","t24","t25","Skeleton","delay","animated","visible","setVisible","timeout","skeleton","TextSkeleton","size","textSkeleton","LabelSkeleton","labelSkeleton","HeadingSkeleton","headingSkeleton","CodeSkeleton","codeSkeleton","TabPanel","flex","ROLES","warning","success","STATUS_CARD_TONE","BUTTON_TONE","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","closable","description","duration","status","title","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","toast","verticalAlign","toastLoadingBar","toastLoadingBarMask","toastLoadingBarProgress","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionCard","motion","create","MotionFlex","MotionText","MotionBox","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","ToastLayer","paddingX","paddingY","toastLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","dismiss","currentState","toast_0","toast_1","Date","now","LayerProvider","AnimatePresence","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","Tree","memo","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","useTree","tree","TreeGroup","TreeItem","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","ToggleArrowRightIcon","transform","treeItem","Selectable","paddingLeft","StyleTags","theme","themeProp","buildTheme_v3","_palette","compilePalette","compileTheme","v3","compileSystem"],"mappings":";;;AAMgBA,SAAAA,YACdC,OACAC,QACAC,UACa;AAGb,UAFmBD,QAAQE,IAAID,QAAQ,KAAK,CAAE,GAE5BC,IAAI,CAACC,WAAWC,eAC5BA,eAAe,IAAUD,YAEtB;AAAA,IAAC,CAAC,iCAAiCJ,MAAMK,aAAa,CAAC,CAAC,KAAK,GAAGD;AAAAA,EAAAA,CACxE;AACH;ACfO,SAASE,KAAKC,IAA4B;AACzCC,QAAAA,UAAUC,sBAAsBF,EAAE;AAExC,SAAO,MAAM;AACXG,yBAAqBF,OAAO;AAAA,EAC9B;AACF;AAKO,SAASG,MAAMJ,IAA4B;AAChD,MAAIK,eAAoC;AAElCC,QAAAA,eAAeP,KAAK,MAAM;AAC9BM,mBAAeN,KAAKC,EAAE;AAAA,EAAA,CACvB;AAED,SAAO,MAAM;AACPK,oBAAcA,aAAa,GAE/BC,aAAa;AAAA,EACf;AACF;ACVO,SAASC,UAAUC,SAA+B;AACvD,SAAOC,EAAQC,SAASC,iBAAkBH,QAAQI,SAASF,SAASC,aAAa;AACnF;AAKO,SAASE,YAAYL,SAA+B;AAEvDA,SAAAA,QAAQM,WAAW,KAClBN,QAAQM,aAAa,KAAKN,QAAQO,aAAa,UAAU,MAAM,OAEzD,KAGLC,mCAAoBR,OAAO,IACtBC,CAAAA,CAAQD,QAAQS,QAAST,QAAQU,QAAQ,WAG9CC,eAAAA,mBAAmBX,OAAO,IACrBA,QAAQY,SAAS,YAAYZ,QAAQY,SAAS,UAAU,CAACZ,QAAQa,WAIxEC,eAAAA,oBAAoBd,OAAO,KAC3Be,mCAAoBf,OAAO,KAC3BgB,eAAAA,sBAAsBhB,OAAO,IAEtB,CAACA,QAAQa,WAGX;AACT;AAKO,SAASI,aAAajB,SAA+B;AACtD,MAAA,CAACK,YAAYL,OAAO;AACf,WAAA;AAKL,MAAA;AACFA,YAAQkB,MAAM;AAAA,EAAA,QACR;AAAA,EAAA;AAMR,SAAOhB,SAASC,kBAAkBH;AACpC;AAKO,SAASmB,qBAAqBnB,SAA+B;AAClE,WAASoB,IAAI,GAAGA,IAAIpB,QAAQqB,WAAWC,QAAQF,KAAK;AAC5CG,UAAAA,QAAQvB,QAAQqB,WAAWD,CAAC;AAElC,QAAII,eAAAA,cAAcD,KAAK,MAAMN,aAAaM,KAAK,KAAKJ,qBAAqBI,KAAK;AACrE,aAAA;AAAA,EAAA;AAIJ,SAAA;AACT;AAKO,SAASE,oBAAoBzB,SAA+B;AACjE,WAASoB,IAAIpB,QAAQqB,WAAWC,SAAS,GAAGF,KAAK,GAAGA,KAAK;AACjDG,UAAAA,QAAQvB,QAAQqB,WAAWD,CAAC;AAElC,QAAII,eAAAA,cAAcD,KAAK,MAAMN,aAAaM,KAAK,KAAKE,oBAAoBF,KAAK;AACpE,aAAA;AAAA,EAAA;AAIJ,SAAA;AACT;ACrFA,SAASG,aACP1B,SACA2B,aACe;AACTC,QAAAA,MAAM,CAAC5B,OAAO;AAEpB,aAAW6B,MAAMF;AACXG,UAAMC,QAAQF,EAAE,IAClBD,IAAII,KAAK,GAAGH,EAAE,IAEdD,IAAII,KAAKH,EAAE;AAIRD,SAAAA,IAAIK,OAAOhC,OAAO;AAC3B;AAiBOiC,SAAAA,gBAAAC,UAAAC,IAAAC,iBAAA;AAAA,QAAAC,IAAAC,qBAAAA,EAAA,EAAA,GAELZ,cAAAS,OAA+CI,SAAAC,eAAAA,cAA/CL,IAGA,CAAApC,SAAA0C,UAAA,IAA8BC,MAAAA,aAAiC;AAACC,MAAAA;AAAAN,IAAAtC,CAAAA,MAAAA,WAAAsC,SAAAX,eACvBiB,KAAAA,MAAMlB,aAAa1B,SAAS2B,WAAW,GAACW,OAAAtC,SAAAsC,OAAAX,aAAAW,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAjF,QAAA,CAAAO,UAAAC,WAAA,IAAgCH,MAAAA,SAASC,EAAwC,GACjFG,cAAoBC,MAAAA,OAAOH,QAAQ;AAAC,MAAAI,IAAAC;AAAAZ,IAAAtC,CAAAA,MAAAA,WAAAsC,SAAAX,eAE1BsB,KAAAA,MAAA;AACR,UAAAE,eAAqBJ,YAAWK,SAChCC,eAAqB3B,aAAa1B,SAAS2B,WAAW;AAElDwB,QAAAA,aAAY7B,WAAY+B,aAAY/B,QAAO;AACjC+B,kBAAAA,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,IAAA;AAAA,eAK/BxB,MAAYsB;AAAY,UAAA,CACtBE,aAAYC,SAAUzB,EAAE,GAAC;AAChBwB,oBAAAA,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,MAAA;AAAA,eAMjCE,QAAYF;AAAY,UAAA,CACtBF,aAAYG,SAAUzB,IAAE,GAAC;AAChBwB,oBAAAA,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,MAAA;AAAA,EAKrCH,GAAAA,KAAA,CAAClD,SAAS2B,WAAW,GAACW,OAAAtC,SAAAsC,OAAAX,aAAAW,OAAAW,IAAAX,OAAAY,OAAAD,KAAAX,EAAA,CAAA,GAAAY,KAAAZ,EAAA,CAAA,IA5BzBkB,MAAAA,UAAUP,IA4BPC,EAAsB;AAAC,MAAAO,IAAAC;AAAA,SAAApB,EAAAD,CAAAA,MAAAA,mBAAAC,SAAAO,YAAAP,EAAA,CAAA,MAAAH,YAEhBsB,KAAAA,MAAA;AAAA,QAAA,CACHtB;AAAQ;AAEb,UAAAwB,wBAAAC,CAAA,QAAA;AACE,YAAAC,SAAeD,IAAGC;AAAO,UAEnBA,kBAAMC,QAIRzB,EAAAA,mBAAoBA,CAAAA,gBAAejC,SAAUyD,MAAM,IAAC;AAAA,mBAInDE,QAAYlB;AAAQ,cACnBgB,WAAWhC,QAAMA,KAAEzB,SAAUyD,MAAM;AAAC;AAK1C1B,iBAASyB,GAAG;AAAA,MAAA;AAAA,IAAC;AAGfI,WAAAA,OAAAC,iBAAwB,aAAaN,qBAAqB,GAAC,MAAA;AAGzDO,aAAAA,oBAA2B,aAAaP,qBAAqB;AAAA,IAAC;AAAA,EAAA,GAE/DD,KAACrB,CAAAA,iBAAiBF,UAAUU,QAAQ,GAACP,OAAAD,iBAAAC,OAAAO,UAAAP,OAAAH,UAAAG,QAAAmB,IAAAnB,QAAAoB,OAAAD,KAAAnB,EAAA,EAAA,GAAAoB,KAAApB,EAAA,EAAA,IA5BxCkB,MAAUC,UAAAA,IA4BPC,EAAqC,GAEjChB;AAAU;AC3GZ,SAAAyB,eAAAnE,SAAA;AACeoE,SAAAA,8BAAepE,OAAO,GAExBqE,gBAAsB;AAAA;ACCnC,SAAAC,gBAAAC,KAAA;AAAA,QAAAjC,IAAAC,qBAAAA,EAAA,CAAA,GACLiC,WAAiBxB,aAAA,IAAqB;AAACZ,MAAAA;AAAAE,SAAAA,EAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAEdtC,KAAAA,MAAMoC,SAAQpB,SAASd,OAAAF,MAAAA,KAAAE,EAAA,CAAA,GAAhDqC,0BAAoBJ,KAAKnC,EAAuB,GAEzCoC;AAAQ;ACOV,MAAMI,sBAAsBC,MAAAA,UAAkD;AAAA,EACnFC,QAA4B;AAAA,IAACC,OAAO;AAAA,EAAI;AAAA,EAExC,OAAOC,yBAAyBD,OAAkC;AAEzD,WAAA;AAAA,MAACA;AAAAA,IAAK;AAAA,EAAA;AAAA,EAGfE,kBAAkBF,OAAcG,MAAuB;AACrD,SAAKC,MAAMC,QAAQ;AAAA,MAACL;AAAAA,MAAOG;AAAAA,IAAAA,CAAK;AAAA,EAAA;AAAA,EAGlCG,SAAoB;AACZ,UAAA;AAAA,MAACN;AAAAA,QAAS,KAAKD;AAErB,QAAIC,OAAO;AACT,YAAMO,UAAU,OAAOP,OAAOO,WAAY,WAAWP,MAAMO,UAAU;AAE9D,aAAAC,2BAAA,IAACC,uBAAMF,UAAQ,QAAA,CAAA;AAAA,IAAA;AAGxB,WAAO,KAAKH,MAAMM;AAAAA,EAAAA;AAEtB;ACnCO,SAAAC,mBAAAP,OAAA;AAAA7C,QAAAA,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAAkD;AAAAA,IAAAE;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAkDX;AAAK/C,MAAAA;AAAAE,IAAAsD,CAAAA,MAAAA,YAAAtD,SAAAwD,SAEvB1D,KAAAA,MAAA;AAG9B2D,eAAA,MAAA;AACEH,eAASE,KAAK;AAAA,OAAC,CACb;AAAA,EACLxD,GAAAA,OAAAsD,UAAAtD,OAAAwD,OAAAxD,OAAAF,MAAAA,KAAAE,EAAA,CAAA;AAND,QAAA0D,cAAoB5D;AAMCQ,MAAAA;AAAAN,WAAA0D,eAGnBpD,KAAAqD,CAAA,UAAA;AACMA,UAAKC,QAAS,WAAYC,CAAAA,sCAAuBF,MAAKG,aAAc,KACtEJ,YAAY;AAAA,EAAC,GAEhB1D,OAAA0D,aAAA1D,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AALH,QAAA+D,gBAAsBzD;AAOrBK,MAAAA;AAAA,SAAAX,EAAAmD,CAAAA,MAAAA,YAAAnD,EAAA,CAAA,MAAA0D,eAAA1D,EAAA+D,CAAAA,MAAAA,iBAAA/D,EAAA,CAAA,MAAAqD,MAAArD,SAAAuD,YAGC5C,KASKsC,2BAAAA,IAAA,MARYM,EAAAA,2BACP,WAAA,sBACJF,IACC,MAAA,UACIK,sBACEK,0BAEH,SACV,CAAA,GAAK/D,OAAAmD,UAAAnD,OAAA0D,aAAA1D,OAAA+D,eAAA/D,OAAAqD,IAAArD,OAAAuD,UAAAvD,QAAAW,MAAAA,KAAAX,EAAA,EAAA,GATLW;AASK;ACrCOqD,SAAAA,oBACdxB,OACAyB,KACmB;AACfA,SAAAA,IAAI3F,SAAS,iBACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO0B,aAAa;AAAA,IAAMC,SAAS;AAAA,IAAMC,OAAOH,IAAIG;AAAAA,EAAAA,IAG7DH,IAAI3F,SAAS,gBACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO2B,SAAS;AAAA,EAAA,IAGzBF,IAAI3F,SAAS,cACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO2B,SAAS;AAAA,IAAOC,OAAO;AAAA,EAAA,IAGvCH,IAAI3F,SAAS,eACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO0B,aAAa;AAAA,IAAME,OAAO;AAAA,IAAMZ,OAAO;AAAA,EAAA,IAGvDS,IAAI3F,SAAS,gBACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO2B,SAAS;AAAA,IAAOC,OAAO;AAAA,EAAA,IAGvCH,IAAI3F,SAAS,cACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO4B,OAAO5B,MAAM4B,SAASH,IAAIG;AAAAA,EAAAA,IAG1CH,IAAI3F,SAAS,wBACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO0B,aAAaD,IAAIT;AAAAA,IAAOa,aAAaJ,IAAII,eAAe7B,MAAM6B;AAAAA,EAAAA,IAG9EJ,IAAI3F,SAAS,wBACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO6B,aAAaJ,IAAII;AAAAA,EAAAA,IAGjCJ,IAAI3F,SAAS,iBACR;AAAA,IAAC,GAAGkE;AAAAA,IAAO0B,aAAaD,IAAIT;AAAAA,IAAOY,OAAO;AAAA,IAAMZ,OAAOS,IAAIT;AAAAA,EAAAA,IAG7DhB;AACT;ACzCO,MAAM8B,mCAAmC,CAC9C,WACA,SACA,OACA,SACA,QACA,OACA,UACA,YACA,QACA,OACA,UAAU,GAMCC,iCAA4C,gBAK5CC,2CAAwD,CAAC,gBAAgB,WAAW,GCuE3FC,uBAAuBA,CAACjB,OAAekB,WAC3CA,SAASA,OAAOlB,QAAQA,OAEpBmB,wBAAwBA,CAACP,OAAeM,WAC5CA,OAAOlB,MAAMoB,YAAY,EAAEC,QAAQT,MAAMQ,YAAa,CAAA,IAAI,IAEtDE,oBAAoBC,MAAAA,WAAW,SAGnClC,OAeAmC,cACA;AACM,QAAA;AAAA,IACJC,SAAS;AAAA,IACTC;AAAAA,IACA3G;AAAAA,IACA4G,cAAcC;AAAAA,IACdC,WAAW;AAAA,IACXC;AAAAA,IACAjC;AAAAA,IACAkC,UAAUC,eAAAA;AAAAA,IACVC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAvC;AAAAA,IACAwC;AAAAA,IACAC;AAAAA,IACAC,SAASC;AAAAA,IACTC,SAASC,cAAc;AAAA,IACvBC,UAAUZ,eAAAA;AAAAA,IACVa;AAAAA,IACAC,SAAS;AAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC,cAAcC;AAAAA,IACdC;AAAAA,IACAC,cAAcnC;AAAAA,IACdoC;AAAAA,IACArD,OAAOsD;AAAAA,IACP,GAAGC;AAAAA,EAAAA,IACDlE,OAEE,CAACL,OAAOwE,QAAQ,IAAIC,MAAAA,WAAWjD,qBAAqB;AAAA,IACxDE,aAAa4C,aAAa;AAAA,IAC1B3C,SAAS;AAAA,IACTE,aAAa;AAAA,IACbD,OAAO;AAAA,IACPZ,OAAOsD,aAAa;AAAA,EAAA,CACrB,GAEK;AAAA,IAAC5C;AAAAA,IAAaC;AAAAA,IAASE;AAAAA,IAAaD;AAAAA,IAAOZ;AAAAA,EAAAA,IAAShB,OAEpD0E,sBAAsBC,MAAAA,YAC1B,CAAC;AAAA,IAAC3D,OAAAA;AAAAA,EAAAA,MACAP,2BAAA;AAAA,IAACmE,eAAA;AAAA,IAAA;AAAA,MACC,IAAG;AAAA,MAEH,SAASjB;AAAAA,MACT,QAAQ;AAAA,MACR,MAAK;AAAA,MAEL,yCAACkB,eAAK,MAAA,EAAA,MAAMhC,UAAU,cAAa,YAChC7B,UACH,QAAA,CAAA;AAAA,IAAA;AAAA,EAAA,GAGJ,CAAC6B,UAAUc,WAAW,CACxB,GAEMM,eACJ,OAAOC,oBAAqB,aAAaA,mBAAmBQ,qBAExD/B,eACJ,OAAOC,oBAAqB,aAAaA,mBAAmBT,uBAGxD2C,iBAAiB5G,MAAAA,OAA8B,IAAI,GACnD6G,2BAA2B7G,aAA8B,IAAI,GAC7D8G,kBAAkB9G,MAAAA,OAAgC,IAAI,GACtD+G,oBAAoB/G,MAA8B,OAAA,IAAI,GAGtDgH,iBAAiBhH,MAAAA,OAAO,EAAK,GAC7BiH,WAAWjH,MAAAA,OAAO8C,KAAK,GACvBoE,eAAelH,MAAAA,OAAOoG,SAAS,GAC/Be,wBAAwBnH,MAAAA,OAAO,EAAK;AAIxCsE,QAAAA,oBAAAA,cACA,MAAMwC,gBAAgB1G,OACxB;AAEA,QAAMgH,YAAY,GAAGzE,EAAE,YACjB2C,UAAUxG,MAAMC,QAAQwG,WAAW,IAAIA,cAAc9F,4BACrD+F,UAAU6B,eAAAA,aAAa5B,WAAW,GAClC6B,gBAAgBC,MAAAA,QACpB,MAAOzE,UAAU,OAAOwC,QAAQkC,KAAMC,CAAAA,MAAMA,EAAE3E,UAAUA,KAAK,IAAItD,QACjE,CAAC8F,SAASxC,KAAK,CACjB,GACM4E,kBAAkBH,MAAAA,QACtB,MAAMjC,QAAQrG,OAAQ+E,CAAYN,WAAAA,QAAQe,aAAaf,OAAOM,MAAM,IAAI,EAAK,GAC7E,CAACS,cAAca,SAAS5B,KAAK,CAC/B,GACMiE,qBAAqBD,gBAAgBpJ,QACrCsJ,eAAepE,cAAc,GAAGb,EAAE,WAAWa,WAAW,KAAKhE,QAC7DqI,WAAYnE,UAAU,QAAQqB,WAAatB,WAAWC,UAAU,MAEhEoE,iBAAiBrB,MAAAA,YACpBxD,CAAwC,UAAA;AACvCF,eAAW,MAAM;AAIf,UAAIoE,sBAAsB/G;AACxB;AAGIP,YAAAA,YAA2BiG,mBAAmB,CAAA,GAAIiC,OACtDnB,eAAexG,UAAU,CAACwG,eAAexG,OAAO,IAAI,CAAA,GACpDyG,yBAAyBzG,UAAU,CAACyG,yBAAyBzG,OAAO,IAAI,EAC1E;AAEA,UAAI4H,cAAc;AAElB,UAAI9K,SAASC;AACX,mBAAW8K,KAAKpI;AACd,cAAIoI,MAAM/K,SAASC,iBAAiB8K,EAAE7K,SAASF,SAASC,aAAa,GAAG;AACxD,0BAAA;AACd;AAAA,UAAA;AAAA;AAKF6K,sBAAgB,OAClB1B,SAAS;AAAA,QAAC1I,MAAM;AAAA,MAAY,CAAA,GAC5BuJ,sBAAsB/G,UAAU,IAC5B+E,iBAAeA,cAAc,IAAI,GACjCH,UAAQA,OAAO/B,KAAK;AAAA,OAEzB,CAAC;AAAA,EAAA,GAEN,CAAC+B,QAAQG,eAAeW,eAAe,CACzC,GAEMoC,kBAAkBzB,MAAAA,YAAaxD,CAAsC,YAAA;AACzE,UAAMkF,iBAAiBpB,kBAAkB3G,SACnCgI,iBAAiBnF,QAAMpC,kBAAkBwH,cAAcpF,QAAMpC,SAAS,MACtE8C,gBAAcwE,gBAAgB/K,SAASgL,cAAc,KAAK;AAE5DzE,sBAAgBqD,eAAe5G,YACjC4G,eAAe5G,UAAUuD,eAEzB2C,SAAS;AAAA,MAAC1I,MAAM;AAAA,MAAuB+F,aAAAA;AAAAA,IAAAA,CAAY;AAAA,KAEpD,CAAE,CAAA,GAEC2E,qBAAqB7B,kBACxB8B,CAAc,MAAA;AACJ,aAAA;AAAA,MAAC3K,MAAM;AAAA,MAAgBkF,OAAOyF;AAAAA,IAAAA,CAAE,GAEzCpB,sBAAsB/G,UAAU,IAE5BwC,YAAUA,SAAS2F,CAAC,GAExBtB,SAAS7G,UAAUmI,GAEftD,YAAUA,SAASsD,CAAC,GACpBpD,iBAAeA,cAAc,IAAI,GAErC2B,gBAAgB1G,SAASlC,MAAM;AAAA,EAAA,GAEjC,CAAC+G,UAAUrC,UAAUuC,aAAa,CACpC,GAEMqD,oBAAoB/B,MAAAA,YACvBxD,CAAsC,YAAA;AACjCA,QAAAA,QAAMC,QAAQ,aAAa;AAG7B,UAFAD,QAAMwF,kBAEF,CAACd,mBAAoB;AAEzB,YAAMe,eAAehB,gBAAgBF,KAAMC,SAAMA,IAAE3E,UAAUU,WAAW,GAClEmF,cAAcD,eAAehB,gBAAgBvD,QAAQuE,YAAY,IAAI,IACrEE,mBAAmBlB,iBAAiBiB,cAAc,KAAKhB,kBAAkB;AAE3EiB,0BACFtC,SAAS;AAAA,QAAC1I,MAAM;AAAA,QAAuBkF,OAAO8F,iBAAiB9F;AAAAA,QAAOa,aAAa;AAAA,MAAA,CAAK;AAG1F;AAAA,IAAA;AAGEV,QAAAA,QAAMC,QAAQ,WAAW;AAG3B,UAFAD,QAAMwF,kBAEF,CAACd,mBAAoB;AAEnBe,YAAAA,iBAAehB,gBAAgBF,KAAMC,CAAMA,QAAAA,IAAE3E,UAAUU,WAAW,GAClEmF,gBAAcD,iBAAehB,gBAAgBvD,QAAQuE,cAAY,IAAI,IACrEE,qBACJlB,gBACEiB,kBAAgB,KACZhB,qBAAqB,KACpBA,qBAAqBgB,gBAAc,KAAKhB,kBAAkB;AAG/DiB,4BACFtC,SAAS;AAAA,QAAC1I,MAAM;AAAA,QAAuBkF,OAAO8F,mBAAiB9F;AAAAA,QAAOa,aAAa;AAAA,MAAA,CAAK;AAG1F;AAAA,IAAA;AAGEV,QAAAA,QAAMC,QAAQ,UAAU;AACjB,eAAA;AAAA,QAACtF,MAAM;AAAA,MAAc,CAAA,GAC9BuJ,sBAAsB/G,UAAU,IAC5B+E,iBAAeA,cAAc,IAAI,GACrC2B,gBAAgB1G,SAASlC,MAAM;AAE/B;AAAA,IAAA;AAGF,UAAM2C,SAASoC,QAAMpC,QACfgI,SAAS9B,kBAAkB3G;AAG9ByI,SAAAA,WAAWhI,UAAUgI,QAAQzL,SAASyD,MAAM,MAC7C,CAAC+C,iCAAiCtD,SAAS2C,QAAMC,GAAG,GACpD;AACA4D,sBAAgB1G,SAASlC,MAAM;AAE/B;AAAA,IAAA;AAAA,EACF,GAEF,CAACsF,aAAakE,iBAAiBC,oBAAoBxC,aAAa,CAClE,GAEM2D,oBAAoBrC,kBACvBxD,CAAyC,YAAA;AAClC8F,UAAAA,YAAY9F,QAAMG,cAAcN;AAE7B,aAAA;AAAA,MAAClF,MAAM;AAAA,MAAgB8F,OAAOqF;AAAAA,IAAAA,CAAU,GAE7C5D,iBAAeA,cAAc4D,SAAS;AAAA,KAE5C,CAAC5D,aAAa,CAChB,GAEM6D,eAAevC,kBAAY,MAAM;AAC5B,aAAA;AAAA,MACP7I,MAAM;AAAA,MACN8F,OAAOZ,QAAQoD,YAAYpD,OAAOwE,aAAa,IAAI;AAAA,IAAA,CACpD;AAAA,EAAA,GACA,CAACA,eAAepB,aAAapD,KAAK,CAAC,GAEhCmG,mBAAmBxC,MAAAA,YACtBxD,CAAwC,YAAA;AAClCQ,gBACH6C,SAAS;AAAA,MAAC1I,MAAM;AAAA,IAAA,CAAc,GAE1BsH,WAASA,QAAQjC,OAAK,GACtBoC,eAAa2D;EAAa,GAGlC,CAACvF,SAASyB,SAASG,aAAa2D,YAAY,CAC9C,GAEME,0BAA0BzC,MAAAA,YAAY,MAAM;AAChDU,0BAAsB/G,UAAU;AAAA,KAC/B,EAAE,GAEC+I,0BAA0B1C,MAAAA,YAAY,MAAM;AAChDU,0BAAsB/G,UAAU;AAAA,KAC/B,EAAE,GAECgJ,yBAAyB3C,MAAAA,YAAY,MAAM;AACtC,aAAA;AAAA,MAAC7I,MAAM;AAAA,IAAa,CAAA,GAC7BqJ,SAAS7G,UAAU,IACf6E,YAAUA,SAAS,EAAE,GACrBE,iBAAeA,cAAc,IAAI,GACrC2B,gBAAgB1G,SAASlC,MAAM;AAAA,EAAA,GAC9B,CAAC+G,UAAUE,aAAa,CAAC,GAEtBkE,yBAAyB5C,kBAAY,MAAM;AACtC,aAAA;AAAA,MAAC7I,MAAM;AAAA,IAAA,CAAc;AAAA,EAChC,GAAG,EAAE;AAGL4C,QAAAA,UAAU,MAAM;AAEV4F,QAAAA,cAAcc,aAAa9G,SAAS;AACtC8G,mBAAa9G,UAAUgG,WAEnBA,cAAc5G,WAChB8G,SAAS;AAAA,QAAC1I,MAAM;AAAA,QAAgBkF,OAAOsD;AAAAA,MAAAA,CAAU,GACjDa,SAAS7G,UAAUgG;AAGrB;AAAA,IAAA;AAIEA,kBAAca,SAAS7G,YACzB6G,SAAS7G,UAAUgG,aAAa,MAEhCE,SAAS;AAAA,MAAC1I,MAAM;AAAA,MAAgBkF,OAAOsD,aAAa;AAAA,IAAA,CAAK;AAAA,KAE1D,CAACA,SAAS,CAAC,GAGd5F,MAAAA,UAAU,MAAM;AACV,KAACiD,WAAWwD,SAAS7G,WACvBkG,SAAS;AAAA,MAAC1I,MAAM;AAAA,MAAuBkF,OAAOmE,SAAS7G;AAAAA,IAAAA,CAAQ;AAAA,KAEhE,CAACqD,OAAO,CAAC,GAGZjD,MAAAA,UAAU,MAAM;AACd,UAAM8I,cAAcvC,kBAAkB3G;AAEtC,QAAI,CAACkJ,YAAa;AAElB,UAAMZ,iBAAehB,gBAAgBF,KAAMC,CAAMA,QAAAA,IAAE3E,UAAUU,WAAW;AAExE,QAAIkF,gBAAc;AACVC,YAAAA,gBAAcjB,gBAAgBvD,QAAQuE,cAAY,GAClDa,oBAAoBD,YAAYjL,WAAWsK,aAAW;AAE5D,UAAIY,mBAAmB;AACrB,YAAIxM,UAAUwM,iBAAiB;AAE7B;AAGFpL,6BAAqBoL,iBAAiB;AAAA,MAAA;AAAA,IACxC;AAAA,EACF,GACC,CAAC/F,aAAakE,eAAe,CAAC;AAE3B8B,QAAAA,cAAcjC,MAAAA,QAAQ,MAAM;AAC5B,QAAA,CAACxC,WAAW,CAAClH,YAAYiF;AACpB,aAAA;AAAA,QACL,cAAc;AAAA,QACd,SAAWuG;AAAAA,MACb;AAAA,EAID,GAAA,CAACxL,UAAUwL,wBAAwBtE,SAASjC,KAAK,CAAC,GAE/C2G,uBAAuBlC,MAAAA,QAC3B,MACE/B,QAAQpJ,IAAKmM,CAAAA,QACPA,QAAM,IAAU,IAChBA,QAAM,KACNA,QAAM,IAAU,IAEZA,MAAc,CACvB,GACH,CAAC/C,OAAO,CACV,GAEMkE,oBAAoBnC,cACxB,MAAM/B,QAAQpJ,IAAKmM,CAAMoB,QAAAA,KAAKC,IAAKrB,MAAc,GAAG,CAAC,CAAC,GACtD,CAAC/C,OAAO,CACV,GAEMqE,kBAA+CtC,MAAAA,QACnD,MAAO,OAAOnC,cAAe,WAAWA,aAAaN,eAAAA,cACrD,CAACM,UAAU,CACb,GAEM0E,kBAAkBrD,MAAAA,YACrBxD,CAAyC,YAAA;AACxC+F,oBAEIa,gBAAgBE,WAASF,gBAAgBE,QAAQ9G,OAAK,GAE1D1G,KAAK,MAAMuK,gBAAgB1G,SAASlC,MAAAA,CAAO;AAAA,EAE7C,GAAA,CAAC2L,iBAAiBb,YAAY,CAChC,GAEMgB,iBAAiBzC,MAAAA,QACrB,MACE,CAAC1J,YAAY,CAACgI,YAAYT,aACvB7C,2BAAA,IAAA0H,eAAA,KAAA,EAAI,eAAapC,UAAU,SAAS4B,sBACnC,UAAClH,2BAAAA,IAAA2H,eAAAA,QAAA,EACC,cAAW,QACX,UAAUrC,UACV,SAAQ,SACR,UACA,MAAMsC,MAAAA,iBACN,MAAK,SACL,SAAST,sBACLG,iBACJ,SAASC,gBAAAA,CAAgB,EAE7B,CAAA,IACEtK,QACN,CACE3B,UACAgK,UACAlD,UACAmF,iBACA1E,YACAqE,sBACAC,mBACAG,iBACAhE,QAAQ,CAEZ,GAEMuE,aAAa7C,MAAAA,QAAQ,MACrB7D,UAAU,OACRZ,UAAU,OACLoD,YAAYpD,OAAOwE,aAAa,IAGlC,KAGF5D,OACN,CAAC4D,eAAe5D,OAAOwC,aAAapD,KAAK,CAAC,GAEvCuH,QACJ9H,2BAAAA,IAAC+H,eAAAA,gBACKjE,WACJ,yBAAuBuB,cACvB,qBAAkB,QAClB,iBAAeC,UACf,aAAWT,WACX,gBAAe,OACf,cAAa,OACb,aAAY,OACZ,QACA,aACA,gBACA,UACA,UACA,MACA,WAAWrC,WAAWwF,eACtB,qBAAA,IACA,WAAU,UACV,UAAUzB,mBACV,SAASM,wBACT,SAASH,kBACT,SACA,QACA,QACA,UACA,KAAKnC,iBACL,MAAK,YACL,YAAY,IACZ,QAAQX,UAAU6D,gBAClB,OAAOI,WAAAA,CAEV,GAEKI,uBAAuB/D,kBAC1BxD,CAAyC,YAAA;AAEpCA,YAAMC,QAAQ,SACZS,eAAamD,gBAAgB1G,SAASlC,MAAM;AAAA,EAAA,GAGpD,CAACyF,WAAW,CACd,GAEM8G,WAAUlD,MAAAA,QAAQ,MAClBG,gBAAgBpJ,WAAW,IAAU,sCAGtC2L,eAAAA,KACC,EAAA,WAAQ,yBACR,WAAWO,sBACX,SAAS,GACT,GAAI3F,SACJ,UAAU,IAEV,UAACtC,+BAAAmI,eAAAA,OAAA,EACC,IAAG,MACH,wBAAsB,IACtB,WAAQ,6BACR,IAAItD,WACJ,KAAKL,mBACL,MAAK,WACL,OAAO,GAENW,UAAAA,gBAAgBtL,IAAK4H,CAAW,aAAA;AAC/B,UAAM2G,SACJnH,gBAAgB,OAAOQ,SAAOlB,UAAUU,cAAc8D,kBAAkBtD;AAE1E,0CACG,oBACC,EAAA,IAAI,GAAGrB,EAAE,WAAWqB,SAAOlB,KAAK,IAEhC,UAAUwF,oBACV,UAAUqC,QACV,OAAO3G,SAAOlB,OAEb8H,UAAa7E,MAAAA,aAAAA,aAAa/B,QAAM,GAAG;AAAA,MAClCnG,UAAUkH;AAAAA,MACVlC,UAAU8H;AAAAA,MACVrN,UAAUqG,eAAegH,SAAS,IAAI;AAAA,IAAA,CACvC,EATI3G,GAAAA,SAAOlB,KAUd;AAAA,EAAA,CAEH,EACH,CAAA,EACF,CAAA,GAED,CACDU,aACA8D,eACAI,iBACAY,oBACAkC,sBACA7H,IACAkC,SACAuC,WACAzD,aACAoB,SACAgB,YAAY,CACb,GAEK8E,UAAUtD,MAAAA,QAAQ,MAClBtB,gBACKA,cACL;AAAA,IACEwE,SAAAA;AAAAA,IACAK,QAAQ,CAACjD;AAAAA,IACTkD,cAAcjE,gBAAgB1G;AAAAA,IAC9B4K,cAAc9B;AAAAA,IACd+B,cAAc9B;AAAAA,EAAAA,GAEhBtC,wBACF,IAGEc,uBAAuB,IAClB,OAIPpF,2BAAA,IAAC2I,0BACC,OAAO,IACP,eAAa,IACb,SAAAT,UACA,oBAAoB3G,0CACpB,qBAAmB,IACnB,cAAcoF,yBACd,cAAcC,yBACd,MAAMtB,UACN,UAAS,QACT,WAAWhE,gCACX,QAAM,IACN,QACA,KAAKgD,0BACL,kBAAkBC,gBAAgB1G,SAC9BsF,GAAAA,SACJ,GAEH,CACD+E,UACA5C,UACAF,oBACAuB,yBACAC,yBACAzD,SACAE,QACAK,aAAa,CACd;AAED;AAAA;AAAA,IAEEkF,2BAAAA,KAAC,OACC,EAAA,WAAQ,gBACR,QAAQrD,gBACR,SAASI,iBACT,WAAWM,mBACX,KAAK5B,gBAEJyD,UAAAA;AAAAA,MAAAA;AAAAA,MACAQ;AAAAA,IAAAA,EACH,CAAA;AAAA;AAEJ,CAAC;AAEDzG,kBAAkBgH,cAAc;AAQzB,MAAMC,eAAejH,mBCvqBfkH,cAAcjH,MAAAA,WAAW,SACpClC,OACAZ,KACA;AACM,QAAA;AAAA,IACJkB;AAAAA,IACA8I;AAAAA,IACAC,cAAcC;AAAAA;AAAAA,IAEdC,KAAKC;AAAAA,IACLC,OAAOzJ,MAAMuJ,OAAQvJ,MAAM0J,SAA+B;AAAA,IAC1DC,OAAO3J,MAAMuJ,OAAQvJ,MAAM0J,SAA+B;AAAA,IAC1DE;AAAAA,IACAC;AAAAA;AAAAA,IAEAH,OAAOI;AAAAA,IACP,GAAG5F;AAAAA,EACDlE,IAAAA,OACE,CAAC+J,MAAMC,OAAO,IAAIxM,MAAAA,SAAS,EAAK,GAChCyM,mBAAmBpM,MAAAA,OAAiC,IAAI,GACxDqM,oBAAoBrM,MAAAA,OAA8B,IAAI,GAEtDsM,WAAW7F,MAAAA,YAAY,MAAM0F,QAAQ,EAAK,GAAG,CAAE,CAAA,GAC/CI,SAAS9F,kBAAY,MAAM0F,QAAQ,EAAI,GAAG,CAAA,CAAE;AAElDK,iBAAAA,qBAAqBF,UAAU,MAAM,CAACF,iBAAiBhM,SAASiM,kBAAkBjM,OAAO,CAAC;AAE1F,QAAMqM,WAAWlF,MAAQ,QAAA,MAAMmF,MAAAA,SAASC,QAAQlK,QAAQ,EAAExD,OAAO2N,MAAc,cAAA,GAAG,CAACnK,QAAQ,CAAC,GAEtFoK,QAAQtF,cAAQ,MAAM;AAC1B,UAAMuF,MAAML,SAASnO;AAEjByN,QAAAA,aAAae,MAAMf,WAAW;AAC1BgB,YAAAA,eAAepD,KAAKqD,KAAKjB,YAAY,CAAC,GACtCkB,cAActD,KAAKuD,MAAMnB,YAAY,CAAC;AAE5C,aAAO,CACL,GAAGU,SAASU,MAAM,GAAGJ,eAAe,CAAC,GACpCxK,2BAAA,IAAA2I,eAAA,SAAA,EACC,eAAa,IACb,SACG3I,2BAAAA,IAAAmI,eAAAA,OAAA,EAAM,IAAG,MAAK,UAAS,QAAO,OAAOoB,MACnCW,UAASU,SAAAA,MAAMJ,eAAe,GAAGD,MAAMG,WAAW,EACrD,CAAA,GAGF,MACA,SAAS,GACT,WAAU,OACV,QAAM,IACN,KAAKZ,mBAEL,UAAC9J,2BAAA,IAAA2H,eAAA,QAAA,EACC,MAAK,SACL,SAAS,GACT,MAAK,aACDuB,mBACJ,SAASS,OAAOI,WAAWC,QAC3B,KAAKH,kBACL,UAAUF,KAAK,CAAA,EAAA,GAdb,QAgBN,GACA,GAAGO,SAASU,MAAML,MAAMG,WAAW,CAAC;AAAA,IAAA;AAIjCR,WAAAA;AAAAA,EAAAA,GACN,CAACH,UAAUC,QAAQd,mBAAmBK,MAAMC,WAAWG,MAAMO,QAAQ,CAAC;AAGvE,SAAAlK,+BAAC6K,eAAAA,QACC,IAAG,OACH,WAAQ,eACJ/G,GAAAA,WACJ,WAAWgH,IAAkB9B,kBAAAA,WAAW+B,iBAAa,GACrD,MACA,MACA,KAECT,UAAAA,MAAMzQ,IAAI,CAACmR,MAAMC,cAChBrC,2BAAAA,KAACsC,MACED,UAAAA,EAAAA,UAAAA;AAAAA,IAAAA,YAAY,KACXjL,2BAAAA,IAAC0H,eAAI,KAAA,EAAA,eAAW,IAAC,IAAG,MACjB+B,UAAAA,aAAczJ,2BAAA,IAAAoE,eAAA,MAAA,EAAK,OAAK,IAAC,cAAC,CAAA,GAC7B;AAAA,IAEDpE,2BAAA,IAAA0H,eAAA,KAAA,EAAI,IAAG,MAAMsD,UAAK,KAAA,CAAA;AAAA,EAAA,KANNC,SAOf,CACD,GACH;AAEJ,CAAC;AAEDlC,YAAYF,cAAc;AC9GbsC,MAAAA,gBAAgBC,yCAC3B,6BACA;AAAA,EAACC,SAAS;AAAG,CACf;ACXO,SAAAC,YAAA;AAAA,SACEC,MAAAA,WAAAJ,aAAwB;AAAC;ACgGlC,SAASK,oBACP1O,iBACA2O,eACAnN,QACS;AACL,SAAA,CAACxB,mBAAmB,CAAC2O,gBAAsB,KAG7CC,eAAAA,wBAAwB5O,iBAAiBwB,MAAM,KAC/CoN,uCAAwBD,eAAenN,MAAM;AAEjD;AAEA,MAAMqN,aAAa7J,MAAAA,WAAW,SAAAlC,OAAAmC,cAAA;AAAAhF,QAAAA,IAAAC,uBAAA,EAAA,GAI5B;AAAA,IAAA4O,sBAAAC;AAAAA,IAAAC,4BAAAC;AAAAA,IAAA7L;AAAAA,IAAA8L,YAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA/L;AAAAA,IAAAgM;AAAAA,IAAAC;AAAAA,IAAAC,QAAAC;AAAAA,IAAAlJ,QAAAmJ;AAAAA,IAAAC;AAAAA,IAAAC,QAAA7P;AAAAA,IAAA8P;AAAAA,IAAAC,OAAAC;AAAAA,EAAAA,IAgBIjN,OAHMkN,aAAAjQ,OAAcI,aAAdJ,IAIVyP,SAAeS,eAAAA,aACftB,gBAAsBc,aAAaD,OAAMhP,WAAYiP,UAAU,KAAA,OAAYD,OAAM7R,SACjFqC,kBAAwBkQ,kCAAmB,EAACvS,SAC5C4I,SAAeyB,eAAAA,aAAa0H,UAAU,GACtCE,SAAe5H,eAAAA,aAAagI,UAAU,GACtCF,QAAc9H,4BAAa+H,SAAS,GACpC7N,MAAYvB,MAAAA,OAAA,IAAkC,GAC9CuO,aAAmBvO,aAAA,IAAkC,GACrDwP,QAAcC,eAAAA,YACd;AAAA,IAAAC;AAAAA,EAAAA,IAAqBF,OACrBG,UAAgB,GAAGhN,EAAE,UACrBiN,kBAAwB3S,CAAAA,CAAQ2R,WAAYN,oBAAyB,IACrEuB,aAAmB5S,EAAQyR,UAAWkB;AAAehQ,MAAAA;AAAAN,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAE2B9B,KAAAA,MAAM2B,IAAGnB,SAAQd,OAAAM,MAAAA,KAAAN,EAAA,CAAA,GAAjGqC,MAAAA,oBAAkE2C,cAAc1E,EAAiB;AAACK,MAAAA;AAAAX,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAGhGzB,KAAAA,MAAMsO,WAAUnO,SAAQd,OAAAW,MAAAA,KAAAX,EAAA,CAAA,GAF1BqC,MAAAA,oBACE6M,qBACAvO,EACF;AAAC,MAAAC,IAAAO;AAAAnB,WAAA8O,aAESlO,KAAAA,MAAA;AACHkO,iBAGD7M,IAAGnB,WACLjC,qBAAqBoD,IAAGnB,OAAQ;AAAA,EAEjCK,GAAAA,KAAA,CAAC2N,WAAW7M,GAAG,GAACjC,OAAA8O,WAAA9O,OAAAY,IAAAZ,OAAAmB,OAAAP,KAAAZ,EAAA,CAAA,GAAAmB,KAAAnB,EAAA,CAAA,IAPnBkB,gBAAUN,IAOPO,EAAgB;AAACC,MAAAA;AAAApB,IAAA,CAAA,MAAAD,mBAAAC,EAAAoQ,CAAAA,MAAAA,cAAApQ,EAAAsP,CAAAA,MAAAA,WAAAtP,SAAA0O,iBAIhBtN,KAAAuC,CAAA,UAAA;AACM,QAAA,CAACyM,cAAU,CAAKd;AAAO;AAE3B,UAAA/N,SAAA3D,SAAAC;AAEI0D,eAAWkN,oBAAoB1O,iBAAiB2O,eAAenN,MAAM,KAKrEoC,MAAKC,QAAS,aAChBD,MAAKwF,eAAgB,GACrBxF,MAAK6M,gBAAAA,GACLlB;EAAS,GAEZtP,OAAAD,iBAAAC,OAAAoQ,YAAApQ,OAAAsP,SAAAtP,OAAA0O,eAAA1O,OAAAoB,MAAAA,KAAApB,EAAA,CAAA,GAjBLyQ,eAAAA,iBACErP,EAmBF;AAACsP,MAAAA;AAAA1Q,IAAA,EAAA,MAAAD,mBAAAC,EAAAoQ,EAAAA,MAAAA,cAAApQ,EAAAqP,EAAAA,MAAAA,kBAAArP,UAAA0O,iBAGCgC,KAAAN,cACEf,mBAAcsB,CAAA,YAAA;AAEZ,UAAAC,WAAejN,QAAKpC;AAEhBA,iBAAWkN,oBAAoB1O,iBAAiB2O,eAAenN,QAAM,KAKzE8N,eAAe;AAAA,EAAA,IACfrP,QAAAD,iBAAAC,QAAAoQ,YAAApQ,QAAAqP,gBAAArP,QAAA0O,eAAA1O,QAAA0Q,MAAAA,KAAA1Q,EAAA,EAAA;AAAA6Q,MAAAA;AAAA7Q,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACJyO,KAAAA,MAAO5O,CAAAA,IAAGnB,OAAA,GAASd,QAAA6Q,MAAAA,KAAA7Q,EAAA,EAAA,GAbrBkN,eAAAA,qBACEwD,IAYAG,EACF;AAACC,MAAAA;AAAA9Q,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAKc0O,KAAAC,IAAgB,gBAAA,GAAC/Q,QAAA8Q,MAAAA,KAAA9Q,EAAA,EAAA;AAAAgR,MAAAA;AAAAhR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAQf4O,KAAAC,IAAe,eAAA,GAACjR,QAAAgR,MAAAA,KAAAhR,EAAA,EAAA;AAAAkR,MAAAA;AAAAlR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAQV8O,MAAAC,IAAa,aAAA,GAACnR,QAAAkR,OAAAA,MAAAlR,EAAA,EAAA;AAAAoR,MAAAA;AAAApR,IAAAoP,EAAAA,MAAAA,UAAApP,EAAA,EAAA,MAAAqQ,WAAArQ,EAAAsP,EAAAA,MAAAA,WAAAtP,EAAA,EAAA,MAAAsQ,mBAAAtQ,UAAAuQ,cAC5Ba,MAAAb,cACCtN,2BAAAA,IAAC0H,sBAAe,WAAA0G,IAAAA,aAAyB,GAAA,UAAA,YACvC,UAACxF,2BAAAA,KAAAiC,eAAAA,MAAA,EAAW,OAAA,cAAsB,SAAC,GACjC,UAAA;AAAA,IAAA7K,+BAAC0H,eAAAA,KAAU,EAAA,MAAC,GAAW,SAAC,GACrByE,UACC,UAAAnM,+BAACoE,eAAAA,MAASgJ,EAAAA,IAAAA,SAAe,MAAC,GAAS,QAAA,6BAEnC,CAAA,GAEJ;AAAA,IACCC,kDACE3F,oBAAS,EAAA,MAAA,QACR,UAAC1H,+BAAA2H,eAAAA,QAAA,EACY,cAAA,gBACD,UAAC0E,CAAAA,SACLgC,MAAAA,iBACD,MAAA,SACIhC,SAAM,SACN,SAAA,GAEb,EAAA,CAAA;AAAA,EAAA,EAAA,CAEJ,EACF,CAAA,GACDtP,QAAAoP,QAAApP,QAAAqQ,SAAArQ,QAAAsP,SAAAtP,QAAAsQ,iBAAAtQ,QAAAuQ,YAAAvQ,QAAAoR,OAAAA,MAAApR,EAAA,EAAA;AAAAuR,MAAAA;AAAAvR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAEYmP,MAAAC,IAAc,cAAA,GAACxR,QAAAuR,OAAAA,MAAAvR,EAAA,EAAA;AAAAyR,MAAAA;AAAAzR,YAAAmD,YAD5BsO,MAACxO,2BAAAA,IAAA0H,eAAAA,KACY,EAAA,WAAA4G,KACL,MAAA,GACG,UAAA,QACA,UAAA,YACJtC,KAAAA,YACK,UAAA,IAET9L,SACH,CAAA,GAAMnD,QAAAmD,UAAAnD,QAAAyR,OAAAA,MAAAzR,EAAA,EAAA;AAAA0R,MAAAA;AAAA1R,YAAAmP,UACLuC,MAAAvC,UACElM,+BAAA0H,eAAAA,KAAA,EAAe,WAAAgH,iBAAyB,GAAA,UAAA,YACjC,UACR,QAAA,GACD3R,QAAAmP,QAAAnP,QAAA0R,OAAAA,MAAA1R,EAAA,EAAA;AAAA4R,MAAAA;AAAA5R,IAAAoR,EAAAA,MAAAA,OAAApR,UAAAyR,OAAAzR,EAAA,EAAA,MAAA0R,OAxCHE,sCAAC9D,qBAAgB,EAAA,WAAAoD,KAA0B,WAAA,UAAe,MAAA,GACvDE,UAAAA;AAAAA,IAAAA;AAAAA,IAyBDK;AAAAA,IAUCC;AAAAA,EAAAA,GAKH,GAAO1R,QAAAoR,KAAApR,QAAAyR,KAAAzR,QAAA0R,KAAA1R,QAAA4R,OAAAA,MAAA5R,EAAA,EAAA;AAAA6R,MAAAA;AAAA7R,IAAAsG,EAAAA,MAAAA,UAAAtG,EAAA,EAAA,MAAA0P,UAAA1P,EAAA2P,EAAAA,MAAAA,UAAA3P,EAAA,EAAA,MAAA4R,OAAA5R,UAAA4P,QAlDTiC,qCAACzK,eACY,MAAA,EAAA,WAAA4J,IACH,SAAA,QACA1K,QACHrE,KACGyN,QACAC,QACFC,MAENgC,UA0CF,KAAA,GAAO5R,QAAAsG,QAAAtG,QAAA0P,QAAA1P,QAAA2P,QAAA3P,QAAA4R,KAAA5R,QAAA4P,MAAA5P,QAAA6R,OAAAA,MAAA7R,EAAA,EAAA;AAAA8R,MAAAA;AAAA,SAAA9R,EAAA6R,EAAAA,MAAAA,OAAA7R,UAAA6P,SA5DTiC,MAAC7O,2BAAA,IAAA8O,eAAA,WAAA,EACO,OAAA,UACK,WAAAjB,IACH,WAAA,cACE,WAAA,UACF,SAAA,QACA,SAAA,UACDjB,OAEPgC,UAAAA,IAoDF,CAAA,GAAY7R,QAAA6R,KAAA7R,QAAA6P,OAAA7P,QAAA8R,OAAAA,MAAA9R,EAAA,EAAA,GA7DZ8R;AA6DY,CAEf;AAEDlD,WAAW9C,cAAc;AAOlB,MAAMkG,SAASjN,MAAAA,WAAW,SAAAlC,OAAAZ,KAAA;AAAA,QAAAjC,IAAAC,qBAAAA,EAAA,EAAA,GAI/BgS,UAAgB1D,aAChB;AAAA,IAAA2B;AAAAA,MAAgBgC,2BAAY;AAACC,MAAAA,eAAAC,cAAAC,YAAAlP,UAAA8I,WAAAgD,YAAAE,QAAAC,QAAA/L,IAAAiP,YAAAjD,gBAAAC,SAAA1J,SAAA4J,YAAAzI,WAAA2I,QAAA5P,IAAAQ,IAAAK,IAAAC,IAAAO,IAAAC,IAAAwO;AAAA5P,WAAA6C,SAC7B;AAAA,IAAAgM,sBAAA/O;AAAAA,IAAAiP,4BAAAzO;AAAAA,IAAAiS,SAAA5R;AAAAA,IAAA6R,YAAA5R;AAAAA,IAAAuC;AAAAA,IAAA8I;AAAAA,IAAAgD;AAAAA,IAAAE;AAAAA,IAAAC;AAAAA,IAAA/L;AAAAA,IAAAiP;AAAAA,IAAAjD;AAAAA,IAAAC;AAAAA,IAAA1J;AAAAA,IAAAM,SAAA/E;AAAAA,IAAAoO,QAAAC;AAAAA,IAAAiD,UAAAN;AAAAA,IAAAzC;AAAAA,IAAAC,QAAA0C;AAAAA,IAAAxC,OAAAzO;AAAAA,IAAAsR,SAAAN;AAAAA,IAAAxC;AAAAA,IAAA,GAAA7I;AAAAA,EAAAA,IAyBIlE,OAAK7C,OAAA6C,OAAA7C,OAAAmS,eAAAnS,OAAAoS,cAAApS,OAAAqS,YAAArS,OAAAmD,UAAAnD,OAAAiM,WAAAjM,OAAAiP,YAAAjP,OAAAmP,QAAAnP,OAAAoP,QAAApP,OAAAqD,IAAArD,QAAAsS,YAAAtS,QAAAqP,gBAAArP,QAAAsP,SAAAtP,QAAA4F,SAAA5F,QAAAwP,YAAAxP,QAAA+G,WAAA/G,QAAA0P,QAAA1P,QAAAF,IAAAE,QAAAM,IAAAN,QAAAW,IAAAX,QAAAY,IAAAZ,QAAAmB,IAAAnB,QAAAoB,IAAApB,QAAA4P,SAAAuC,gBAAAnS,EAAA,CAAA,GAAAoS,eAAApS,EAAA,CAAA,GAAAqS,aAAArS,EAAA,CAAA,GAAAmD,WAAAnD,EAAA,CAAA,GAAAiM,YAAAjM,EAAA,CAAA,GAAAiP,aAAAjP,EAAA,CAAA,GAAAmP,SAAAnP,EAAA,CAAA,GAAAoP,SAAApP,EAAA,CAAA,GAAAqD,KAAArD,EAAA,CAAA,GAAAsS,aAAAtS,EAAA,EAAA,GAAAqP,iBAAArP,EAAA,EAAA,GAAAsP,UAAAtP,EAAA,EAAA,GAAA4F,UAAA5F,EAAA,EAAA,GAAAwP,aAAAxP,EAAA,EAAA,GAAA+G,YAAA/G,EAAA,EAAA,GAAA0P,SAAA1P,EAAA,EAAA,GAAAF,KAAAE,EAAA,EAAA,GAAAM,KAAAN,EAAA,EAAA,GAAAW,KAAAX,EAAA,EAAA,GAAAY,KAAAZ,EAAA,EAAA,GAAAmB,KAAAnB,EAAA,EAAA,GAAAoB,KAAApB,EAAA,EAAA,GAAA4P,OAAA5P,EAAA,EAAA;AAxBe8O,QAAAA,YAAAhP,OAAgBI,cAAhBJ,IACMkP,kBAAA1O,OAAuBJ,cAAvBI,IACnBqS,WAAAhS,OAAgBT,cAAhBS,IACGiS,iBAAAhS,OAAkBV,aAAlBU,IAYZsF,UAAA/E,OAAWjB,aAAXiB,IAKO2O,YAAA1O,OAAalB,aAAbkB,IAKTyR,eAAqBV,kBAAkBF,QAAOQ,YAAa,UAC3DK,cAAoBV,iBAAiBH,QAAOS,WAAYxC,MAAK6C,OAAAL,UAE7DH,UAD6BS,2CACO,KAAWL,UAC/CpD,SAAeS,eAAAA,UAAAA,GACftB,gBAAsBc,aAAaD,OAAMhP,WAAYiP,UAAU,KAAA,OAAYD,OAAM7R,SACjFqC,kBAAwBkQ,oCAAoBvS,SAC5C8U,aAAmBzK,4BAAa6K,cAAc,GAC9CH,WAAiB1K,eAAAA,aAAa8K,YAAY,GAC1ChD,QAAc9H,eAAAA,aAAa+H,SAAS,GACpC4C,UAAgB3K,eAAAA,aAAa+K,WAAW,GACxCG,YAAkBvS,aAAA,IAAkC,GACpDwS,aAAmBxS,MAAAA,OAAA,IAAkC,GACrDyS,UAAgBzS,aAAA,IAAkC,GAClD0S,oBAA0B1S,MAAAA,OAAA,IAA+B;AAACgQ,MAAAA;AAAA1Q,YAAA4F,WAGxD8K,KAAA/M,CAAA,UAAA;AACEiC,cAAUjC,KAAK;AAEf,UAAApC,SAAeoC,MAAKpC,QACpB8R,cAAoBF,QAAOrS;AAEvBuS,QAAAA,eAAe9R,WAAW0R,UAASnS,SAAQ;AAC7C3B,0BAAoBkU,WAAW;AAAC;AAAA,IAAA;AAK9BA,QAAAA,eAAe9R,WAAW2R,WAAUpS,SAAQ;AAC9CjC,2BAAqBwU,WAAW;AAAC;AAAA,IAAA;AAK/BnU,iCAAcyE,MAAKpC,MAAO,MAC5B6R,kBAAiBtS,UAAW6C,MAAKpC;AAAAA,EAAA,GAEpCvB,QAAA4F,SAAA5F,QAAA0Q,MAAAA,KAAA1Q,EAAA,EAAA;AAtBHsT,QAAAA,cAAoB5C,IA0BpBL,UAAgB,GAAGhN,EAAE,UAErBkQ,sBAA4B7S,aAAAR,MAAgC;AAAC2Q,MAAAA;AAAA7Q,IAAAD,EAAAA,MAAAA,mBAAAC,UAAA0O,iBAKzBmC,KAAAA,MAAA;AAC9B0C,wBAAmBzS,WACrB0S,aAAaD,oBAAmBzS,OAAQ,GAG1CyS,oBAAmBzS,UAAW2C,WAAA,MAAA;AAC5B,YAAA5F,gBAAAD,SAAAC;AAA4C,UAExCA,kBAAkB4Q,oBAAoB1O,iBAAiB2O,eAAe7Q,aAAa,GAAC;AACtF,cAAA+S,WAAewC,kBAAiBtS;AAAQ,YAEpC,CAACS,YAAM,CAAK3D,SAAA6V,KAAA3V,SAAuByD,QAAM,GAAC;AAE5C,gBAAAmS,gBAAoBP,QAAOrS;AACvBuS,2BAAaxU,qBAAqBwU,aAAW;AAAC;AAAA,QAAA;AAKpD9R,iBAAM3C,MAAO;AAAA,MAAA;AAAA,OAAC,CAEd;AAAA,EACLoB,GAAAA,QAAAD,iBAAAC,QAAA0O,eAAA1O,QAAA6Q,MAAAA,KAAA7Q,EAAA,EAAA;AAtBD,QAAA2T,kBAAwB9C;AAsBYC,MAAAA;AAAA9Q,YAAAiM,aAQnB6E,KAAA/C,IAAAA,kBAAkB9B,WAAW8G,YAAQ,GAAC/S,QAAAiM,WAAAjM,QAAA8Q,MAAAA,KAAA9Q,EAAA,EAAA;AACnCgR,QAAAA,KAAAuB,UAAU,KAAErS;AAAYgR,MAAAA;AAAAlR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KActC8O,MAAAjO,+BAAA,OAAA,EAAUgQ,KAAAA,WAAqB,UAAA,EAAK,CAAA,GAAAjT,QAAAkR,OAAAA,MAAAlR,EAAA,EAAA;AAAAoR,MAAAA;AAAApR,IAAA8O,EAAAA,MAAAA,aAAA9O,EAAAwS,EAAAA,MAAAA,cAAAxS,EAAAqS,EAAAA,MAAAA,cAAArS,EAAAmD,EAAAA,MAAAA,YAAAnD,EAAAiP,EAAAA,MAAAA,cAAAjP,EAAAmP,EAAAA,MAAAA,UAAAnP,EAAAoP,EAAAA,MAAAA,UAAApP,UAAAgP,mBAAAhP,EAAA,EAAA,MAAAqD,MAAArD,EAAA,EAAA,MAAAqP,kBAAArP,EAAA,EAAA,MAAAsP,WAAAtP,EAAA,EAAA,MAAAwP,cAAAxP,EAAA,EAAA,MAAA0P,UAAA1P,EAAA,EAAA,MAAA4P,QAAA5P,EAAA,EAAA,MAAA6P,SACpCuB,MAACnO,2BAAAA,IAAA,YAAA,EACuB6L,iCACME,6CAChBC,YACJE,QACAC,QACJ/L,IACYgM,gBACPC,SACDE,QAAAA,YACAgD,QAAAA,YACHW,KAAAA,SACGzD,QACA2C,QAAS,YACXzC,MACCC,iBAGT,GAAa7P,QAAA8O,WAAA9O,QAAAwS,YAAAxS,QAAAqS,YAAArS,QAAAmD,UAAAnD,QAAAiP,YAAAjP,QAAAmP,QAAAnP,QAAAoP,QAAApP,QAAAgP,iBAAAhP,QAAAqD,IAAArD,QAAAqP,gBAAArP,QAAAsP,SAAAtP,QAAAwP,YAAAxP,QAAA0P,QAAA1P,QAAA4P,MAAA5P,QAAA6P,OAAA7P,QAAAoR,OAAAA,MAAApR,EAAA,EAAA;AAAAuR,MAAAA;AAAAvR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAEbmP,MAAAtO,+BAAA,OAAA,EAAUiQ,KAAAA,YAAsB,UAAA,EAAK,CAAA,GAAAlT,QAAAuR,OAAAA,MAAAvR,EAAA,EAAA;AAAAyR,MAAAA;AAAAzR,YAAAsT,eAAAtT,EAAA2T,EAAAA,MAAAA,mBAAA3T,EAAAqD,EAAAA,MAAAA,MAAArD,EAAA,EAAA,MAAAqQ,WAAArQ,EAAA,EAAA,MAAAsS,cAAAtS,EAAAkG,EAAAA,MAAAA,WAAAlG,UAAAyS,YAAAzS,EAAAiC,EAAAA,MAAAA,OAAAjC,EAAA,EAAA,MAAA+G,aAAA/G,EAAA,EAAA,MAAAoR,OAAApR,EAAA8Q,EAAAA,MAAAA,MAAA9Q,UAAAgR,MAAAhR,EAAA,EAAA,MAAA0S,WAxCvCjB,MAAC5F,2BAAAA,KAAA+H,eAAAA,OAAA,EAAK,GACA7M,WACasJ,mBAAM,SACvB,kBACW,WAAAS,IACG,gBAAAE,IACN,WAAA,UACA,SAAA,QACJ3N,IACQiP,YACHqB,0BACAL,SAAAA,aACApN,SACCuM,UACLxQ,KACA,MAAA,UACIyQ,SAGTxB,UAAAA;AAAAA,IAAAA;AAAAA,IACAE;AAAAA,IAoBAG;AAAAA,EACF,EAAA,CAAA,GAAQvR,QAAAsT,aAAAtT,QAAA2T,iBAAA3T,QAAAqD,IAAArD,QAAAqQ,SAAArQ,QAAAsS,YAAAtS,QAAAkG,SAAAlG,QAAAyS,UAAAzS,QAAAiC,KAAAjC,QAAA+G,WAAA/G,QAAAoR,KAAApR,QAAA8Q,IAAA9Q,QAAAgR,IAAAhR,QAAA0S,SAAA1S,QAAAyR,OAAAA,MAAAzR,EAAA,EAAA;AAAA0R,MAAAA;AAAA,SAAA1R,EAAAwP,EAAAA,MAAAA,cAAAxP,UAAAyR,OA1CVC,MAACzO,2BAAAA,IAAA4Q,eAAAA,QAAwBrE,EAAAA,iBAAAA,YACvBiC,UA0CF,IAAA,CAAA,GAASzR,QAAAwP,YAAAxP,QAAAyR,KAAAzR,QAAA0R,OAAAA,MAAA1R,EAAA,EAAA,GA3CT0R;AA2CS,CAEZ;AAEDM,OAAOlG,cAAc;AC7Zd,SAAAgI,eAAAjR,OAAA;AAAA7C,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAkD;AAAAA,IAAAsP;AAAAA,IAAAC;AAAAA,EAAAA,IAAsC7P;AAAK,MAAA/C,IAAAQ;AAAAN,IAAAyS,CAAAA,MAAAA,YAAAzS,SAAA0S,WAGlCpS,KAAA;AAAA,IAAAgO,SAAA;AAAA,IAAAmE;AAAAA,IAAAC;AAAAA,EAAAA,GAIN1S,OAAAyS,UAAAzS,OAAA0S,SAAA1S,OAAAM,MAAAA,KAAAN,EAAA,CAAA,GAAAF,KAJMQ;AADT,QAAAyT,eAAyCjU;AAOxCa,MAAAA;AAAA,SAAAX,EAAAmD,CAAAA,MAAAA,YAAAnD,SAAA+T,gBAEMpT,KAAAsC,2BAAAA,IAAA,cAAA,UAAA,EAA+B8Q,OAAAA,cAAe5Q,SAAAA,CAAS,GAAyBnD,OAAAmD,UAAAnD,OAAA+T,cAAA/T,OAAAW,MAAAA,KAAAX,EAAA,CAAA,GAAhFW;AAAgF;AAGzFmT,eAAehI,cAAc;ACiCtB,MAAMkI,aAAajP,MAAAA,WAAW,SAAAlC,OAAAmC,cAAA;AAAAhF,QAAAA,IAAAC,uBAAA,EAAA,GAInC;AAAA,IAAAgU,uCAAAnU;AAAAA,IAAAC,iBAAAmU;AAAAA,IAAAC,QAAAC;AAAAA,IAAA/Q;AAAAA,IAAAgR,MAAAC;AAAAA,IAAAhF;AAAAA,IAAAiF;AAAAA,IAAAC,WAAAC;AAAAA,IAAAC,eAAAC;AAAAA,IAAApF,QAAAjP;AAAAA,IAAA8F;AAAAA,IAAAwO,eAAAC;AAAAA,IAAAC,iBAAAC;AAAAA,EAcIlS,IAAAA,OAbqCmS,6BAAAlV,OAAkCI,cAAlCJ,IAS/BmV,oBAAA3U,OAAwBJ,cAAxBI,IAKV,CAAAsM,MAAAC,OAAA,IAAwBxM,MAAAA,WAAc,GACtC,CAAA6U,aAAAC,cAAA,IAAsC9U,MAAAA,aAAsC,GAC5E,CAAA+U,eAAAC,gBAAA,IAA0ChV,MAAAA,aAAuC;AAACM,MAAAA;AAAAX,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACbzB,KAAA,CAAA,GAAEX,OAAAW,MAAAA,KAAAX,EAAA,CAAA;AAAvE,QAAA,CAAAsV,cAAAC,oBAAA,IAA6ClV,MAAAA,SAAwBM,EAAE,GACvE6U,UAAgB9U,MAAAA,OAAgBkM,IAAI;AAAC,MAAAhM,IAAAO;AAAAnB,IAAAuU,CAAAA,MAAAA,UAAAvU,SAAA4M,QAG3BhM,KAAAA,MAAA;AACJ2T,cAAU3H,QAAS4I,CAAAA,QAAO1U,WAC5ByT,OAAO;AAAA,EAERpT,GAAAA,KAAA,CAACoT,QAAQ3H,IAAI,GAAC5M,OAAAuU,QAAAvU,OAAA4M,MAAA5M,OAAAY,IAAAZ,OAAAmB,OAAAP,KAAAZ,EAAA,CAAA,GAAAmB,KAAAnB,EAAA,CAAA,IAJjBkB,MAAAA,UAAUN,IAIPO,EAAc;AAAC,MAAAC,IAAAsP;AAAA1Q,IAAAsP,CAAAA,MAAAA,WAAAtP,SAAA4M,QAGRxL,KAAAA,MAAA;AACJkO,eAAY1C,CAAAA,QAAQ4I,QAAO1U,WAC7BwO,QAAQ;AAAA,EAEToB,GAAAA,KAAA,CAACpB,SAAS1C,IAAI,GAAC5M,OAAAsP,SAAAtP,OAAA4M,MAAA5M,OAAAoB,IAAApB,OAAA0Q,OAAAtP,KAAApB,EAAA,CAAA,GAAA0Q,KAAA1Q,EAAA,CAAA,IAJlBkB,MAAAA,UAAUE,IAIPsP,EAAe;AAAC,MAAAG,IAAAC;AAAA9Q,WAAA4M,QAETiE,KAAAA,MAAA;AACR2E,YAAO1U,UAAW8L;AAAAA,EAAI,GACrBkE,MAAClE,IAAI,GAAC5M,OAAA4M,MAAA5M,QAAA6Q,IAAA7Q,QAAA8Q,OAAAD,KAAA7Q,EAAA,EAAA,GAAA8Q,KAAA9Q,EAAA,EAAA,IAFTkB,gBAAU2P,IAEPC,EAAM;AAACE,MAAAA;AAAAhR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAE4B4O,KAAAA,MAAA;AAC7ByE,YAAAA,OAAU,GACjBN,mBAAmB;AAAA,EAAA,GACpBnV,QAAAgR,MAAAA,KAAAhR,EAAA,EAAA;AAHD,QAAA0V,oBAA0B1E;AAGpBE,MAAAA;AAAAlR,YAAA4M,QAMJsE,MAAAvN,CAAA,UAAA;AACMiJ,YAAMjJ,MAAKwF,eAAgB;AAAA,EAAC,GACjCnJ,QAAA4M,MAAA5M,QAAAkR,OAAAA,MAAAlR,EAAA,EAAA;AAHH,QAAA2V,kBAAwBzE;AAKvBE,MAAAA;AAAApR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAEuCgP,MAAAT,CAAA,YAAA;AAGlChN,QAAAA,QAAKC,QAAS,eAAeD,QAAKC,QAAS,WAAWD,QAAKC,QAAS,KAAG;AACzED,cAAKwF,kBACL0D,UAAY,GACZsI,eAAe,OAAO;AAAC;AAAA,IAAA;AAOrBxR,QAAAA,QAAKC,QAAS,WAAS;AACzBD,cAAKwF,kBACL0D,UAAY,GACZsI,eAAe,MAAM;AAAC;AAAA,IAAA;AAAA,EAAA,GAIzBnV,QAAAoR,OAAAA,MAAApR,EAAA,EAAA;AApBD,QAAA4V,sBAA4BxE;AAoBtBG,MAAAA;AAAAvR,IAAAoV,EAAAA,MAAAA,iBAAApV,UAAAsV,gBAGJ/D,MAAAsE,CAAA,YAAA;AACE,UAAAtU,SAAeoC,QAAKpC;AAEdA,QAAAA,kBAAMC,QAIR4T,EAAkB7T,kBAAAA,WAAW6T,iBAAiBA,cAAatX,SAAUyD,MAAM,KAAE;AAAA,iBAI5EhC,MAAY+V;AAAY,YACvB/T,WAAWhC,MAAMA,GAAEzB,SAAUyD,MAAM;AAAC;AAK1CsL,gBAAa;AAAA,IAAA;AAAA,EACd7M,GAAAA,QAAAoV,eAAApV,QAAAsV,cAAAtV,QAAAuR,OAAAA,MAAAvR,EAAA,EAAA;AAnBH,QAAA8V,yBAA+BvE;AAqB9BE,MAAAA;AAAAzR,IAAAoV,EAAAA,MAAAA,iBAAApV,UAAAgV,8BAEoCvD,MAAAA,MAAA;AACnC5E,cAAa,GACTmI,CACAI,8BAAAA,iBAAeA,cAAaxW,MAAO;AAAA,EACxCoB,GAAAA,QAAAoV,eAAApV,QAAAgV,4BAAAhV,QAAAyR,OAAAA,MAAAzR,EAAA,EAAA;AAJD,QAAA+V,mBAAyBtE;AAIsBC,MAAAA;AAAA1R,YAAAsV,gBAG7C5D,MAAAsE,CAAA,YAAA;AACE,UAAApF,WAAejN,QAAKsS;AAAc,QAE5B1U,oBAAMC,MAAgB;AAAA,iBAIvBP,QAAYqU;AAAY,YACvB/V,SAAOgC,YAAUhC,KAAEzB,SAAUyD,QAAM;AAAC;AAK1CsL,gBAAa;AAAA,IAAA;AAAA,EAAC,GACf7M,QAAAsV,cAAAtV,QAAA0R,OAAAA,MAAA1R,EAAA,EAAA;AAfH,QAAAkW,aAAmBxE;AAiBlBE,MAAAA;AAAA5R,IAAAoV,EAAAA,MAAAA,iBAAApV,UAAAgV,8BAEmCpD,MAAAA,MAAA;AAClC/E,cAAa,GACTmI,CACAI,8BAAAA,iBAAeA,cAAaxW,MAAO;AAAA,EACxCoB,GAAAA,QAAAoV,eAAApV,QAAAgV,4BAAAhV,QAAA4R,OAAAA,MAAA5R,EAAA,EAAA;AAJD,QAAAmW,kBAAwBvE;AAIuBC,MAAAA;AAAA7R,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAEXyP,MAAApQ,CAAAA,UAClC8T,qBAAoBa,CAAUA,QAAAA,IAAG3N,OAASlJ,CAAAA,IAAE,CAAC,CAAC,GAAC,MAElCgW,qBAAoBc,CAAAA,UAAUD,MAAGzW,OAAA2W,SAAiBA,QAAQ/W,IAAE,CAAC,IAC3ES,QAAA6R,OAAAA,MAAA7R,EAAA,EAAA;AAJD,QAAAuW,kBAAwB1E;AAIlBC,MAAAA;AAAA9R,IAAA,EAAA,MAAAoV,iBAAApV,EAAA,EAAA,MAAAkW,cAAAlW,EAAA,EAAA,MAAAmW,mBAAAnW,EAAA8V,EAAAA,MAAAA,0BAAA9V,EAAA+V,EAAAA,MAAAA,oBAAA/V,EAAAqD,EAAAA,MAAAA,MAAArD,EAAAsU,EAAAA,MAAAA,YAAAtU,UAAAkV,eAaOpD,MAAAwC,YAAYhJ,mBAAagJ,UAXtC;AAAA,IAAA,mBACqBjR;AAAAA,IAAE,eACJ6S;AAAAA,IAAU,gBACTJ;AAAAA,IAAsB,UAC5BC;AAAAA,IAAgB,aACbI;AAAAA,IAAe,eACbf;AAAAA,IAAamB;AAAAA,IAAArB;AAAAA,EAAAA,CAKyB,GAAClV,QAAAoV,eAAApV,QAAAkW,YAAAlW,QAAAmW,iBAAAnW,QAAA8V,wBAAA9V,QAAA+V,kBAAA/V,QAAAqD,IAAArD,QAAAsU,UAAAtU,QAAAkV,aAAAlV,QAAA8R,OAAAA,MAAA9R,EAAA,EAAA;AAA1D,QAAAqU,OAAavC;AAA6C0E,MAAAA;AAAA,OAAA;AAAA,QAAA,CAGnDpC,YAAU;AAAE,YAAA;AAAWqC,YAAAA;AAAAA,IAAAA;AAWdC,UAAAA,OAAAtC,WAAUvR,MAAAU,YAAmBqJ;AAAI+J,QAAAA;AAAA3W,MAAAoU,EAAAA,MAAAA,cAAApU,EAAA,EAAA,MAAA2V,mBAAA3V,EAAAqD,EAAAA,MAAAA,MAAArD,EAAA,EAAA,MAAA4M,QAAA5M,UAAA0W,QAGxCC,OAAArL,MAAAA,aAAa8I,YAZpB;AAAA,MAAA,WACa;AAAA,MAAY/Q;AAAAA,MAAA,SAEZqS;AAAAA,MAAiB,WACfE;AAAAA,MAAmB,aACjBD;AAAAA,MAAe,iBAAA;AAAA,MAAA,iBAEb/I;AAAAA,MAAI,KACdyI;AAAAA,MAAgB,UACXqB;AAAAA,IAG6B,CAAA,GAAC1W,QAAAoU,YAAApU,QAAA2V,iBAAA3V,QAAAqD,IAAArD,QAAA4M,MAAA5M,QAAA0W,MAAA1W,QAAA2W,QAAAA,OAAA3W,EAAA,EAAA,GAA5CwW,MAAOG;AAAAA,EAAAA;AAfT,QAAAxC,SAAeqC;AAgBoE,MAAAE,KAAAC;AAAA3W,YAAAoV,iBAKjFsB,MAAAA,MAAMtB,eACNuB,OAACvB,aAAa,GAACpV,QAAAoV,eAAApV,QAAA0W,KAAA1W,QAAA2W,QAAAD,MAAA1W,EAAA,EAAA,GAAA2W,MAAA3W,EAAA,EAAA,IAHjBqC,MACE2C,oBAAAA,cACA0R,KACAC,GACF;AAAC,MAAAC,KAAAC;AAAA7W,YAAAoG,WAWOyQ,MAAAzQ,WAAa,CAAApG,GAAAA,QAAAoG,SAAApG,QAAA6W,OAAAA,MAAA7W,EAAA,EAAA;AAAA8W,MAAAA;AAAA9W,IAAAkU,EAAAA,MAAAA,8BAAAlU,EAAAyU,EAAAA,MAAAA,wBAAAzU,EAAA6U,EAAAA,MAAAA,4BAAA7U,UAAA2U,4BAAA3U,EAAA,EAAA,MAAAiV,qBAAAjV,EAAA,EAAA,MAAA+U,8BAAA/U,EAAA,EAAA,MAAA6W,OARZC,MAAA;AAAA,IAAA/W,iBACYmU;AAAAA,IAA0B6C,UACjC;AAAA,IAAMvC,WACLC;AAAAA,IAAoBlF,QACvB0F;AAAAA,IAAiBH,iBACRC;AAAAA,IAA0BzO,QACnCuO;AAAAA,IAAwBnF,QACxBiF;AAAAA,IAAwB,GAC5BkC;AAAAA,EAAAA,GACL7W,QAAAkU,4BAAAlU,QAAAyU,sBAAAzU,QAAA6U,0BAAA7U,QAAA2U,0BAAA3U,QAAAiV,mBAAAjV,QAAA+U,4BAAA/U,QAAA6W,KAAA7W,QAAA8W,OAAAA,MAAA9W,EAAA,EAAA,GAAA4W,MATME;AADT,QAAAE,eAAiDJ;AAoBhDK,MAAAA;AAAAjX,YAAAmU,UAII8C,MAAA9C,gEAAe,GAAAnU,QAAAmU,QAAAnU,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAAAkX,MAAAA;AAAAlX,SAAAA,EAAA,EAAA,MAAAqU,QAAArU,EAAA4M,EAAAA,MAAAA,QAAA5M,EAAAgX,EAAAA,MAAAA,gBAAAhX,UAAAiX,OADlBC,MAAAjU,2BAAAA,IAAC2I,0BAAgB,WAAA,uBAA0BoL,GAAAA,cAAuB3C,SAAAA,MAAYzH,MAC3EqK,UACH,IAAA,CAAA,GAAUjX,QAAAqU,MAAArU,QAAA4M,MAAA5M,QAAAgX,cAAAhX,QAAAiX,KAAAjX,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA,GAFVkX;AAEU,CAEb;AAEDlD,WAAWlI,cAAc;AA/MY,SAAA2J,QAAAxM,GAAA;AAAA,SAAA,CA4CjBA;AAAC;AC5Fd,MAAMkO,WAAWpS,MAAAA,WAAW,SAAAlC,OAAAZ,KAAA;AAAAjC,QAAAA,IAAAC,uBAAA,EAAA;AAAAgM,MAAAA,WAAAmL,OAAA9Q,QAAAS,WAAAjH;AAAAE,WAAA6C,SAIjC;AAAA,IAAAwU,UAAAvX;AAAAA,IAAAmM;AAAAA,IAAAmL;AAAAA,IAAA9Q;AAAAA,IAAA,GAAAS;AAAAA,EAAAA,IAAmElE,OAAK7C,OAAA6C,OAAA7C,OAAAiM,WAAAjM,OAAAoX,OAAApX,OAAAsG,QAAAtG,OAAA+G,WAAA/G,OAAAF,OAAAmM,YAAAjM,EAAA,CAAA,GAAAoX,QAAApX,EAAA,CAAA,GAAAsG,SAAAtG,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA,GAAAF,KAAAE,EAAA,CAAA;AAAjEqX,QAAAA,WAAAvX,OAAgBI,cAAhBJ,IACPwX,CAAAA,SAAAC,UAAA,IAA8BlX,MAAAA,SAAkB+W,CAAoB,KAAA;AAAC,MAAA9W,IAAAK;AAAAX,WAAAoX,SAE3D9W,KAAAA,MAAA;AAAA,QAAA,CACH8W;AAAK,aACDG,aAAe;AAGxBC,UAAAA,UAAgB/T,WAAA,MAAA;AACd8T,mBAAe;AAAA,OACdH,KAAK;AAAC,WAAA,MAAA;AAGP5D,mBAAagE,OAAO;AAAA,IAAC;AAAA,EAAA,GAEtB7W,MAACyW,KAAK,GAACpX,OAAAoX,OAAApX,OAAAM,IAAAN,OAAAW,OAAAL,KAAAN,EAAA,CAAA,GAAAW,KAAAX,EAAA,CAAA,IAZVkB,gBAAUZ,IAYPK,EAAO;AAACC,MAAAA;AAAAZ,IAAAiM,CAAAA,MAAAA,aAAAjM,UAAAsG,UAMI1F,KAAAmN,sBAAkB9B,WAAWwL,IAAAA,SAAA;AAAA,IAAAnR;AAAAA,EAAAA,CAAiB,CAAC,GAACtG,OAAAiM,WAAAjM,QAAAsG,QAAAtG,QAAAY,MAAAA,KAAAZ,EAAA,EAAA;AAC5C,QAAAmB,KAAAkW,WAAW,KAAEnX,QACdkB,KAAAkW,UAAU,KAAEpX;AAAYwQ,MAAAA;AAAA,SAAA1Q,EAAAiC,EAAAA,MAAAA,OAAAjC,EAAA,EAAA,MAAA+G,aAAA/G,EAAAY,EAAAA,MAAAA,MAAAZ,EAAA,EAAA,MAAAmB,MAAAnB,UAAAoB,MALxCsP,KAACzN,2BAAA,IAAA0H,eACS,KAAA,EAAA,WAAA,YACJ5D,GAAAA,WACO,WAAAnG,IACI,iBAAAO,IACD,gBAAAC,IACTa,IACL,CAAA,GAAAjC,QAAAiC,KAAAjC,QAAA+G,WAAA/G,QAAAY,IAAAZ,QAAAmB,IAAAnB,QAAAoB,IAAApB,QAAA0Q,MAAAA,KAAA1Q,EAAA,EAAA,GAPF0Q;AAOE,CAEL;AAEDyG,SAASrL,cAAc;ACFhB,MAAM4L,eAAe3S,MAAAA,WAAW,SAAAlC,OAAAZ,KAAA;AAAAjC,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAgM,WAAAlF,WAAAjH;AAAAE,WAAA6C,SAIrC;AAAA,IAAAoJ;AAAAA,IAAA0L,MAAA7X;AAAAA,IAAA,GAAAiH;AAAAA,EAA4ClE,IAAAA,OAAK7C,OAAA6C,OAAA7C,OAAAiM,WAAAjM,OAAA+G,WAAA/G,OAAAF,OAAAmM,YAAAjM,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA,GAAAF,KAAAE,EAAA,CAAA;AAA/B2X,QAAAA,OAAA7X,OAAQI,aAARJ;AAAQQ,MAAAA;AAAAN,IAAAiM,CAAAA,MAAAA,aAAAjM,SAAA2X,QAMXrX,KAAAyN,sBAAkB9B,WAAW2L,IAAAA,aAAA;AAAA,IAAAD;AAAAA,EAAAA,CAAmB,CAAC,GAAC3X,OAAAiM,WAAAjM,OAAA2X,MAAA3X,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAAW,MAAAA;AAAA,SAAAX,EAAAiC,CAAAA,MAAAA,OAAAjC,SAAA+G,aAAA/G,EAAA,CAAA,MAAAM,MAH/DK,KAACsC,2BAAAA,IAAA,UAAA,EACS,WAAA,mBACJ8D,WACO,WAAAzG,IACN2B,KACL,GAAAjC,OAAAiC,KAAAjC,OAAA+G,WAAA/G,OAAAM,IAAAN,QAAAW,MAAAA,KAAAX,EAAA,EAAA,GALFW;AAKE,CAEL;AAED+W,aAAa5L,cAAc;AAMpB,MAAM+L,gBAAgB9S,MAAAA,WAAW,SAAAlC,OAAAZ,KAAA;AAAAjC,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAgM,WAAAlF,WAAAjH;AAAAE,WAAA6C,SAItC;AAAA,IAAAoJ;AAAAA,IAAA0L,MAAA7X;AAAAA,IAAA,GAAAiH;AAAAA,EAA4ClE,IAAAA,OAAK7C,OAAA6C,OAAA7C,OAAAiM,WAAAjM,OAAA+G,WAAA/G,OAAAF,OAAAmM,YAAAjM,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA,GAAAF,KAAAE,EAAA,CAAA;AAA/B2X,QAAAA,OAAA7X,OAAQI,aAARJ;AAAQQ,MAAAA;AAAAN,IAAAiM,CAAAA,MAAAA,aAAAjM,SAAA2X,QAMXrX,KAAAyN,sBAAkB9B,WAAW6L,IAAAA,cAAA;AAAA,IAAAH;AAAAA,EAAAA,CAAoB,CAAC,GAAC3X,OAAAiM,WAAAjM,OAAA2X,MAAA3X,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAAW,MAAAA;AAAA,SAAAX,EAAAiC,CAAAA,MAAAA,OAAAjC,SAAA+G,aAAA/G,EAAA,CAAA,MAAAM,MAHhEK,KAACsC,2BAAAA,IAAA,UAAA,EACS,WAAA,oBACJ8D,WACO,WAAAzG,IACN2B,KACL,GAAAjC,OAAAiC,KAAAjC,OAAA+G,WAAA/G,OAAAM,IAAAN,QAAAW,MAAAA,KAAAX,EAAA,EAAA,GALFW;AAKE,CAEL;AAEDkX,cAAc/L,cAAc;AAMrB,MAAMiM,kBAAkBhT,MAAAA,WAAW,SAAAlC,OAAAZ,KAAA;AAAAjC,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAgM,WAAAlF,WAAAjH;AAAAE,WAAA6C,SAIxC;AAAA,IAAAoJ;AAAAA,IAAA0L,MAAA7X;AAAAA,IAAA,GAAAiH;AAAAA,EAA4ClE,IAAAA,OAAK7C,OAAA6C,OAAA7C,OAAAiM,WAAAjM,OAAA+G,WAAA/G,OAAAF,OAAAmM,YAAAjM,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA,GAAAF,KAAAE,EAAA,CAAA;AAA/B2X,QAAAA,OAAA7X,OAAQI,aAARJ;AAAQQ,MAAAA;AAAAN,IAAAiM,CAAAA,MAAAA,aAAAjM,SAAA2X,QAKXrX,KAAAyN,sBAAkB9B,WAAW+L,IAAAA,gBAAA;AAAA,IAAAL;AAAAA,EAAAA,CAAsB,CAAC,GAAC3X,OAAAiM,WAAAjM,OAAA2X,MAAA3X,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAAW,MAAAA;AAAA,SAAAX,EAAAiC,CAAAA,MAAAA,OAAAjC,SAAA+G,aAAA/G,EAAA,CAAA,MAAAM,MAFlEK,KAACsC,+BAAA,YACK8D,GAAAA,WACO,WAAAzG,IACN2B,IACL,CAAA,GAAAjC,OAAAiC,KAAAjC,OAAA+G,WAAA/G,OAAAM,IAAAN,QAAAW,MAAAA,KAAAX,EAAA,EAAA,GAJFW;AAIE,CAEL;AAEDoX,gBAAgBjM,cAAc;AAMvB,MAAMmM,eAAelT,MAAAA,WAAW,SAAAlC,OAAAZ,KAAA;AAAAjC,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAgM,WAAAlF,WAAAjH;AAAAE,WAAA6C,SAIrC;AAAA,IAAAoJ;AAAAA,IAAA0L,MAAA7X;AAAAA,IAAA,GAAAiH;AAAAA,EAA4ClE,IAAAA,OAAK7C,OAAA6C,OAAA7C,OAAAiM,WAAAjM,OAAA+G,WAAA/G,OAAAF,OAAAmM,YAAAjM,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA,GAAAF,KAAAE,EAAA,CAAA;AAA/B2X,QAAAA,OAAA7X,OAAQI,aAARJ;AAAQQ,MAAAA;AAAAN,IAAAiM,CAAAA,MAAAA,aAAAjM,SAAA2X,QAMXrX,KAAAyN,sBAAkB9B,WAAWiM,IAAAA,aAAA;AAAA,IAAAP;AAAAA,EAAAA,CAAmB,CAAC,GAAC3X,OAAAiM,WAAAjM,OAAA2X,MAAA3X,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAAW,MAAAA;AAAA,SAAAX,EAAAiC,CAAAA,MAAAA,OAAAjC,SAAA+G,aAAA/G,EAAA,CAAA,MAAAM,MAH/DK,KAACsC,+BAAA,YAEK8D,GAAAA,WACO,WAAAzG,IACN2B,IACL,CAAA,GAAAjC,OAAAiC,KAAAjC,OAAA+G,WAAA/G,OAAAM,IAAAN,QAAAW,MAAAA,KAAAX,EAAA,EAAA,GALFW;AAKE,CAEL;AAEDsX,aAAanM,cAAc;AChHpB,MAAMqM,WAAWpT,MAAAA,WAAW,SAAAlC,OAAAZ,KAAA;AAAAjC,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAAmY,MAAArR;AAAA/G,WAAA6C,SAIjC;AAAA,IAAAuV;AAAAA,IAAA,GAAArR;AAAAA,EAAAA,IAA6BlE,OAAK7C,OAAA6C,OAAA7C,OAAAoY,MAAApY,OAAA+G,cAAAqR,OAAApY,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA;AASpB,QAAAF,KAAA+C,MAAK7E,aAAAkC,SAAuB,IAAO2C,MAAK7E;AAASsC,MAAAA;AAAA,SAAAN,SAAAoY,QAAApY,EAAA6C,CAAAA,MAAAA,MAAAM,YAAAnD,EAAAiC,CAAAA,MAAAA,OAAAjC,EAAA,CAAA,MAAA+G,aAAA/G,SAAAF,MAN7DQ,oCAACqK,eAAAA,KACS,EAAA,WAAA,YACJ5D,GAAAA,WACEqR,MACDnW,KACA,MAAA,YACK,UAAAnC,IAET+C,UAAKM,MAAAA,SACR,CAAA,GAAMnD,OAAAoY,MAAApY,EAAA,CAAA,IAAA6C,MAAAM,UAAAnD,OAAAiC,KAAAjC,OAAA+G,WAAA/G,OAAAF,IAAAE,OAAAM,MAAAA,KAAAN,EAAA,CAAA,GATNM;AASM,CAET;AAED6X,SAASrM,cAAc;ACVvB,MAAMuM,QAAQ;AAAA,EACZ5V,OAAO;AAAA,EACP6V,SAAS;AAAA,EACTC,SAAS;AAAA,EACT3V,MAAM;AACR,GAEM4V,mBAAmB;AAAA,EACvB/V,OAAO;AAAA,EACP6V,SAAS;AAAA,EACTC,SAAS;AAAA,EACT3V,MAAM;AACR,GAEM6V,cAAc;AAAA,EAClBhW,OAAO;AAAA,EACP6V,SAAS;AAAA,EACTC,SAAS;AAAA,EACT3V,MAAM;AACR,GAIM8V,+BAA+B,MAAO,KAAK,KAAK,KAAK;AASpD,SAAAC,MAAA9V,OAAA;AAAA7C,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA2Y,UAAAC,aAAAC,UAAAxJ,SAAAvI,WAAAgS,QAAAjZ,IAAAkZ,OAAAC;AAAAjZ,WAAA6C,SAML;AAAA,IAAA+V;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAxJ;AAAAA,IAAAhJ,QAAAxG;AAAAA,IAAAkZ;AAAAA,IAAAD;AAAAA,IAAAE;AAAAA,IAAA,GAAAlS;AAAAA,EAAAA,IAUIlE,OAAK7C,OAAA6C,OAAA7C,OAAA4Y,UAAA5Y,OAAA6Y,aAAA7Y,OAAA8Y,UAAA9Y,OAAAsP,SAAAtP,OAAA+G,WAAA/G,OAAA+Y,QAAA/Y,OAAAF,IAAAE,OAAAgZ,OAAAhZ,OAAAiZ,cAAAL,WAAA5Y,EAAA,CAAA,GAAA6Y,cAAA7Y,EAAA,CAAA,GAAA8Y,WAAA9Y,EAAA,CAAA,GAAAsP,UAAAtP,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA,GAAA+Y,SAAA/Y,EAAA,CAAA,GAAAF,KAAAE,EAAA,CAAA,GAAAgZ,QAAAhZ,EAAA,CAAA,GAAAiZ,YAAAjZ,EAAA,CAAA;AALPsG,QAAAA,SAAAxG,OAAUI,aAAVJ,IAOFoZ,WAAiBH,SAAMP,iBAAoBO,MAAM,IAAI,WACrDI,aAAmBJ,SAAMN,YAAeM,MAAM,IAAI,WAClDK,OAAaL,SAAMV,MAASU,MAAM,IAAI,UAItCM,iBAF6BrG,uCAAwB,IAES,IAAA;AAAA1S,MAAAA;AAAAN,YAAAqZ,kBAC3C/Y,KAAA+Y,iBAAc;AAAA,IAAA/a,MAAU;AAAA,IAAQ+a;AAAAA,IAAAC,QAAA;AAAA,EAAA,IAAA;AAAA,IAAAR,UAAA;AAAA,EAAA,GAA+C9Y,QAAAqZ,gBAAArZ,QAAAM,MAAAA,KAAAN,EAAA,EAAA;AAAlG,QAAAuZ,aAAmBjZ,IAEnBkZ,cAAoBV,YAAYW,SAASX,QAAQ,KAAKA,WAAQJ;AAA+B/X,MAAAA;AAAAX,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACxDzB,KAAA,CAAC,UAAU,SAAS,GAACX,QAAAW,MAAAA,KAAAX,EAAA,EAAA;AAA1D,QAAA0Z,UAAqC/Y;AAAqBC,MAAAA;AAAAZ,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACrBxB,KAAA,CAAC,WAAW,SAAS,GAACZ,QAAAY,MAAAA,KAAAZ,EAAA,EAAA;AAA3D,QAAAuS,UAAqC3R;AAAsBO,MAAAA;AAAAnB,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACzBjB,KAAA,CAAC,UAAU,UAAU,GAACnB,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA;AAAxD,QAAA2Z,OAAkCxY;AAAsBC,MAAAA;AAAApB,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAKzChB,KAAAwY,IAAM,MAAA,GAAC5Z,QAAAoB,MAAAA,KAAApB,EAAA,EAAA;AAIC0Q,QAAAA,KAAA8I,cAAc,KAAEtZ;AAAY2Q,MAAAA;AAAA7Q,YAAAgZ,SAiBxCnI,KAAAmI,SACE/V,+BAAAoE,eAAAA,MAAA,EAAW,MAAA,GAAU,QAAA,2BAEtB,GACDrH,QAAAgZ,OAAAhZ,QAAA6Q,MAAAA,KAAA7Q,EAAA,EAAA;AAAA8Q,MAAAA;AAAA9Q,IAAA6Y,EAAAA,MAAAA,eAAA7Y,UAAAuZ,cACAzI,KAAA+H,eACE5V,2BAAA,IAAA,YAAA,EAAW,OAAI,IAAQ,MAAA,GAAakI,UAAAA,SAAqBoO,YACvDV,uBACH,GACD7Y,QAAA6Y,aAAA7Y,QAAAuZ,YAAAvZ,QAAA8Q,MAAAA,KAAA9Q,EAAA,EAAA;AAAAgR,MAAAA;AAAAhR,IAAA6Q,EAAAA,MAAAA,MAAA7Q,UAAA8Q,MAXLE,KAAC/N,+BAAA6K,eAAAA,QAAW,MAAC,GAAY,WAAA,QAAgB,YACvC,UAACjC,2BAAA,KAAAT,sBAAA,EAAa,OAAC,GACZyF,UAAAA;AAAAA,IAAAA;AAAAA,IAKAC;AAAAA,EAAAA,EAKH,CAAA,EACF,CAAA,GAAO9Q,QAAA6Q,IAAA7Q,QAAA8Q,IAAA9Q,QAAAgR,MAAAA,KAAAhR,EAAA,EAAA;AAAAkR,MAAAA;AAAAlR,IAAAmZ,EAAAA,MAAAA,cAAAnZ,UAAA4Y,YAAA5Y,EAAA,EAAA,MAAAsP,WAEN4B,MAAA0H,YACE3V,2BAAAA,IAAA0H,eAAAA,KAAA,EAAa,SAAA,GACZ,UAAC1H,2BAAAA,IAAA2H,eAAAA,QAAA,EACI,IAAA,UACG0G,MAAAA,iBACD,MAAA,SACI,YACH6H,MAAS,YACN7J,kBACF,OAAA;AAAA,IAAAuK,eAAgB;AAAA,EAAA,GAAM,GAEjC,GACD7Z,QAAAmZ,YAAAnZ,QAAA4Y,UAAA5Y,QAAAsP,SAAAtP,QAAAkR,OAAAA,MAAAlR,EAAA,EAAA;AAAAoR,MAAAA;AAAApR,IAAAkR,EAAAA,MAAAA,OAAAlR,UAAAgR,MAAAhR,EAAA,EAAA,MAAAuZ,cA5BHnI,MAACvF,2BAAAA,KAAA,YAAA,EAAiB,OAAA,cAAuBV,UAAAA,SAAqBoO,YAC5DvI,UAAAA;AAAAA,IAAAA;AAAAA,IAeCE;AAAAA,EAAAA,GAaH,GAAalR,QAAAkR,KAAAlR,QAAAgR,IAAAhR,QAAAuZ,YAAAvZ,QAAAoR,OAAAA,MAAApR,EAAA,EAAA;AAAAuR,MAAAA;AAAAvR,IAAA,EAAA,MAAAkZ,YAAAlZ,EAAA,EAAA,MAAA8Y,YAAA9Y,EAAA,EAAA,MAAAwZ,eAAAxZ,EAAAsP,EAAAA,MAAAA,WAAAtP,EAAAsG,EAAAA,MAAAA,UAAAtG,EAAAuZ,EAAAA,MAAAA,cAAAvZ,EAAAiZ,EAAAA,MAAAA,aAAAjZ,UAAAqZ,kBACZ9H,MAAAiI,+CACE,WAAqB,EAAA,WAAAM,IAAAA,gBAA6B3O,GAAAA,UAAMA,SAAeoO,YACtE,UAAA;AAAA,IAAAtW,+BAACmE,eAAAA,QAAgB,WAAA2S,IAAAA,oBAA6Bb,GAAAA,MAAO,UAAW5S,QAAM;AAAA,mCACrE,YAOY,EAAA,WAAA0T,+BAELd,MAAAA,UACG,SAAA;AAAA,MAAAe,QAAA;AAAA,OACA,SAAA;AAAA,MAAAA,QAAA;AAAA,OACG,YAAA;AAAA,MAAA7C,OAAQiC;AAAAA,MAAcP,UAAYA,WAAgB;AAAA,MAAAoB,MAAQ;AAAA,IACjD5K,GAAAA,qBAAAA,QALhB,GAAA,YAAY2J,SAAS,EAO9B;AAAA,EAAA,EAAA,CAAA,GACDjZ,QAAAkZ,UAAAlZ,QAAA8Y,UAAA9Y,QAAAwZ,aAAAxZ,QAAAsP,SAAAtP,QAAAsG,QAAAtG,QAAAuZ,YAAAvZ,QAAAiZ,WAAAjZ,QAAAqZ,gBAAArZ,QAAAuR,OAAAA,MAAAvR,EAAA,EAAA;AAAAyR,MAAAA;AAAA,SAAAzR,EAAA,EAAA,MAAAkZ,YAAAlZ,EAAAsG,EAAAA,MAAAA,UAAAtG,UAAA+G,aAAA/G,EAAA,EAAA,MAAAoZ,QAAApZ,EAAAoR,EAAAA,MAAAA,OAAApR,EAAAuR,EAAAA,MAAAA,OAAAvR,EAAA,EAAA,MAAA0Q,MAAA1Q,EAAAuZ,EAAAA,MAAAA,cAAAvZ,UAAAqZ,kBArEH5H,MAAA5F,2BAAAA,KAAC,YACI,EAAA,IAAA,MACQ,WAAAzK,IACH,WAAA,SACFgY,MAAI,GACNrS,WACe,qBAAA2J,IACX2I,QAAa,gBACb/S,QACA,QAAA,GACF4S,MAAAA,UACC,QAAA,YACGiB,UAAAA,WACDT,SACAnH,SACHoH,MACMJ,YACN,OAAA,QACG,UAAA,YAETnI,UAAAA;AAAAA,IAAAA;AAAAA,IA8BCG;AAAAA,EAAAA,GAoBH,GAAavR,QAAAkZ,UAAAlZ,QAAAsG,QAAAtG,QAAA+G,WAAA/G,QAAAoZ,MAAApZ,QAAAoR,KAAApR,QAAAuR,KAAAvR,QAAA0Q,IAAA1Q,QAAAuZ,YAAAvZ,QAAAqZ,gBAAArZ,QAAAyR,OAAAA,MAAAzR,EAAA,EAAA,GAtEbyR;AAsEa;AAIjBkH,MAAM7M,cAAc;AAEpB,MAAMqO,YAAY;AAAA,EAChBT,SAAS;AAAA,IAACU,GAAG;AAAA,IAAIC,OAAO;AAAA,IAAKC,QAAQ;AAAA,EAAC;AAAA,EACtC9O,QAAQ;AAAA,IAAC+O,SAAS;AAAA,EAAC;AAAA,EACnBjD,SAAU+B,oBACHA,iBAEE;AAAA,IACLkB,SAAS;AAAA,IACThB,YAAY;AAAA,MACViB,MAAM;AAAA,MACNC,iBAAiBpB,iBAAiB;AAAA,MAClCP,UAAUO,iBAAiB;AAAA,IAAA;AAAA,EAC7B,IAR0B;AAAA,IAACkB,SAAS;AAAA,EAAC;AAAA,EAWzCG,SAAS;AAAA,IACPN,GAAG;AAAA,IACHC,OAAO;AAAA,EACT;AAAA,EACAM,UAAU;AAAA,IACRL,QAAQ;AAAA,IACRD,OAAO;AAAA,EAAA;AAEX,GAGMlP,UAAU;AAAA,EACduO,SAAS;AAAA,IACPkB,YAAY;AAAA,EACd;AAAA,EACApP,QAAQ;AAAA,IACN+O,SAAS;AAAA,EACX;AAAA,EACAjD,SAAS;AAAA,IACPiD,SAAS;AAAA,EAAA;AAEb,GAEMM,aAAaC,aAAAA,OAAOC,OAAO3T,eAAI,IAAA,GAC/B4T,aAAaF,oBAAOC,OAAOjN,eAAAA,IAAI,GAC/BmN,aAAaH,aAAAA,OAAOC,OAAO1T,eAAI,IAAA,GAC/B6T,YAAYJ,aAAAA,OAAOC,OAAOpQ,kBAAG;AC7M5B,SAAAwQ,aAAA;AACEC,SAAAA,2BAAAC,WAAA5F,SAAA6F,MAIP;AAAC;AALI,SAAAA,SAAA;AAAA,SAAA;AAAA;AAAA,SAAA7F,UAAA;AAAA,SAAA;AAAA;AAQP,MAAM4F,YAAYA,MAAM,MAAM;AAAC,GCXlBE,eAAelN,eAAAA,0BAC1B,4BACA,IACF;ACUO,SAAAmN,WAAA3Y,OAAA;AAAA7C,QAAAA,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAAkD;AAAAA,IAAA+C,SAAApG;AAAAA,IAAA2b;AAAAA,IAAAC;AAAAA,IAAAtP,KAAA9L;AAAAA,EAAA,IAA6DuC,OAA5CqD,UAAApG,OAAWI,aAAXJ,IAAiCsM,MAAA9L,OAAOJ,aAAPI,IAClD;AAAA,IAAAga;AAAAA,MAAiBnK,wBAAS;AAACxP,MAAAA;AAAAX,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAKZzB,KAAAgb,IAAW,WAAA,GAAC3b,OAAAW,MAAAA,KAAAX,EAAA,CAAA;AAAAY,MAAAA;AAAAZ,WAAAsa,UAOhB1Z,KAAA;AAAA,IAAA0Z;AAAAA,EAAA,GAAQta,OAAAsa,QAAAta,OAAAY,MAAAA,KAAAZ,EAAA,CAAA;AAAAmB,MAAAA;AAAA,SAAAnB,SAAAmD,YAAAnD,EAAAoM,CAAAA,MAAAA,OAAApM,EAAAkG,CAAAA,MAAAA,WAAAlG,EAAA,CAAA,MAAAyb,YAAAzb,SAAA0b,YAAA1b,EAAA,CAAA,MAAAY,MATjBO,KAAC8B,2BAAAA,IAAA2Y,eAAAA,MAAA,EACI,IAAA,MACQ,WAAAjb,IACH,WAAA,iBACCuF,SACCuV,UACAC,UACLtP,KACI,YACF,OAAAxL,IAEC,SACV,CAAA,GAAOZ,OAAAmD,UAAAnD,OAAAoM,KAAApM,OAAAkG,SAAAlG,OAAAyb,UAAAzb,OAAA0b,UAAA1b,OAAAY,IAAAZ,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA,GAZPmB;AAYO;AAIXqa,WAAW1P,cAAc;ACrCzB,IAAI+P,UAAU;AAGP,SAASC,kBAA0B;AACxC,SAAOC,OAAOF,SAAS;AACzB;ACwBO,SAAAG,cAAAnZ,OAAA;AAAA7C,QAAAA,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAAkD;AAAAA,IAAA+C;AAAAA,IAAAuV;AAAAA,IAAAC;AAAAA,IAAAtP;AAAAA,IAAAsG,SAAA5S;AAAAA,EAAkE+C,IAAAA,OAAf6P,UAAA5S,OAAWI,aAAXJ;AAAWQ,MAAAA;AAAAN,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACf9B,KAAA,CAAA,GAAEN,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAjD,QAAA,CAAAwC,OAAAyZ,QAAA,IAA0B5b,eAAqBC,EAAE,GACjD4b,UAAgBf,WAAW;AAAC,MAAAxa,IAAAC;AAAAZ,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAkDnBxB,KAAA;AAAA,IAAA0N,SAAA;AAAA,IAAA5O,MA/CPyc,CAAA,WAAA;AACE,YAAA9Y,KAAW8Y,OAAM9Y,MAAOyY,gBACxBhD,GAAAA,WAAiBqD,OAAMrD,YAAiB;AAExCsD,aAAAA,MAAAA,gBAAA,MAAA;AACEH,iBAAQI,CAAA,cAAA;AAAA,cAOFvD,aAAiB;AAAA,mBACZuD,UAAS1c,OAAAia,CAAmBA,UAAAA,MAAKvW,OAAQA,EAAE;AAQpD,gBAAAiZ,UAAAA,MACEF,MAAAA,gBACEH,MAAAA,SAAQM,CAAAA,iBAAmBA,aAAY5c,OAAA6c,CAAmB5C,YAAAA,QAAKvW,OAAQA,EAAE,CAAC,CAC5E;AASGgZ,iBAAAA,CAAAA,GAAAA,UAAS1c,OAAA8c,aAAmB7C,QAAKvW,OAAQA,EAAE,GAAC;AAAA,YAAAiZ;AAAAA,YAAAjZ;AAAAA,YAAA4V,WAIlCyD,KAAAC,IAAS;AAAA,YAACR,QAAA;AAAA,cAAA,GACTA;AAAAA,cAAMrD;AAAAA,YAAAA;AAAAA,UAAA,CAAA;AAAA,QAAA,CAGvB;AAAA,MACF,CAAA,GAEMzV;AAAAA,IAAAA;AAAAA,EAAE,GAGgBrD,OAAAY,MAAAA,KAAAZ,EAAA,CAAA,GAA3BW,KAAOC;AAhDT,QAAA4C,QAAiC7C;AAiD3BQ,MAAAA;AAAAnB,IAAAoM,CAAAA,MAAAA,OAAApM,EAAAkc,CAAAA,MAAAA,WAAAlc,EAAAkG,CAAAA,MAAAA,WAAAlG,SAAAyb,YAAAzb,EAAA,CAAA,MAAA0b,YAAA1b,EAAA,CAAA,MAAAwC,SAAAxC,EAAA,CAAA,MAAA0S,WAKDvR,KAAA+a,WACCjZ,2BAAA,IAAC2Z,gCAAuBlK,SACtB,UAAAzP,2BAAAA,IAAC,cAAoBiD,SAAmBuV,UAAoBC,UAAetP,KACzE,UAAAnJ,+BAAC4Z,aAAAA,mBAAyB,SAAA,IAAY,MAAA,aACnCra,gBAAK1F,IAAA2Y,KAWL,GACH,EACF,CAAA,EACF,CAAA,GACDzV,OAAAoM,KAAApM,OAAAkc,SAAAlc,OAAAkG,SAAAlG,OAAAyb,UAAAzb,OAAA0b,UAAA1b,OAAAwC,OAAAxC,OAAA0S,SAAA1S,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAAoB,MAAAA;AAAA,SAAApB,EAAAmD,EAAAA,MAAAA,YAAAnD,UAAAmB,MArBHC,KAAAyK,2BAAA,KAAA,aAAA,UAAA,EAA8BrI,OAC3BL,UAAAA;AAAAA,IAAAA;AAAAA,IACAhC;AAAAA,EAAAA,EAoBH,CAAA,GAAwBnB,QAAAmD,UAAAnD,QAAAmB,IAAAnB,QAAAoB,MAAAA,KAAApB,EAAA,EAAA,GAtBxBoB;AAsBwB;AA/ErB,SAAAqU,MAAA3V,IAAA;AA+DmB,QAAA;AAAA,IAAAwc,SAAAQ;AAAAA,IAAAzZ,IAAA0Z;AAAAA,IAAAZ,QAAAa;AAAAA,IAAA/D;AAAAA,EAAAA,IAAAnZ;AACV,SAAAmD,+BAAC,SAEW,UAAAkZ,SAAMvD,UACH,aAAAuD,SAAMtD,aACVyD,SAAM,WACP,QAAAH,SAAMpD,QACP,OAAAoD,SAAMnD,OACH,UAAAmD,SAAMrD,UACLG,aAPL,IAQN;AAAA;AAUlB+C,cAAclQ,cAAc;ACvGrB,SAAAmR,WAAA;AACLzZ,QAAAA,QAAcgL,iBAAA+M,YAAuB;AAAC,MAAA,CAEjC/X;AAAK0Z,UAAAA,IAAAA,MACQ,mCAAmC;AAAA,MAMjD,CAACC,eAAAA,SAAS3Z,KAAK,KAAKA,MAAK8K,YAAgB;AAAA4O,UAAAA,IAAAA,MAC3B,iDAAiD;AAG5D1Z,SAAAA;AAAK;ACrBE4Z,SAAAA,qBACd5a,OACA6a,cACAvU,gBACoB;AACpB,QAAMwU,MAAMD,aAAaxY,QAAQiE,cAAc,GACzCsN,MAAMiH,aAAaxP,MAAM,GAAGyP,GAAG,GAC/B9P,MAAM4I,IAAIpX;AAEhB,WAASF,IAAI0O,MAAM,GAAG1O,KAAK,GAAGA,KAAK,GAAG;AACpC,UAAMye,UAAUnH,IAAItX,CAAC,EAAEb,aAAa,eAAe;AAEnD,QAAI,CAACsf;AACH;AAGIC,UAAAA,WAAWD,QAAQE,MAAM,GAAG;AAElCD,aAASE,IAAI;AAEb,UAAMC,IAAc,CAAE;AAEtB,QAAIpV,WAAW;AAEf,aAASqV,IAAI,GAAGA,IAAIJ,SAASxe,QAAQ4e,KAAK,GAAG;AACzCle,QAAAA,KAAK8d,SAASI,CAAC,CAAC;AAEZC,YAAAA,IAAIF,EAAEG,KAAK,GAAG;AAEpB,UAAI,CAACtb,MAAMqb,CAAC,GAAGtV,UAAU;AACZ,mBAAA;AACX;AAAA,MAAA;AAAA,IACF;AAGEA,QAAAA;AACF,aAAO6N,IAAItX,CAAC;AAAA,EAAA;AAIT,SAAA;AACT;AAEgBif,SAAAA,qBACdvb,OACA6a,cACAvU,gBACoB;AACdwU,QAAAA,MAAMD,aAAaxY,QAAQiE,cAAc,GACzCsN,MAAMiH,aAAaxP,MAAMyP,GAAG,GAC5B9P,MAAM6P,aAAare;AAEzB,WAASF,IAAI,GAAGA,IAAI0O,KAAK1O,KAAK,GAAG;AAC3B,QAAA,CAACsX,IAAItX,CAAC;AACR;AAGF,UAAMye,UAAUnH,IAAItX,CAAC,EAAEb,aAAa,eAAe;AAEnD,QAAI,CAACsf;AACH;AAGIC,UAAAA,WAAWD,QAAQE,MAAM,GAAG;AAElCD,aAASE,IAAI;AAEb,UAAMC,IAAc,CAAE;AAEtB,QAAIpV,WAAW;AAEf,aAASqV,IAAI,GAAGA,IAAIJ,SAASxe,QAAQ4e,KAAK,GAAG;AACzCle,QAAAA,KAAK8d,SAASI,CAAC,CAAC;AAEZC,YAAAA,IAAIF,EAAEG,KAAK,GAAG;AAEpB,UAAI,CAACtb,MAAMqb,CAAC,GAAGtV,UAAU;AACZ,mBAAA;AACX;AAAA,MAAA;AAAA,IACF;AAGEA,QAAAA;AACF,aAAO6N,IAAItX,CAAC;AAAA,EAAA;AAIT,SAAA;AACT;AAEO,SAASkf,kBAAkBze,IAAuB;AAKvD,MAJIA,GAAGtB,aAAa,MAAM,MAAM,cAC9BsB,GAAGX,MAAM,GAGPW,GAAGtB,aAAa,MAAM,MAAM,QAAQ;AACtC,UAAMggB,aAAa1e,GAAG0e;AAElBA,kBAAcA,sBAAsBlV,eACtCkV,WAAWrf,MAAM;AAAA,EAAA;AAGvB;AClGasf,MAAAA,cAAc7P,eAAAA,0BACzB,2BACA,IACF,GC2Ba8P,OAAOC,MAAAA,KAClBrZ,MAAAA,WAAW,SAAAlC,OAAAmC,cAAA;AAAAhF,QAAAA,IAAAC,uBAAA,EAAA;AAAAkD,MAAAA,UAAAiJ,KAAAxG,SAAAmB,WAAAjH;AAAAE,WAAA6C,SAIT;AAAA,IAAAM;AAAAA,IAAAiJ;AAAAA,IAAAG,OAAAzM;AAAAA,IAAA8F;AAAAA,IAAA,GAAAmB;AAAAA,EAAAA,IAA0DlE,OAAK7C,OAAA6C,OAAA7C,OAAAmD,UAAAnD,OAAAoM,KAAApM,OAAA4F,SAAA5F,OAAA+G,WAAA/G,OAAAF,OAAAqD,WAAAnD,EAAA,CAAA,GAAAoM,MAAApM,EAAA,CAAA,GAAA4F,UAAA5F,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA,GAAAF,KAAAE,EAAA,CAAA;AAAzC,QAAAuM,QAAAzM,OAASI,aAATJ,IACtBmC,MAAYvB,MAAAA,OAAA,IAAkC,GAC9C,CAAAoI,gBAAAuV,iBAAA,IAA4Che,MAAAA,aAAiC,GAC7E+S,oBAA0B1S,aAAOoI,cAAc;AAAC,MAAAxI,IAAAK;AAAAX,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACXzB,KAAA,CAAEX,GAAAA,OAAAW,MAAAA,KAAAX,EAAA,CAAA,GAAAM,KAAFK;AAArC,QAAA2d,OAAuBhe;AAAqBM,MAAAA;AAAAZ,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACoBxB,KAAA,CAAA,GAAEZ,OAAAY,MAAAA,KAAAZ,EAAA,CAAA;AAAlE,QAAA,CAAAqd,cAAAkB,eAAA,IAAwCle,MAAAA,SAAwBO,EAAE;AAACO,MAAAA;AAAAnB,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACrBjB,KAAA,CAAA,GAAEnB,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAhD,QAAA,CAAAwC,OAAAyZ,QAAA,IAA0B5b,MAAAA,SAAoBc,EAAE,GAChDqd,WAAiB9d,MAAAA,OAAO8B,KAAK;AAACpB,MAAAA;AAAApB,IAAA,CAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAI5BhB,KAAAA,MAAMa,IAAGnB,SAAQd,OAAAoB,MAAAA,KAAApB,EAAA,CAAA,GAFnBqC,MAAAA,oBACE2C,cACA5D,EACF;AAAC,MAAAsP,IAAAG;AAAA7Q,YAAA8I,kBAES4H,KAAAA,MAAA;AACR0C,sBAAiBtS,UAAWgI;AAAAA,EAAc,GACzC+H,MAAC/H,cAAc,GAAC9I,QAAA8I,gBAAA9I,QAAA0Q,IAAA1Q,QAAA6Q,OAAAH,KAAA1Q,EAAA,EAAA,GAAA6Q,KAAA7Q,EAAA,EAAA,IAFnBkB,gBAAUwP,IAEPG,EAAgB;AAAC,MAAAC,IAAAE;AAAAhR,YAAAwC,SAEVsO,KAAAA,MAAA;AACR0N,aAAQ1d,UAAW0B;AAAAA,EAAK,GACvBwO,MAACxO,KAAK,GAACxC,QAAAwC,OAAAxC,QAAA8Q,IAAA9Q,QAAAgR,OAAAF,KAAA9Q,EAAA,EAAA,GAAAgR,KAAAhR,EAAA,EAAA,IAFVkB,gBAAU4P,IAEPE,EAAO;AAACE,MAAAA;AAAAlR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAGT8O,MAAAA,CAAAxT,SAAA+gB,QAAAlW,UAAAhF,cACE0Y,SAAQyC,CAAA,OAAA;AAAA,IAAA,GAAaA;AAAAA,IAAC,CAAGJ,MAAI,GAAA;AAAA,MAAA5gB;AAAAA,MAAA6K;AAAAA,IAAAA;AAAAA,IAAwB,GAEjDhF,YACF8a,kBAAkB3gB,OAAO,GAAC,MAAA;AAI1Bue,aAAQ0C,CAAA,QAAA;AACN,YAAAC,WAAA;AAAA,QAAA,GAAqBF;AAAAA,MAAC;AAEfE,aAAAA,OAAAA,SAASN,MAAI,GAEbM;AAAAA,IAAAA,CACR;AAAA,EAAA,IAEJ5e,QAAAkR,OAAAA,MAAAlR,EAAA,EAAA;AAjBH,QAAA6e,eAAqB3N;AAmBpBE,MAAAA;AAAApR,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAE+BgP,MAAAA,CAAA0N,QAAAC,eAAA;AAC9B9C,aAAQ+C,CAAA,QAAA;AACNC,YAAAA,YAAkBP,IAAEJ,MAAI;AAAC,aAEpBW,YAAmB;AAAA,QAAA,GAEbP;AAAAA,QAAC,CAAGJ,MAAI,GAAA;AAAA,UAAA,GAAOW;AAAAA,UAAS1W,UAAEA;AAAAA,QAAAA;AAAAA,MAAQ,IAFtBmW;AAAAA,IAAAA,CAGxB;AAAA,EAAA,GACF1e,QAAAoR,OAAAA,MAAApR,EAAA,EAAA;AARD,QAAAkf,cAAoB9N;AAQdG,MAAAA;AAKc,QAAAE,MAAA3I,kBAAkBuU,mBAAuB;AAAA3L,MAAAA;AAAA1R,IAAAuM,EAAAA,MAAAA,SAAAvM,UAAAwC,SAAAxC,EAAA,EAAA,MAAAyR,OAFpDC,MAAA;AAAA,IAAApD,SAAA;AAAA,IAAAxF,gBAEW2I;AAAAA,IAAyC0N,OAAA;AAAA,IAAAb;AAAAA,IAAAO;AAAAA,IAAAK;AAAAA,IAAAb;AAAAA,IAAA9R;AAAAA,IAAA/J;AAAAA,EAAAA,GAQ1DxC,QAAAuM,OAAAvM,QAAAwC,OAAAxC,QAAAyR,KAAAzR,QAAA0R,OAAAA,MAAA1R,EAAA,EAAA,GAAAuR,MAVMG;AADT,QAAAqC,eAAuCxC;AAatCK,MAAAA;AAAA5R,YAAAqd,gBAGCzL,MAAAjO,CAAA,UAAA;AAAA,QACOyP,kBAAiBtS,SAAA;AAElB6C,UAAAA,MAAKC,QAAS,aAAW;AAC3BD,cAAKwF,eAAgB;AAErB,cAAAiW,SAAerB,qBACbS,SAAQ1d,SACRuc,cACAjK,kBAAiBtS,OACnB;AAEIse,mBACFpB,kBAAkBoB,MAAM,GACxBf,kBAAkBe,MAAM;AAAC;AAAA,MAAA;AAMzBzb,UAAAA,MAAKC,QAAS,WAAS;AACzBD,cAAKwF,eAAgB;AAErB,cAAAkW,SAAejC,qBACboB,SAAQ1d,SACRuc,cACAjK,kBAAiBtS,OACnB;AAEIue,mBACFrB,kBAAkBqB,MAAM,GACxBhB,kBAAkBgB,MAAM;AAAC;AAAA,MAAA;AAMzB1b,UAAAA,MAAKC,QAAS,aAAW;AAC3BD,cAAKwF,eAAgB;AAErB,cAAAoU,UAAgBnK,kBAAiBtS,QAAA7C,aAAsB,eAAe;AAAC,YAAA,CAElEsf;AAAO;AAEZ+B,cAAAA,cAAkBd,SAAQ1d,QAASyc,OAAO;AAAC,YAAA,CAEtC0B;AAAS;AAAA,YAEVA,YAAS1W;AACX0T,mBAAQsD,CAAA,QAAA;AACNC,kBAAAA,cAAkBd,IAAEnB,OAAO;AAAC,mBAEvB0B,cAAmB;AAAA,cAAA,GAEbP;AAAAA,cAAC,CAAGnB,OAAO,GAAA;AAAA,gBAAA,GAAO0B;AAAAA,gBAAS1W,UAAA;AAAA,cAAA;AAAA,YAAA,IAFfmW;AAAAA,UAAAA,CAGxB;AAAA,aAAC;AAEFe,gBAAAA,WAAiBlC,QAAOE,MAAO,GAAG;AAElCgC,mBAAQ/B,IAAK;AAEbgC,gBAAAA,YAAkBD,SAAQ3B,KAAM,GAAG,GACnC6B,cAAoBD,aAAalB,SAAQ1d,QAAS4e,SAAS;AAEvDC,0BACFA,YAAWjiB,QAAAkB,MACXyf,GAAAA,kBAAkBsB,YAAWjiB,OAAQ;AAAA,QAAA;AAAC;AAAA,MAAA;AAOxCiG,UAAAA,MAAKC,QAAS,cAAY;AAC5BD,cAAKwF,eAAgB;AAErB,cAAAyW,aAAmBxM,kBAAiBtS,QAAA7C,aAAsB,eAAe;AAAC,YAAA,CAErE2hB;AAAU;AAEVpB,iBAAQ1d,QAAS8e,UAAU,GAAArX,YAC9B0T,SAAQ4D,CAAA,QAAA;AACNC,gBAAAA,cAAkBpB,IAAEkB,UAAU;AAAC,iBAE1BX,cAAmB;AAAA,YAAA,GAEbP;AAAAA,YAAC,CAAGkB,UAAU,GAAA;AAAA,cAAA,GAAOX;AAAAA,cAAS1W,UAAA;AAAA,YAAA;AAAA,UAAA,IAFlBmW;AAAAA,QAAAA,CAGxB;AAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAKP1e,QAAAqd,cAAArd,QAAA4R,OAAAA,MAAA5R,EAAA,EAAA;AA7FH,QAAA+D,gBAAsB6N;AA+FrBC,MAAAA;AAAA7R,YAAA4F,WAGCiM,MAAAlB,CAAA,YAAA;AACE0N,sBAAkB1a,QAAKpC,MAAO,GAG9BqE,UAAUjC,OAAK;AAAA,EAAA,GAChB3D,QAAA4F,SAAA5F,QAAA6R,OAAAA,MAAA7R,EAAA,EAAA;AANH,QAAAsT,cAAoBzB;AAQnBC,MAAAA;AAAA9R,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KAES0P,MAAAA,MAAA;AAAA,QACH7P,CAAAA,IAAGnB;AAAA;AACR,UAAAif,gBAAsBvgB,MAAAwgB,KACpB/d,IAAGnB,QAAAmf,iBAA0B,sBAAsB,CACrD;AAEA1B,oBAAgBwB,aAAa;AAAA,EAAA,GAC9B/f,QAAA8R,OAAAA,MAAA9R,EAAA,EAAA;AAAAwW,MAAAA;AAAAxW,YAAAmD,YAAEqT,OAACrT,QAAQ,GAACnD,QAAAmD,UAAAnD,QAAAwW,OAAAA,MAAAxW,EAAA,EAAA,GAPbkB,MAAAA,UAAU4Q,KAOP0E,GAAU;AAQF,QAAAE,MAAAtK,OAAOG;AAAKoK,MAAAA;AAAA3W,IAAAmD,EAAAA,MAAAA,YAAAnD,EAAA,EAAA,MAAAsT,eAAAtT,EAAA+D,EAAAA,MAAAA,iBAAA/D,EAAA,EAAA,MAAA+G,aAAA/G,UAAA0W,OAJnBC,qCAACvL,eACI,OAAA,EAAA,IAAA,MACK,WAAA,QACJrE,GAAAA,WACC,KAAA2P,KACIpD,SAAU,aACRvP,0BACN9B,KACA,MAAA,iBAGP,CAAA,GAAQjC,QAAAmD,UAAAnD,QAAAsT,aAAAtT,QAAA+D,eAAA/D,QAAA+G,WAAA/G,QAAA0W,KAAA1W,QAAA2W,OAAAA,MAAA3W,EAAA,EAAA;AAAA4W,MAAAA;AAAA,SAAA5W,EAAA+T,EAAAA,MAAAA,gBAAA/T,UAAA2W,OAZVC,MAAA3T,2BAAAA,IAAA,YAAA,UAAA,EAA6B8Q,OAAAA,cAC3B4C,UAAAA,IAYF,CAAA,GAAuB3W,QAAA+T,cAAA/T,QAAA2W,KAAA3W,QAAA4W,OAAAA,MAAA5W,EAAA,EAAA,GAbvB4W;AAauB,CAE1B,CACH;AACAuH,KAAKrS,cAAc;AC3OZ,SAAAoU,UAAA;AACLC,QAAAA,OAAa3R,iBAAA0P,WAAsB;AAAC,MAAA,CAE/BiC;AAAIjD,UAAAA,IAAAA,MACS,6BAA6B;AAGxCiD,SAAAA;AAAI;ACLAC,MAAAA,YAAYhC,MAAAA,KAAK,SAAAvb,OAAA;AAAA7C,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAAkD,UAAA4D,WAAAjH;AAAAE,WAAA6C,SAG5B;AAAA,IAAAM;AAAAA,IAAAoF,UAAAzI;AAAAA,IAAA,GAAAiH;AAAAA,EAAmDlE,IAAAA,OAAK7C,OAAA6C,OAAA7C,OAAAmD,UAAAnD,OAAA+G,WAAA/G,OAAAF,OAAAqD,WAAAnD,EAAA,CAAA,GAAA+G,YAAA/G,EAAA,CAAA,GAAAF,KAAAE,EAAA,CAAA;AAAvCuI,QAAAA,WAAAzI,OAAgBI,cAAhBJ,IACjBqgB,OAAaD,QAAAA,GAOD5f,MAACiI;AAAQ5H,MAAAA;AAAA,SAAAX,EAAAmD,CAAAA,MAAAA,YAAAnD,SAAA+G,aAAA/G,EAAA,CAAA,MAAAM,MAAAN,EAAAmgB,CAAAA,MAAAA,KAAA5T,SAJnB5L,KAACsC,2BAAA,IAAAmI,eAAA,OAAA,EACI,IAAA,MACK,WAAA,aACJrE,GAAAA,WACI,QAAAzG,IACG,WAAA6f,KAAI5T,OACV,MAAA,SACE,OAAA4T,KAAI5T,iBAGb,GAAQvM,OAAAmD,UAAAnD,OAAA+G,WAAA/G,OAAAM,IAAAN,EAAA,CAAA,IAAAmgB,KAAA5T,OAAAvM,OAAAW,MAAAA,KAAAX,EAAA,CAAA,GAVRW;AAUQ,CAEX,GCgBY0f,WAAWjC,MAAAA,KAAK,SAC3Bvb,OACc;AACR,QAAA;AAAA,IACJM;AAAAA,IACA8I;AAAAA,IACA1D,UAAU+X,eAAe;AAAA,IACzBjb,WAAW;AAAA,IACXlH;AAAAA,IACAmH,MAAMib;AAAAA,IACNld,IAAImd;AAAAA,IACJC,SAAS;AAAA,IACTC;AAAAA,IACAjW;AAAAA,IACAvE,UAAU;AAAA,IACVI,SAAS;AAAA,IACT/C,WAAW;AAAA,IACXgJ,QAAQ;AAAA,IACRoU;AAAAA,IACAC;AAAAA,IACA,GAAG7Z;AAAAA,EACDlE,IAAAA,OACEge,UAAUngB,MAAAA,OAA8B,IAAI,GAC5CogB,cAAcpgB,MAAAA,OAA8B,IAAI,GAChDyf,OAAOD,QAAAA,GACP;AAAA,IAAC5B;AAAAA,IAAMO;AAAAA,IAAcK;AAAAA,IAAab;AAAAA,EAAiB,IAAI8B,MACvDY,MAAMC,MAAM,MAAA,GACZ3d,KAAKmd,UAAUO,KACftB,WAAWxX,MAAAA,QAAQ,MAAMqW,KAAK7V,OAAO,CAACpF,MAAM,EAAE,CAAC,GAAG,CAACA,IAAIib,IAAI,CAAC,GAC5Df,UAAUkC,SAAS3B,KAAK,GAAG,GAC3BmB,YAAYkB,KAAK3d,MAAM+a,OAAO,GAC9BpZ,UAAUgc,KAAKrX,mBAAmB+X,QAAQ/f,SAC1CyH,WAAW0W,WAAW1W,aAAarI,SAAYogB,eAAerB,WAAW1W,YAAY,IACrFvK,WAAWmiB,KAAKrX,kBAAkBqX,KAAKrX,mBAAmB+X,QAAQ/f,UAAU,IAAI,IAChFiT,eAAe9L,MAAAA,QACnB,OAAO;AAAA,IAAC,GAAGkY;AAAAA,IAAMhB,OAAOgB,KAAKhB,QAAQ;AAAA,IAAGb,MAAMmB;AAAAA,EAAAA,IAC9C,CAACA,UAAUU,IAAI,CACjB,GAEMzc,cAAcyD,MAAAA,YACjBxD,CAAsC,UAAA;AACjC8G,eAASA,QAAQ9G,KAAK;AAE1B,UAAMpC,SAASoC,MAAMpC;AAGnBA,sBAAkBwH,gBACjBxH,OAAOtD,aAAa,SAAS,MAAM,cAClCsD,OAAO0f,QAAQ,2BAA2B,OAE5Ctd,MAAM6M,gBAAAA,GACN0O,YAAY3B,SAAS,CAAChV,QAAQ,GAC9B8V,kBAAkBwC,QAAQ/f,OAAO;AAAA,EAErC,GACA,CAACyH,UAAUgV,SAAS9S,SAASyU,aAAab,iBAAiB,CAC7D,GAEMta,gBAAgBoD,kBACnBxD,CAAsC,YAAA;AACjCQ,eAAWR,QAAMC,QAAQ,YAChBkd,YAAYhgB,WAAW+f,QAAQ/f,UAEtCogB,MAAM;AAAA,EAAA,GAGd,CAAC/c,OAAO,CACV;AAEAjD,QAAAA,UAAU,MAAM;AACd,QAAK2f,QAAQ/f;AAEN+d,aAAAA,aAAagC,QAAQ/f,SAAS2e,SAAS3B,KAAK,GAAG,GAAGvV,UAAUhF,QAAQ;AAAA,KAC1E,CAACgF,UAAUkX,UAAUZ,cAActb,QAAQ,CAAC;AAE/C,QAAM4H,WACJU,2BAAAA,KAACiC,eAAK,MAAA,EAAA,KAAKvB,OAAO,SAChB,UAAA;AAAA,IAAAV,gCAAClB,eAAAA,OACC,OAAO;AAAA,MACLwW,YAAYZ,iBAAiBpd,WAAW,YAAY;AAAA,MACpDie,eAAe;AAAA,IAGhBb,GAAAA,UAAAA;AAAAA,MACC,iBAAAtd,2BAAAA,IAACoE,eAAAA,QAAK,OAAc,MAAMhC,UAAU,QAClC,UAAApC,2BAAA,IAAC,iBAAa,EAChB,CAAA;AAAA,MAED,CAACsd,iBACAtd,2BAAA,IAACoE,qBAAK,EAAA,OAAc,MAAMhC,UAAU,QAClC,UAACpC,2BAAAA,IAAAoe,MAAA,sBAAA,EAAqB,OAAO;AAAA,QAACC,WAAW/Y,WAAW,kBAAkBrI;AAAAA,SAAW,EACnF,CAAA;AAAA,IAAA,GAEJ;AAAA,IACC+C,2BAAA,IAAA0H,eAAA,KAAA,EAAI,MAAM,GACT,UAAC1H,2BAAA,IAAAoE,qBAAA,EAAK,OAAc,MAAMhC,UAAU,cAAa,YAAW,QACzDsb,gBACH,EACF,CAAA;AAAA,EAAA,GACF;AAGF,SAAIxiB,OAEA0N,2BAAA,KAAClB,eACC,KAAA,EAAA,iBAAepH,WAAW,KAAKrD,QAC/B,gBAAcmD,IACd,iBAAeka,SACf,WAAQ,eACJxW,WACJ,IAAG,MACH,WAAWgH,IAAAA,kBAAkB9B,WAAWsV,IAAAA,SAAU,CAAA,GAClD,SAAS7d,aACT,KAAKmd,SACL,MAAK,QAEL,UAAA;AAAA,IAAA5d,+BAACue,eAAAA,cACC,iBAAejZ,UACf,IAAIkY,QACJ,gBAAcld,WAAW,KAAKrD,QAC9B,WAAQ,iBACR,MACA,QACA,KAAK4gB,aACL,MAAK,YACL,UACA,OAAO;AAAA,MACLW,aAAa,yBAAyBtB,KAAKhB,KAAK;AAAA,IAAA,GAGjDhU,UACHA,UAAA;AAAA,IAEClI,2BAAA,IAAA,YAAY,UAAZ,EAAqB,OAAO8Q,cAC1B5Q,UAAY,YAAAF,2BAAAA,IAAC,WAAU,EAAA,QAAQ,CAACsF,UAAWpF,SAAS,CAAA,EACvD,CAAA;AAAA,EAAA,EACF,CAAA,IAKF0I,2BAAAA,KAAClB,eAAAA,KACC,EAAA,iBAAepH,WAAW,KAAKrD,QAC/B,WAAQ,YACR,gBAAcmD,IACd,iBAAeka,SACf,GAAIxW,WACJ,iBAAewB,UACf,WAAWwF,IAAAA,kBAAkB9B,WAAWsV,IAAAA,SAAU,CAAA,GAClD,SAAS7d,aACT,WAAWK,eACX,KAAK8c,SACL,MAAK,YACL,UAEA,UAAA;AAAA,IAAC5d,2BAAAA,IAAAue,eAAAA,YAAA,EACC,IAAG,UACH,gBAAcje,WAAW,KAAKrD,QAC9B,WAAQ,iBACR,QACA,OAAO;AAAA,MACLuhB,aAAa,yBAAyBtB,KAAKhB,KAAK;AAAA,IAAA,GAGjDhU,UACHA,UAAA;AAAA,IAEAlI,2BAAAA,IAAC,YAAY,UAAZ,EAAqB,OAAO8Q,cAC1B5Q,UAAAA,YAAaF,2BAAA,IAAA,WAAA,EAAU,UAAqBE,SAAS,CAAA,EACxD,CAAA;AAAA,EAAA,GACF;AAEJ,CAAC;AAEDkd,SAASvU,cAAc;ACtNhB,SAAA4V,UAAA7e,OAAA;AAAA7C,QAAAA,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAA0hB,OAAAC;AAAAA,EAAAA,IAA2B/e;AAAK/C,MAAAA;AAAAE,WAAA4hB,aAElB9hB,KAAA8hB,aAAaC,uBAAe7hB,OAAA4hB,WAAA5hB,OAAAF,MAAAA,KAAAE,EAAA,CAAA;AAA1C,QAAA2hB,UAAc7hB;AAA4BQ,MAAAA;AAAAN,IAAA,CAAA,MAAA2hB,QAAAG,YAKnCxhB,KAAAyhB,IAAAA,eAAeJ,QAAKG,QAAS,GAAC9hB,EAAA,CAAA,IAAA2hB,QAAAG,UAAA9hB,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAAW,MAAAA;AAAAX,WAAAM,MADjCK,KAEQsC,2BAAAA,IAAA,SAAA,EAFI,MAAA,kBAA4B,YAAA,WACrC3C,cACH,GAAQN,OAAAM,IAAAN,OAAAW,MAAAA,KAAAX,EAAA,CAAA;AAAAY,MAAAA;AAAAZ,WAAA2hB,WAEL/gB,KAAAohB,IAAAA,aAAA;AAAA,IAAAC,IAAkBN;AAAAA,EAAmB,CAAA,GAAC3hB,OAAA2hB,SAAA3hB,OAAAY,MAAAA,KAAAZ,EAAA,CAAA;AAAAmB,MAAAA;AAAAnB,WAAAY,MADzCO,KAEQ8B,2BAAAA,IAAA,SAAA,EAFI,MAAA,gBAA0B,YAAA,SACnCrC,cACH,GAAQZ,OAAAY,IAAAZ,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAAoB,MAAAA;AAAApB,IAAA,EAAA,MAAAmC,OAAAC,IAAA,2BAAA,KACRhB,KAEQ6B,2BAAA,IAAA,SAFI,EAAA,MAAA,iBAA2B,YAAA,UACpCif,UAAcA,kBAAA,EAAA,CACjB,GAAQliB,QAAAoB,MAAAA,KAAApB,EAAA,EAAA;AAAA0Q,MAAAA;AAAA1Q,SAAAA,EAAAW,EAAAA,MAAAA,MAAAX,UAAAmB,MATVuP,KACE/P,2BAAAA,KAAAA,WAAAA,UAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAGAQ;AAAAA,IAGAC;AAAAA,EAAAA,EAEQ,CAAA,GACPpB,QAAAW,IAAAX,QAAAmB,IAAAnB,QAAA0Q,MAAAA,KAAA1Q,EAAA,EAAA,GAVH0Q;AAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}