@sanity/ui 3.0.0-static.11 → 3.0.0-static.13
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.
- package/dist/_chunks-cjs/_visual-editing.js +1293 -1215
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-cjs/buildCommand.js +28 -10
- package/dist/_chunks-cjs/buildCommand.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +1284 -1202
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/_visual-editing.d.mts +528 -358
- package/dist/_visual-editing.d.ts +528 -358
- package/dist/cli.js +1 -1
- package/dist/css.d.mts +143 -73
- package/dist/css.d.ts +143 -73
- package/dist/css.js +329 -472
- package/dist/css.js.map +1 -1
- package/dist/css.mjs +330 -473
- package/dist/css.mjs.map +1 -1
- package/dist/index.d.mts +1362 -869
- package/dist/index.d.ts +1362 -869
- package/dist/index.js +383 -308
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +387 -312
- package/dist/index.mjs.map +1 -1
- package/dist/sanity-palette.css +105 -1
- package/dist/sanity-palette.min.css +1 -0
- package/dist/sanity-theme.css +4571 -1
- package/dist/sanity-theme.min.css +1 -0
- package/dist/system.css +22053 -21946
- package/dist/system.min.css +1 -0
- package/dist/theme.d.mts +51 -106
- package/dist/theme.d.ts +51 -106
- package/dist/theme.js +9 -9
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +9 -9
- package/dist/theme.mjs.map +1 -1
- package/package.json +10 -5
- package/src/cli/buildCommand.ts +46 -19
- package/src/css/_comp.ts +2 -2
- package/src/css/{compile/compileStyle.ts → _compileStyle.ts} +7 -7
- package/src/css/{system.style.ts → _system.style.ts} +3 -2
- package/src/css/aspects/display/display.ts +1 -0
- package/src/css/aspects/display/types.ts +2 -3
- package/src/css/aspects/flex/types.ts +4 -12
- package/src/css/aspects/flexItem/types.ts +1 -3
- package/src/css/aspects/font/types.ts +1 -3
- package/src/css/aspects/grid/grid.ts +1 -0
- package/src/css/aspects/grid/types.ts +5 -9
- package/src/css/aspects/gridItem/gridItem.ts +1 -1
- package/src/css/aspects/gridItem/types.ts +7 -18
- package/src/css/aspects/height/height.ts +3 -4
- package/src/css/aspects/inset/inset.ts +1 -0
- package/src/css/aspects/margin/margin.ts +1 -0
- package/src/css/aspects/margin/types.ts +1 -0
- package/src/css/aspects/maxWidth/maxWidth.ts +1 -0
- package/src/css/aspects/maxWidth/types.ts +1 -0
- package/src/css/aspects/minWidth/minWidth.ts +1 -0
- package/src/css/aspects/minWidth/types.ts +2 -0
- package/src/css/aspects/overflow/overflow.ts +1 -0
- package/src/css/aspects/padding/padding.ts +1 -0
- package/src/css/aspects/pointerEvents/pointerEvents.ts +1 -0
- package/src/css/aspects/position/position.ts +1 -0
- package/src/css/aspects/shadow/shadow.ts +1 -0
- package/src/css/aspects/textOverflow/textOverflow.ts +1 -0
- package/src/css/aspects/textOverflow/types.ts +1 -0
- package/src/css/aspects/width/types.ts +2 -0
- package/src/css/aspects/width/width.ts +1 -0
- package/src/css/{compile/compilePalette.ts → compilePalette.ts} +14 -10
- package/src/css/compileSystem.ts +7 -0
- package/src/css/{compile/compileTheme.ts → compileTheme.ts} +1 -0
- package/src/css/{compile/compileTheme_v3.ts → compileTheme_v3.ts} +123 -104
- package/src/css/components/breadcrumbs/breadcrumbs.ts +1 -0
- package/src/css/components/dialog/dialog.ts +7 -0
- package/src/css/components/menu/menu.ts +2 -0
- package/src/css/components/skeleton/skeleton.ts +4 -0
- package/src/css/components/skeleton/types.ts +4 -0
- package/src/css/components/toast/toast.ts +5 -0
- package/src/css/components/tree/tree.ts +1 -0
- package/src/css/composeClassNames.ts +4 -2
- package/src/css/constants.ts +2 -0
- package/src/css/index.ts +3 -3
- package/src/css/primitives/_arrow/_arrow.ts +3 -0
- package/src/css/primitives/_input/input.ts +2 -0
- package/src/css/primitives/_selectable/_selectable.style.ts +1 -2
- package/src/css/primitives/_selectable/selectable.ts +1 -2
- package/src/css/primitives/avatar/avatar.style.ts +5 -8
- package/src/css/primitives/avatar/avatar.ts +6 -0
- package/src/css/primitives/avatar/types.ts +1 -0
- package/src/css/primitives/box/types.ts +1 -3
- package/src/css/primitives/button/button.ts +4 -21
- package/src/css/primitives/button/index.ts +1 -0
- package/src/css/primitives/button/types.ts +18 -0
- package/src/css/primitives/card/card.style.ts +3 -6
- package/src/css/primitives/card/card.ts +2 -2
- package/src/css/primitives/card/types.ts +2 -2
- package/src/css/primitives/checkbox/checkbox.ts +2 -0
- package/src/css/primitives/container/container.ts +1 -0
- package/src/css/primitives/container/types.ts +1 -0
- package/src/css/primitives/kbd/kbd.ts +1 -0
- package/src/css/primitives/label/types.ts +7 -2
- package/src/css/primitives/popover/popover.ts +2 -0
- package/src/css/primitives/radio/radio.ts +1 -0
- package/src/css/primitives/select/select.ts +2 -0
- package/src/css/primitives/spinner/spinner.ts +2 -0
- package/src/css/primitives/switch/switch.ts +5 -0
- package/src/css/primitives/text/types.ts +4 -0
- package/src/css/primitives/textArea/textArea.ts +1 -0
- package/src/css/primitives/textInput/textInput.ts +1 -0
- package/src/css/primitives/tooltip/tooltip.ts +2 -0
- package/src/css/scopeClassName.ts +1 -0
- package/src/css/types.ts +9 -12
- package/src/css/util.ts +5 -0
- package/src/css/utils/srOnly/srOnly.ts +3 -1
- package/src/css/varNames.ts +131 -141
- package/src/css/vars.ts +1 -6
- package/src/theme/palette/constants.ts +2 -0
- package/src/theme/palette/types.ts +3 -0
- package/src/theme/types.ts +2 -6
- package/src/theme/v0/focusRing.ts +1 -3
- package/src/theme/v0/font.ts +6 -18
- package/src/theme/v0/layer.ts +1 -3
- package/src/theme/v0/shadow.ts +2 -6
- package/src/theme/v2/avatar.ts +1 -3
- package/src/theme/v2/color/_system.ts +1 -3
- package/src/theme/v2/color/avatar.ts +2 -6
- package/src/theme/v2/color/badge.ts +2 -6
- package/src/theme/v2/color/button.ts +3 -9
- package/src/theme/v2/color/color.ts +3 -9
- package/src/theme/v2/color/input.ts +3 -9
- package/src/theme/v2/color/kbd.ts +1 -3
- package/src/theme/v2/color/selectable.ts +2 -6
- package/src/theme/v2/color/state.ts +1 -3
- package/src/theme/v2/color/syntax.ts +1 -3
- package/src/theme/v2/input.ts +1 -3
- package/src/theme/v2/theme.ts +2 -6
- package/src/theme/v3/buildTheme_v3.ts +1 -0
- package/src/theme/v3/color/color.ts +6 -4
- package/src/theme/v3/color/renderColor.ts +4 -1
- package/src/theme/v3/defaultTokens.ts +1 -0
- package/src/theme/v3/resolveTokens.ts +9 -9
- package/src/ui/RootClassNames.tsx +3 -0
- package/src/ui/StyleTags.tsx +3 -1
- package/src/ui/_compat/theme/themeColorProvider.tsx +2 -6
- package/src/ui/_compat/theme/themeProvider.tsx +2 -6
- package/src/ui/_compat/theme/types.ts +1 -3
- package/src/ui/_compat/theme/useRootTheme.ts +1 -3
- package/src/ui/_compat/theme/useTheme.ts +2 -6
- package/src/ui/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
- package/src/ui/components/autocomplete/autocomplete.tsx +86 -114
- package/src/ui/components/autocomplete/autocompleteOption.tsx +2 -0
- package/src/ui/components/autocomplete/types.ts +3 -8
- package/src/ui/components/breadcrumbs/breadcrumbs.tsx +27 -21
- package/src/ui/components/dialog/dialog.tsx +89 -291
- package/src/ui/components/dialog/dialogCard.tsx +183 -0
- package/src/ui/components/dialog/isTargetWithinScope.ts +14 -0
- package/src/ui/components/hotkeys/hotkeys.tsx +33 -15
- package/src/ui/components/menu/__workshop__/asComponent.tsx +6 -6
- package/src/ui/components/menu/menu.tsx +27 -33
- package/src/ui/components/menu/menuButton.tsx +10 -14
- package/src/ui/components/menu/menuDivider.tsx +25 -13
- package/src/ui/components/menu/menuGroup.tsx +34 -26
- package/src/ui/components/menu/menuItem.tsx +51 -40
- package/src/ui/components/skeleton/codeSkeleton.tsx +53 -0
- package/src/ui/components/skeleton/headingSkeleton.tsx +52 -0
- package/src/ui/components/skeleton/index.ts +3 -0
- package/src/ui/components/skeleton/labelSkeleton.tsx +51 -0
- package/src/ui/components/skeleton/skeleton.tsx +39 -16
- package/src/ui/components/skeleton/textSkeleton.tsx +31 -110
- package/src/ui/components/tab/tab.tsx +23 -19
- package/src/ui/components/tab/tabList.tsx +34 -33
- package/src/ui/components/tab/tabPanel.tsx +25 -19
- package/src/ui/components/toast/toast.tsx +21 -16
- package/src/ui/components/toast/toastLayer.tsx +28 -10
- package/src/ui/components/toast/toastProvider.tsx +2 -6
- package/src/ui/components/toast/types.ts +2 -6
- package/src/ui/components/toast/useToast.ts +1 -3
- package/src/ui/components/tree/tree.tsx +194 -187
- package/src/ui/components/tree/treeGroup.tsx +25 -5
- package/src/ui/components/tree/treeItem.tsx +35 -23
- package/src/ui/hooks/useClickOutside.ts +2 -6
- package/src/ui/hooks/useClickOutsideEvent.ts +3 -9
- package/src/ui/primitives/_selectable/selectable.tsx +33 -20
- package/src/ui/primitives/avatar/avatar.tsx +28 -31
- package/src/ui/primitives/avatar/avatarCounter.tsx +33 -25
- package/src/ui/primitives/avatar/avatarStack.tsx +31 -24
- package/src/ui/primitives/avatar/types.ts +2 -0
- package/src/ui/primitives/badge/__workshop__/props.tsx +1 -9
- package/src/ui/primitives/badge/__workshop__/tones.tsx +1 -6
- package/src/ui/primitives/badge/badge.tsx +33 -32
- package/src/ui/primitives/badge/types.ts +2 -1
- package/src/ui/primitives/box/box.tsx +59 -29
- package/src/ui/primitives/button/__workshop__/sanityUploadButton.tsx +3 -3
- package/src/ui/primitives/button/__workshop__/uploadButton.tsx +2 -1
- package/src/ui/primitives/button/button.test.tsx +1 -15
- package/src/ui/primitives/button/button.tsx +64 -70
- package/src/ui/primitives/card/__workshop__/asComponent.tsx +3 -3
- package/src/ui/primitives/card/card.tsx +22 -22
- package/src/ui/primitives/card/cardProvider.tsx +2 -0
- package/src/ui/primitives/checkbox/checkbox.tsx +26 -15
- package/src/ui/primitives/code/code.tsx +24 -22
- package/src/ui/primitives/container/container.tsx +26 -15
- package/src/ui/primitives/flex/flex.tsx +21 -19
- package/src/ui/primitives/grid/grid.tsx +21 -16
- package/src/ui/primitives/heading/heading.tsx +42 -19
- package/src/ui/primitives/inline/inline.tsx +26 -23
- package/src/ui/primitives/kbd/kbd.tsx +25 -23
- package/src/ui/primitives/label/label.tsx +41 -26
- package/src/ui/primitives/popover/popover.tsx +281 -277
- package/src/ui/primitives/popover/popoverCard.tsx +119 -118
- package/src/ui/primitives/radio/radio.tsx +30 -14
- package/src/ui/primitives/select/select.tsx +24 -16
- package/src/ui/primitives/spinner/animatedSpinnerIcon.tsx +4 -2
- package/src/ui/primitives/spinner/spinner.tsx +24 -12
- package/src/ui/primitives/stack/stack.tsx +27 -18
- package/src/ui/primitives/switch/switch.tsx +31 -14
- package/src/ui/primitives/text/text.tsx +42 -24
- package/src/ui/primitives/textArea/textArea.tsx +33 -18
- package/src/ui/primitives/textInput/textInput.tsx +28 -40
- package/src/ui/primitives/tooltip/constants.ts +1 -1
- package/src/ui/primitives/tooltip/tooltip.tsx +76 -59
- package/src/ui/primitives/tooltip/tooltipCard.tsx +89 -82
- package/src/ui/primitives/types.ts +1 -3
- package/src/ui/types/avatar.ts +3 -6
- package/src/ui/types/badge.ts +1 -3
- package/src/ui/types/button.ts +1 -3
- package/src/ui/types/card.ts +1 -3
- package/src/ui/types/dialog.ts +1 -3
- package/src/ui/types/props.ts +20 -10
- package/src/ui/utils/arrow/arrow.tsx +40 -14
- package/src/ui/utils/boundaryElement/boundaryElementProvider.tsx +2 -6
- package/src/ui/utils/boundaryElement/types.ts +1 -3
- package/src/ui/utils/boundaryElement/useBoundaryElement.ts +1 -3
- package/src/ui/utils/elementQuery/elementQuery.tsx +36 -14
- package/src/ui/utils/errorBoundary.tsx +2 -0
- package/src/ui/utils/index.ts +0 -1
- package/src/ui/utils/layer/layer.tsx +23 -93
- package/src/ui/utils/layer/layerCard.tsx +92 -0
- package/src/ui/utils/layer/layerProvider.tsx +2 -6
- package/src/ui/utils/layer/useLayer.ts +1 -3
- package/src/ui/utils/portal/portal.ts +2 -6
- package/src/ui/utils/portal/portalProvider.tsx +2 -6
- package/src/ui/utils/portal/types.ts +1 -3
- package/src/ui/utils/portal/usePortal.ts +1 -3
- package/src/ui/utils/srOnly/srOnly.tsx +25 -20
- package/src/ui/utils/virtualList/virtualList.tsx +36 -24
- package/src/css/compile/compileRule.ts +0 -97
- package/src/css/compile/compileRules.test.ts +0 -36
- package/src/css/compile/compileRules.ts +0 -43
- package/src/css/compile/compileSystem.ts +0 -7
- package/src/css/compile/types.ts +0 -6
- package/src/css/primitives/_selectable/_contants.ts +0 -11
- package/src/css/primitives/card/_constants.ts +0 -13
- package/src/ui/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
- package/src/ui/utils/conditionalWrapper/index.ts +0 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/ui/_compat/helpers.ts","../src/ui/_compat/styles/_responsive.ts","../src/ui/helpers/animation.ts","../src/ui/helpers/focus.ts","../src/ui/hooks/useClickOutside.ts","../src/ui/hooks/useElementRect/useElementRect.ts","../src/ui/hooks/useForwardedRef.ts","../src/ui/utils/errorBoundary.tsx","../src/ui/components/autocomplete/autocompleteOption.tsx","../src/ui/components/autocomplete/autocompleteReducer.ts","../src/ui/components/autocomplete/constants.ts","../src/ui/components/autocomplete/autocomplete.tsx","../src/ui/components/breadcrumbs/breadcrumbs.tsx","../src/ui/components/dialog/dialogContext.ts","../src/ui/components/dialog/useDialog.ts","../src/ui/components/dialog/dialog.tsx","../src/ui/components/dialog/dialogProvider.tsx","../src/ui/components/menu/menuButton.tsx","../src/ui/components/skeleton/skeleton.tsx","../src/ui/components/skeleton/textSkeleton.tsx","../src/ui/components/tab/tabPanel.tsx","../src/ui/components/toast/toast.tsx","../src/ui/hooks/useMounted.ts","../src/ui/components/toast/toastContext.ts","../src/ui/components/toast/toastLayer.tsx","../src/ui/components/toast/toastState.ts","../src/ui/components/toast/toastProvider.tsx","../src/ui/components/toast/useToast.ts","../src/ui/components/tree/helpers.ts","../src/ui/components/tree/treeContext.ts","../src/ui/components/tree/tree.tsx","../src/ui/components/tree/useTree.ts","../src/ui/components/tree/treeGroup.tsx","../src/ui/components/tree/treeItem.tsx","../src/ui/RootClassNames.tsx","../src/ui/StyleTags.tsx"],"sourcesContent":["import {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\nexport {\n /** @deprecated use `px` from `@sanity/ui/css` */\n px,\n /** @deprecated use `rem` from `@sanity/ui/css` */\n rem,\n} from '@sanity/ui/css'\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","import {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n * @deprecated do not use\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {ForwardedRef, MutableRefObject, useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: ForwardedRef<T>): MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {Component, ErrorInfo, PropsWithChildren, ReactNode} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {KeyboardEvent, ReactElement, ReactNode, useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\n// import {Selectable} from '../../primitives/_selectable'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport {Props, Radius} from '../../types'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n disabled?: boolean\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: ResponsiveProp<Space>\n // padding?: number | number[]\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n readOnly?: boolean\n ref?: ForwardedRef<HTMLInputElement>\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: ForwardedRef<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: Omit<\n Props<AutocompleteProps<Option>, 'div'>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'inputMode'\n | 'role'\n | 'spellCheck'\n | 'type'\n >,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return (v as Space) - 2\n }) as Space[],\n [padding],\n )\n\n const openButtonPadding = useMemo(\n () => padding.map((v) => Math.max((v as Space) - 1, 0)) as Space[],\n [padding],\n )\n\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n display=\"block\"\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={3}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n})\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: Omit<\n Props<AutocompleteProps<Option>, 'input'>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'inputMode'\n | 'role'\n | 'spellCheck'\n | 'type'\n >,\n) => ReactElement\n","import {breadcrumbs, composeClassNames, GapStyleProps} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n Children,\n ForwardedRef,\n forwardRef,\n Fragment,\n isValidElement,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Button, ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps extends GapStyleProps {\n expandButton?: Omit<ButtonProps, 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: Props<BreadcrumbsProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...restProps\n } = props\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" space={gapY}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n return (\n <Flex\n as=\"nav\"\n data-ui=\"Breadcrumbs\"\n {...restProps}\n className={composeClassNames(className, breadcrumbs())}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n >\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Flex>\n )\n})\n\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n composeClassNames,\n ContainerStyleProps,\n dialog,\n dialogCardRoot,\n dialogContainer,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayout,\n PaddingStyleProps,\n RadiusStyleProps,\n ResponsiveProp,\n ShadowStyleProps,\n} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {CardTone, DialogPosition, Props, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ContainerStyleProps, PaddingStyleProps, ShadowStyleProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n open?: boolean\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n}\n\ninterface DialogCardProps extends ContainerStyleProps, RadiusStyleProps, ShadowStyleProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n // radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n // shadow: number | number[]\n tone?: CardTone\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp = 4,\n tone,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <Container\n align=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n direction=\"column\"\n display=\"flex\"\n justify=\"center\"\n width={width}\n >\n <Card\n className={dialogCardRoot()}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n tone={tone}\n >\n <Flex className={dialogLayout()} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader()} position=\"relative\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n <Box\n className={dialogContent()}\n flex={1}\n overflow=\"auto\"\n position=\"relative\"\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: Props<DialogProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const context = useDialog()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n // cardShadow = 3,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n shadow: cardShadow,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n tone,\n ...restProps\n } = props\n const positionProp = _positionProp ?? context.position ?? 'fixed'\n const zOffsetProp = _zOffsetProp ?? context.zOffset ?? Z_OFFSETS.dialog\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Layer\n {...restProps}\n aria-labelledby={labelId}\n aria-modal\n className={composeClassNames(className, dialog())}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n tone={tone}\n width={width}\n >\n {children}\n </DialogCard>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n})\n\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ButtonProps, Popover, PopoverProps} from '../../primitives'\nimport {Placement, Props, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: ReactElement<Props<ButtonProps, 'button'>>\n id: string\n menu?: ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLElement>) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: Props<MenuProps, 'div'> = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(() => {\n if (!buttonProp) return null\n\n const buttonProps = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n } satisfies Props<ButtonProps, 'button'> & {ref: ForwardedRef<HTMLButtonElement>}\n\n return cloneElement(buttonProp, buttonProps)\n }, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open])\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {composeClassNames, skeleton, SkeletonStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useState} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends SkeletonStyleProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: Props<SkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {animated = false, className, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Box\n data-ui=\"Skeleton\"\n {...restProps}\n className={composeClassNames(className, skeleton({radius}))}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n ref={ref}\n />\n )\n})\n\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {\n codeSkeleton,\n composeClassNames,\n headingSkeleton,\n labelSkeleton,\n ResponsiveProp,\n textSkeleton,\n} from '@sanity/ui/css'\nimport {FontCodeSize, FontHeadingSize, FontLabelSize, FontTextSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: Props<TextSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"TextSkeleton\"\n {...restProps}\n className={composeClassNames(className, textSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: Props<LabelSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"LabelSkeleton\"\n {...restProps}\n className={composeClassNames(className, labelSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: Props<HeadingSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n {...restProps}\n className={composeClassNames(className, headingSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: Props<CodeSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n // root\n {...restProps}\n className={composeClassNames(className, codeSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: Props<TabPanelProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n RadiusStyleProps,\n toast,\n toastLoadingBar,\n toastLoadingBarMask,\n toastLoadingBarProgress,\n} from '@sanity/ui/css'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {motion, type Variant, type Variants} from 'framer-motion'\nimport {ReactElement, ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ButtonTone, Props} from '../../types'\n\n/**\n * @public\n */\nexport interface ToastProps extends RadiusStyleProps {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: Omit<\n Props<ToastProps, 'div'>,\n 'onDrag' | 'onDragEnd' | 'onDragStart' | 'onAnimationStart'\n >,\n): ReactElement {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration ? {type: 'spring', visualDuration, bounce: 0.25} : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionCard\n as=\"li\"\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionBox className={toastLoadingBar()} variants={content} transition={transition}>\n <Card className={toastLoadingBarMask()} tone={cardTone} radius={radius} />\n <MotionCard\n // const MotionToast = motion.create(Card) // StyledToast\n // const MotionFlex = motion.create(Flex)\n // const MotionText = motion.create(Text)\n // const MotionLoadingBar = motion.create(Box) // LoadingBar\n // const MotionLoadingBarProgress = motion.create(Card)\n\n className={toastLoadingBarProgress()}\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionBox>\n )}\n </MotionCard>\n )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionBox = motion.create(Box)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {GapStyleProps, PaddingStyleProps, toastLayer} from '@sanity/ui/css'\nimport {ReactNode} from 'react'\n\nimport {Grid} from '../../primitives/grid'\nimport {useLayer} from '../../utils'\n\n/**\n * @public\n */\nexport interface ToastLayerProps extends GapStyleProps, PaddingStyleProps {\n children: ReactNode\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as=\"ul\"\n className={toastLayer()}\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </Grid>\n )\n}\n\nToastLayer.displayName = 'ToastLayer'\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {GapStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n memo,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps extends Pick<GapStyleProps, 'gap'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: Props<TreeProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n ): ReactElement {\n const {children, gap, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n gap={gap ?? space}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo, ReactElement} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {composeClassNames, ResponsiveProp, treeItem} from '@sanity/ui/css'\nimport {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n ElementType,\n KeyboardEvent,\n memo,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, CardProps, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props} from '../../types'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps extends CardProps {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: Omit<Props<TreeItemProps, 'div'>, 'as'>,\n): ReactElement {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs = 'a',\n muted,\n onClick,\n padding = 2,\n radius = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLDivElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </Text>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n as=\"li\"\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <Selectable\n aria-expanded={expanded}\n as={linkAs}\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Selectable\n as=\"button\"\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n})\n\nTreeItem.displayName = 'Memo(TreeItem)'\n","import {card, scopeClassName as _} from '@sanity/ui/css'\nimport {useEffect} from 'react'\n\nimport {_raf2} from './helpers'\nimport {useCard} from './primitives'\n\nexport function RootClassNames(props: {element: HTMLElement}) {\n const {element} = props\n const {scheme, tone} = useCard() ?? {}\n\n useEffect(() => {\n const els = document.querySelectorAll(\n [_('button'), _('card'), _('font')].map((n) => `.${n}`).join(', '),\n )\n\n // temporarily disable all transitions when the theme changes\n for (const el of els) {\n if (el instanceof HTMLElement) {\n el.style.transition = 'none'\n }\n }\n\n _raf2(() => {\n document.documentElement.className = card({scheme, tone}) ?? ''\n\n _raf2(() => {\n for (const el of els) {\n if (el instanceof HTMLElement) {\n el.style.transition = ''\n }\n }\n })\n })\n\n return () => {\n document.documentElement.className = ''\n }\n }, [element, scheme, tone])\n\n return null\n}\n","import {compilePalette, compileSystem, compileTheme} from '@sanity/ui/css'\nimport {buildTheme_v3, RootTheme, Theme_v3} from '@sanity/ui/theme'\nimport {ReactNode} from 'react'\n\n/* @beta */\nexport function StyleTags(props: {theme?: Theme_v3}): ReactNode {\n const {theme: themeProp} = props\n\n const theme = themeProp ?? buildTheme_v3()\n\n return (\n <>\n <style href=\"sanity-palette\" precedence=\"palette\">\n {compilePalette()}\n </style>\n <style href=\"sanity-theme\" precedence=\"theme\">\n {compileTheme({v3: theme} as RootTheme)}\n </style>\n <style href=\"sanity-system\" precedence=\"system\">\n {compileSystem()}\n </style>\n </>\n )\n}\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","_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","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","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","ChevronDownIcon","inputValue","input","AnimatedSpinnerIcon","handleListBoxKeyDown","content","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","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","composeClassNames","breadcrumbs","item","itemIndex","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","Dialog","context","_positionProp","_zOffsetProp","cardShadow","onActivate","animate","cardRadius","position","zOffset","_animate","cardRadiusProp","positionProp","zOffsetProp","Z_OFFSETS","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","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","Card","MotionFlex","Flex","MotionText","Text","MotionBox","Box","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","ToastLayer","paddingX","paddingY","toastLayer","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","dismiss","currentState","toast_0","toast_1","Date","now","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","transform","treeItem","paddingLeft","RootClassNames","useCard","_","style","documentElement","card","n","StyleTags","theme","themeProp","buildTheme_v3","compilePalette","compileTheme","v3","compileSystem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/ui/_compat/helpers.ts","../src/ui/_compat/styles/_responsive.ts","../src/ui/helpers/animation.ts","../src/ui/helpers/focus.ts","../src/ui/hooks/useClickOutside.ts","../src/ui/hooks/useElementRect/useElementRect.ts","../src/ui/hooks/useForwardedRef.ts","../src/ui/utils/errorBoundary.tsx","../src/ui/components/autocomplete/autocompleteOption.tsx","../src/ui/components/autocomplete/autocompleteReducer.ts","../src/ui/components/autocomplete/constants.ts","../src/ui/components/autocomplete/autocomplete.tsx","../src/ui/components/breadcrumbs/breadcrumbs.tsx","../src/ui/components/dialog/isTargetWithinScope.ts","../src/ui/components/dialog/dialogCard.tsx","../src/ui/components/dialog/dialogContext.ts","../src/ui/components/dialog/useDialog.ts","../src/ui/components/dialog/dialog.tsx","../src/ui/components/dialog/dialogProvider.tsx","../src/ui/components/menu/menuButton.tsx","../src/ui/components/skeleton/skeleton.tsx","../src/ui/components/skeleton/codeSkeleton.tsx","../src/ui/components/skeleton/headingSkeleton.tsx","../src/ui/components/skeleton/labelSkeleton.tsx","../src/ui/components/skeleton/textSkeleton.tsx","../src/ui/components/tab/tabPanel.tsx","../src/ui/components/toast/toast.tsx","../src/ui/hooks/useMounted.ts","../src/ui/components/toast/toastContext.ts","../src/ui/components/toast/toastLayer.tsx","../src/ui/components/toast/toastState.ts","../src/ui/components/toast/toastProvider.tsx","../src/ui/components/toast/useToast.ts","../src/ui/components/tree/helpers.ts","../src/ui/components/tree/treeContext.ts","../src/ui/components/tree/tree.tsx","../src/ui/components/tree/useTree.ts","../src/ui/components/tree/treeGroup.tsx","../src/ui/components/tree/treeItem.tsx","../src/ui/RootClassNames.tsx","../src/ui/StyleTags.tsx"],"sourcesContent":["import {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\nexport {\n /** @deprecated use `px` from `@sanity/ui/css` */\n px,\n /** @deprecated use `rem` from `@sanity/ui/css` */\n rem,\n} from '@sanity/ui/css'\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","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/** @public */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/** @public */\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 displayName = 'ErrorBoundary'\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n 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\nAutocompleteOption.displayName = 'AutocompleteOption'\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 {Space} from '@sanity/ui/theme'\nimport {\n type ChangeEvent,\n cloneElement,\n type ElementType,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n 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 type PopoverProps,\n Stack,\n Text,\n TextInput,\n TextInputOwnProps,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport type {ComponentType, 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 type {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/** @public */\nexport const DEFAULT_AUTOCOMPLETE_ELEMENT = 'input'\n\n/** @public */\nexport type AutocompleteOwnProps<O extends BaseAutocompleteOption = BaseAutocompleteOption> =\n TextInputOwnProps & {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: O) => boolean\n icon?: ElementType | ReactNode\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?: O[]\n padding?: ResponsiveProp<Space>\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: O) => 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?: O) => string\n suffix?: ReactNode\n value?: string\n }\n\n/** @public */\nexport type AutocompleteElementType = 'input' | ComponentType\n\n/** @public */\nexport type AutocompleteProps<\n E extends AutocompleteElementType = AutocompleteElementType,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n> = Props<AutocompleteOwnProps<O>, E>\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport function Autocomplete<\n E extends AutocompleteElementType = typeof DEFAULT_AUTOCOMPLETE_ELEMENT,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n>(props: AutocompleteProps<E, O>) {\n const {\n as = DEFAULT_AUTOCOMPLETE_ELEMENT,\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 ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...rest\n } = props as AutocompleteProps<typeof DEFAULT_AUTOCOMPLETE_ELEMENT, O>\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | 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 {...rest}\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 as={as}\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={3}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n}\n\nAutocomplete.displayName = 'Autocomplete'\n","import {breadcrumbs, composeClassNames, GapStyleProps} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n Children,\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 {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_BREADCRUMBS_ELEMENT = 'nav'\n\n/** @beta */\nexport type BreadcrumbsOwnProps = GapStyleProps & {\n expandButton?: Omit<ButtonProps<'button'>, 'as' | 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/** @beta */\nexport type BreadcrumbsElementType = 'div' | 'nav' | ComponentType\n\n/** @beta */\nexport type BreadcrumbsProps<E extends BreadcrumbsElementType = BreadcrumbsElementType> = Props<\n BreadcrumbsOwnProps,\n E\n>\n\n/** @beta */\nexport function Breadcrumbs<E extends BreadcrumbsElementType = typeof DEFAULT_BREADCRUMBS_ELEMENT>(\n props: BreadcrumbsProps<E>,\n) {\n const {\n as = DEFAULT_BREADCRUMBS_ELEMENT,\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 ...rest\n } = props as BreadcrumbsProps<typeof DEFAULT_BREADCRUMBS_ELEMENT>\n\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = 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={as}\n data-ui=\"Breadcrumbs\"\n {...rest}\n className={composeClassNames(className, breadcrumbs())}\n gapX={gapX}\n gapY={gapY}\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 = 'Breadcrumbs'\n","import {containsOrEqualsElement} from '../../helpers'\n\nexport function isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n dialogCardRoot,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayout,\n} from '@sanity/ui/css'\nimport {ForwardedRef, ReactNode, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {focusFirstDescendant} from '../../helpers'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Button, Card, CardElementType, CardOwnProps, Flex, Text} from '../../primitives'\nimport {Props} from '../../types'\nimport {useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {isTargetWithinScope} from './isTargetWithinScope'\n\n/** @internal */\nexport const DEFAULT_DIALOG_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type DialogCardOwnProps = CardOwnProps & {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n}\n\n/** @internal */\nexport type DialogCardElementType = CardElementType\n\n/** @internal */\nexport type DialogCardProps<E extends DialogCardElementType = DialogCardElementType> = Props<\n DialogCardOwnProps,\n E\n>\n\n/** @internal */\n\nexport function DialogCard<E extends DialogCardElementType = typeof DEFAULT_DIALOG_CARD_ELEMENT>(\n props: DialogCardProps<E>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n as = DEFAULT_DIALOG_CARD_ELEMENT,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n ref: forwardedRef,\n ...rest\n } = props as DialogCardProps<typeof DEFAULT_DIALOG_CARD_ELEMENT>\n\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\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 <Card {...rest} as={as} className={dialogCardRoot()} display=\"flex\" ref={ref}>\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 )\n}\n\nDialogCard.displayName = 'DialogCard'\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 {\n composeClassNames,\n ContainerStyleProps,\n dialog,\n dialogContainer,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {FocusEvent, ForwardedRef, ReactNode, useCallback, useRef} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {focusFirstDescendant, focusLastDescendant, isHTMLElement} from '../../helpers'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {Container} from '../../primitives'\nimport {CardTone, ComponentType, DialogPosition, Props, Radius} from '../../types'\nimport {Layer, LayerOwnProps, LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {DialogCard} from './dialogCard'\nimport {isTargetWithinScope} from './isTargetWithinScope'\nimport {useDialog} from './useDialog'\n\n/** @public */\nexport const DEFAULT_DIALOG_ELEMENT = 'div'\n\n/** @public */\nexport type DialogOwnProps = ContainerStyleProps &\n Omit<LayerOwnProps, 'width'> & {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n open?: boolean\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n }\n\n/** @public */\nexport type DialogElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type DialogProps<E extends DialogElementType = DialogElementType> = Props<DialogOwnProps, E>\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog<E extends DialogElementType = typeof DEFAULT_DIALOG_ELEMENT>(\n props: DialogProps<E>,\n) {\n const context = useDialog()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n 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 = 4,\n width = 0,\n zOffset: _zOffsetProp,\n tone,\n ...rest\n } = props as DialogProps<typeof DEFAULT_DIALOG_ELEMENT>\n\n const positionProp = _positionProp ?? context.position ?? 'fixed'\n const zOffsetProp = _zOffsetProp ?? context.zOffset ?? Z_OFFSETS.dialog\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const position = useArrayProp(positionProp)\n // const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Layer\n {...rest}\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 role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\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 <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 </Container>\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 = '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 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/** @public */\nexport type 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<ButtonProps>\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 ref?: ForwardedRef<HTMLButtonElement | null>\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport function MenuButton(props: MenuButtonProps) {\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 ref: forwardedRef,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\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: ButtonProps<'button'> = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }\n\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 = 'MenuButton'\n","import {composeClassNames, skeleton, SkeletonStyleProps} from '@sanity/ui/css'\nimport {useEffect, useState} from 'react'\n\nimport {Box, BoxOwnProps} from '../../primitives'\nimport {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_SKELETON_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type SkeletonOwnProps = BoxOwnProps &\n SkeletonStyleProps & {\n animated?: boolean\n delay?: number\n }\n\n/** @beta */\nexport type SkeletonElementType = 'div' | 'span' | ComponentType\n\n/** @beta */\nexport type SkeletonProps<E extends SkeletonElementType = SkeletonElementType> = Props<\n SkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton<E extends SkeletonElementType = typeof DEFAULT_SKELETON_ELEMENT>(\n props: SkeletonProps<E>,\n) {\n const {\n animated = false,\n className,\n delay,\n radius,\n ...rest\n } = props as SkeletonProps<typeof DEFAULT_SKELETON_ELEMENT>\n\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return 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 {...rest}\n className={composeClassNames(\n className,\n skeleton({\n radius,\n }),\n )}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n />\n )\n}\n\nSkeleton.displayName = 'Skeleton'\n","import {codeSkeleton, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {FontCodeSize} from '@sanity/ui/theme'\n\nimport {Props} from '../../types'\nimport {Skeleton, SkeletonElementType, SkeletonOwnProps} from './skeleton'\n\n/** @public */\nexport const DEFAULT_CODE_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type CodeSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/** @public */\nexport type CodeSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type CodeSkeletonProps<E extends CodeSkeletonElementType = CodeSkeletonElementType> = Props<\n CodeSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton<\n E extends CodeSkeletonElementType = typeof DEFAULT_CODE_SKELETON_ELEMENT,\n>(props: CodeSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as CodeSkeletonProps<typeof DEFAULT_CODE_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={composeClassNames(\n className,\n codeSkeleton({\n size,\n }),\n )}\n />\n )\n}\n\nCodeSkeleton.displayName = 'CodeSkeleton'\n","import {composeClassNames, headingSkeleton, ResponsiveProp} from '@sanity/ui/css'\nimport {FontHeadingSize} from '@sanity/ui/theme'\n\nimport {Props} from '../../types'\nimport {Skeleton, SkeletonElementType, SkeletonOwnProps} from './skeleton'\n\n/** @public */\nexport const DEFAULT_HEADING_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type HeadingSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/** @public */\nexport type HeadingSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type HeadingSkeletonProps<\n E extends HeadingSkeletonElementType = HeadingSkeletonElementType,\n> = Props<HeadingSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton<\n E extends HeadingSkeletonElementType = typeof DEFAULT_HEADING_SKELETON_ELEMENT,\n>(props: HeadingSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as HeadingSkeletonProps<typeof DEFAULT_HEADING_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={composeClassNames(\n className,\n headingSkeleton({\n size,\n }),\n )}\n />\n )\n}\n\nHeadingSkeleton.displayName = 'HeadingSkeleton'\n","import {composeClassNames, labelSkeleton, ResponsiveProp} from '@sanity/ui/css'\nimport {FontLabelSize} from '@sanity/ui/theme'\n\nimport {Props} from '../../types'\nimport {Skeleton, SkeletonElementType, SkeletonOwnProps} from './skeleton'\n\n/** @public */\nexport const DEFAULT_LABEL_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type LabelSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/** @public */\nexport type LabelSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type LabelSkeletonProps<E extends LabelSkeletonElementType = LabelSkeletonElementType> =\n Props<LabelSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton<\n E extends LabelSkeletonElementType = typeof DEFAULT_LABEL_SKELETON_ELEMENT,\n>(props: LabelSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as LabelSkeletonProps<typeof DEFAULT_LABEL_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={composeClassNames(\n className,\n labelSkeleton({\n size,\n }),\n )}\n />\n )\n}\n\nLabelSkeleton.displayName = 'LabelSkeleton'\n","import {composeClassNames, ResponsiveProp, textSkeleton} from '@sanity/ui/css'\nimport {FontTextSize} from '@sanity/ui/theme'\n\nimport {Props} from '../../types'\nimport {Skeleton, SkeletonElementType, SkeletonOwnProps} from './skeleton'\n\n/** @public */\nexport const DEFAULT_TEXT_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type TextSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @public */\nexport type TextSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TextSkeletonProps<E extends TextSkeletonElementType = TextSkeletonElementType> = Props<\n TextSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton<\n E extends TextSkeletonElementType = typeof DEFAULT_TEXT_SKELETON_ELEMENT,\n>(props: TextSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as TextSkeletonProps<typeof DEFAULT_TEXT_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={composeClassNames(\n className,\n textSkeleton({\n size,\n }),\n )}\n />\n )\n}\n\nTextSkeleton.displayName = 'TextSkeleton'\n","import {Box, BoxOwnProps} from '../../primitives'\nimport {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TAB_PANEL_ELEMENT = 'div'\n\n/** @public */\nexport type TabPanelOwnProps = BoxOwnProps & {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/** @public */\nexport type TabPanelElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabPanelProps<E extends TabPanelElementType = TabPanelElementType> = Props<\n TabPanelOwnProps,\n E\n>\n\n/** @public */\nexport function TabPanel<E extends TabPanelElementType = typeof DEFAULT_TAB_PANEL_ELEMENT>(\n props: TabPanelProps<E>,\n) {\n const {as = DEFAULT_TAB_PANEL_ELEMENT, ...rest} = props as TabPanelProps<\n typeof DEFAULT_TAB_PANEL_ELEMENT\n >\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...rest}\n as={as}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n}\n\nTabPanel.displayName = '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 {ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ButtonTone, ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TOAST_ELEMENT = 'li'\n\n/** @public */\nexport type ToastOwnProps = RadiusStyleProps & {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\n/** @public */\nexport type ToastElementType = 'li' | ComponentType\n\n/** @public */\nexport type ToastProps<E extends ToastElementType = ToastElementType> = Props<ToastOwnProps, E>\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<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>(\n props: ToastProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_ELEMENT,\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...rest\n } = props as ToastProps<typeof DEFAULT_TOAST_ELEMENT>\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration ? {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={as}\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...rest}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionBox className={toastLoadingBar()} variants={content} transition={transition}>\n <Card className={toastLoadingBarMask()} tone={cardTone} radius={radius} />\n <MotionCard\n // const MotionToast = motion.create(Card) // StyledToast\n // const MotionFlex = motion.create(Flex)\n // const MotionText = motion.create(Text)\n // const MotionLoadingBar = motion.create(Box) // LoadingBar\n // const MotionLoadingBarProgress = motion.create(Card)\n\n className={toastLoadingBarProgress()}\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionBox>\n )}\n </MotionCard>\n )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionBox = motion.create(Box)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {GapStyleProps, PaddingStyleProps, toastLayer} from '@sanity/ui/css'\n\nimport {Grid} from '../../primitives/grid'\nimport {ComponentType, Props} from '../../types'\nimport {useLayer} from '../../utils'\n\n/** @internal */\nexport const DEFAULT_TOAST_LAYER_ELEMENT = 'ul'\n\n/** @internal */\nexport type ToastLayerOwnProps = GapStyleProps & PaddingStyleProps\n\n/** @internal */\nexport type ToastLayerElementType = 'ul' | ComponentType\n\n/** @internal */\nexport type ToastLayerProps<E extends ToastLayerElementType = ToastLayerElementType> = Props<\n ToastLayerOwnProps,\n E\n>\n\n/**\n * @internal\n */\nexport function ToastLayer<E extends ToastLayerElementType = typeof DEFAULT_TOAST_LAYER_ELEMENT>(\n props: ToastLayerProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_LAYER_ELEMENT,\n children,\n padding = 4,\n paddingX,\n paddingY,\n gap = 3,\n } = props as ToastLayerProps<typeof DEFAULT_TOAST_LAYER_ELEMENT>\n\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as={as}\n className={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/** @public */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/** @public */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const 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/** @public */\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 FocusEvent,\n KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {ComponentType, Props} from '../../types'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/** @beta */\nexport const DEFAULT_TREE_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TreeOwnProps = {\n gap?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @beta */\nexport type TreeElementType = 'div' | ComponentType\n\n/** @beta */\nexport type TreeProps<E extends TreeElementType = TreeElementType> = Props<TreeOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree<E extends TreeElementType = typeof DEFAULT_TREE_ELEMENT>(props: TreeProps<E>) {\n const {\n children,\n gap,\n space = 1,\n onFocus,\n ref: forwardedRef,\n ...rest\n } = props as TreeProps<typeof DEFAULT_TREE_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const 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 {...rest}\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 = '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 {ComponentType, Props} from '../../types'\nimport {useTree} from './useTree'\n\n/** @public */\nexport const DEFAULT_TREE_GROUP_ELEMENT = 'div'\n\n/** @public */\nexport type TreeGroupElementType = 'div' | ComponentType\n\n/** @public */\nexport type TreeGroupOwnProps = {\n expanded?: boolean\n}\n\n/** @public */\nexport type TreeGroupProps<E extends TreeGroupElementType = TreeGroupElementType> = Props<\n TreeGroupOwnProps,\n E\n>\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\n const {\n children,\n expanded = false,\n ...rest\n } = props as TreeGroupProps<typeof DEFAULT_TREE_GROUP_ELEMENT>\n\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...rest}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n gap={tree.space}\n >\n {children}\n </Stack>\n )\n})\n\nTreeGroup.displayName = 'TreeGroup'\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 MouseEvent,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, BoxProps, CardOwnProps, Flex, Text} from '../../primitives'\nimport {Selectable, SelectableElementType} from '../../primitives/_selectable'\nimport {ComponentType, Props} from '../../types'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/** @beta */\nexport const DEFAULT_TREE_ITEM_ELEMENT = 'a'\n\n/** @beta */\nexport type TreeItemOwnProps = CardOwnProps & {\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?: SelectableElementType\n onClick?: MouseEventHandler<HTMLAnchorElement | HTMLLIElement>\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/** @beta */\nexport type TreeItemElementType = 'a' | 'li' | ComponentType\n\n/** @beta */\nexport type TreeItemProps<E extends TreeItemElementType = TreeItemElementType> = Props<\n TreeItemOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITEM_ELEMENT>(\n props: TreeItemProps<E>,\n) {\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 ...rest\n } = props as TreeItemProps<typeof DEFAULT_TREE_ITEM_ELEMENT>\n\n const rootRef = useRef<HTMLElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = 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<HTMLAnchorElement> | MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(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 {...(rest as BoxProps<'li'>)}\n as=\"li\"\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n ref={rootRef as Ref<HTMLLIElement>}\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 {...(rest as BoxProps<'a'>)}\n aria-expanded={expanded}\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef as Ref<HTMLAnchorElement>}\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 = 'TreeItem'\n","import {card, scopeClassName as _} from '@sanity/ui/css'\nimport {useEffect} from 'react'\n\nimport {_raf2} from './helpers'\nimport {useCard} from './primitives'\n\n/** @internal */\nexport function RootClassNames(props: {element: HTMLElement}) {\n const {element} = props\n const {scheme, tone} = useCard() ?? {}\n\n useEffect(() => {\n const els = document.querySelectorAll(\n [_('button'), _('card'), _('font')].map((n) => `.${n}`).join(', '),\n )\n\n // temporarily disable all transitions when the theme changes\n for (const el of els) {\n if (el instanceof HTMLElement) {\n el.style.transition = 'none'\n }\n }\n\n _raf2(() => {\n document.documentElement.className = card({scheme, tone}) ?? ''\n\n _raf2(() => {\n for (const el of els) {\n if (el instanceof HTMLElement) {\n el.style.transition = ''\n }\n }\n })\n })\n\n return () => {\n document.documentElement.className = ''\n }\n }, [element, scheme, tone])\n\n return null\n}\n\nRootClassNames.displayName = 'RootClassNames'\n","import {compilePalette, compileSystem, compileTheme} from '@sanity/ui/css'\nimport {buildTheme_v3, RootTheme, Theme_v3} from '@sanity/ui/theme'\nimport {ReactNode} from 'react'\n\n/** @beta */\nexport function StyleTags(props: {theme?: Theme_v3}): ReactNode {\n const {theme: themeProp} = props\n\n const theme = themeProp ?? buildTheme_v3()\n\n return (\n <>\n <style href=\"sanity-palette\" precedence=\"palette\">\n {compilePalette()}\n </style>\n <style href=\"sanity-theme\" precedence=\"theme\">\n {compileTheme({v3: theme} as RootTheme)}\n </style>\n <style href=\"sanity-system\" precedence=\"system\">\n {compileSystem()}\n </style>\n </>\n )\n}\n\nStyleTags.displayName = 'StyleTags'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","_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","displayName","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","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_AUTOCOMPLETE_ELEMENT","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","as","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","forwardedRef","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","rest","dispatch","useReducer","defaultRenderOption","useCallback","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","ChevronDownIcon","inputValue","input","AnimatedSpinnerIcon","handleListBoxKeyDown","content","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","DEFAULT_BREADCRUMBS_ELEMENT","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","composeClassNames","breadcrumbs","item","itemIndex","isTargetWithinScope","portalElement","containsOrEqualsElement","DEFAULT_DIALOG_CARD_ELEMENT","DialogCard","autoFocus","footer","forwardedContentRef","header","hideCloseButton","onClickOutside","onClose","portalProp","__unstable_autoFocus","__unstable_hideCloseButton","contentRef","portal","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","t6","stopPropagation","useGlobalKeyDown","t7","event_0","target_0","t8","t9","dialogCardRoot","t10","dialogLayout","t11","dialogHeader","CloseIcon","t12","dialogContent","t13","t14","dialogFooter","t15","t16","DialogContext","createGlobalScopedContext","version","useDialog","useContext","DEFAULT_DIALOG_ELEMENT","Dialog","context","_positionProp","_zOffsetProp","onActivate","scheme","tone","animate","cardRadius","position","shadow","width","zOffset","_animate","cardRadiusProp","cardShadow","positionProp","zOffsetProp","Z_OFFSETS","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","dialogContainer","t17","t18","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","bb0","t19","t20","t21","t22","t23","overflow","popoverProps","t24","t25","DEFAULT_SKELETON_ELEMENT","Skeleton","delay","animated","visible","setVisible","timeout","skeleton","DEFAULT_CODE_SKELETON_ELEMENT","CodeSkeleton","size","codeSkeleton","DEFAULT_HEADING_SKELETON_ELEMENT","HeadingSkeleton","headingSkeleton","DEFAULT_LABEL_SKELETON_ELEMENT","LabelSkeleton","labelSkeleton","DEFAULT_TEXT_SKELETON_ELEMENT","TextSkeleton","textSkeleton","DEFAULT_TAB_PANEL_ELEMENT","TabPanel","DEFAULT_TOAST_ELEMENT","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","Card","MotionFlex","Flex","MotionText","Text","MotionBox","Box","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","DEFAULT_TOAST_LAYER_ELEMENT","ToastLayer","paddingX","paddingY","toastLayer","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","dismiss","currentState","toast_0","toast_1","Date","now","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","DEFAULT_TREE_ELEMENT","Tree","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","useTree","tree","TreeGroup","memo","DEFAULT_TREE_ITEM_ELEMENT","TreeItem","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","transform","treeItem","paddingLeft","RootClassNames","useCard","_","style","documentElement","card","n","StyleTags","theme","themeProp","buildTheme_v3","compilePalette","compileTheme","v3","compileSystem"],"mappings":"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"}
|