@sanity/ui 2.9.0-canary.2 → 2.9.0-canary.3
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/index.esm.js +35 -15
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +35 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +35 -15
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +35 -47
- package/src/core/constants.ts +1 -1
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useClickOutsideEvent.ts","../src/core/hooks/useCustomValidity.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/hooks/useMatchMedia.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/box/box.tsx","../src/core/primitives/text/styles.ts","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/styles/card/_cardColorStyle.ts","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx","../src/core/primitives/card/styles.ts","../src/core/primitives/card/card.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/hotkeys/hotkeys.tsx","../src/core/components/menu/menuContext.ts","../src/core/components/menu/helpers.ts","../src/core/components/menu/useMenuController.ts","../src/core/components/menu/menu.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity'\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n fontWeight,\n 'padding': '1px 0',\n 'margin': 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n 'fontSize': rem(fontSize),\n 'lineHeight': `calc(${lineHeight} / ${fontSize})`,\n 'letterSpacing': rem(letterSpacing),\n 'transform': `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useState} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener, onEvent])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n const cachedMatchMedia = useMemo(\n () => (typeof window === 'undefined' ? null : window.matchMedia(mediaQueryString)),\n [mediaQueryString],\n )\n const {subscribe, getSnapshot} = useMemo(() => {\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n cachedMatchMedia!.addEventListener('change', onStoreChange)\n\n return () => cachedMatchMedia!.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => cachedMatchMedia!.matches,\n }\n }, [cachedMatchMedia])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {createContext, type Context} from 'react'\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <Root\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': 0,\n 'opacity': 0,\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst Root = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst Image = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <Image viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </Image>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </Root>\n )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Root>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.ReactElement[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </Root>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <Root\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </Root>\n )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </Root>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </Root>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {styled, keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst Root = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <Root\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing, $muted} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst Root = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </Root>\n )\n})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </Root>\n )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n 'lineHeight': 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n 'margin': `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <Root\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst Root = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </Root>\n )\n})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, ReactElement, forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst Root = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Root {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </Root>\n )\n})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const ref = useRef<HTMLDivElement | null>(null)\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setElement(el)\n }, [])\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n forwardedRef: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Root {...restProps} data-ui=\"Layer\" onFocus={handleFocus} ref={ref} style={{...style, zIndex}}>\n {children}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useState, useSyncExternalStore} from 'react'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const [cachedValue, setCachedValue] = useState(value)\n\n if (!_isEqual(cachedValue, value)) {\n setCachedValue(value)\n }\n\n return cachedValue\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!ref.current) return\n\n let _scrollEl = ref.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary = _floatingBoundary ?? boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n _referenceBoundary ?? boundaryElement ?? boundaryElementContext.element\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useLayoutEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidthRef.current !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const [childElement, setChildElement] = useState<HTMLElement | null>(null)\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n setChildElement(node)\n },\n [refs],\n )\n\n useImperativeHandle(getElementRef(childProp as any), () => childElement, [childElement])\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\n\n useEffect(() => {\n if (child) return\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs, child])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element?: React.ReactElement) {\n if (!element) return null\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n 'gridTemplateColumns': 'minmax(0, 1fr)',\n 'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <Root className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </Root>\n )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst Root = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <Root data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </Root>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst Root = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const childRef = useRef<HTMLElement | null>(null)\n\n // Merge refs so that any ref we are overriding is called as well\n useImperativeHandle((childProp as any)?.ref, () => childRef.current)\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: childRef,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!child) return undefined\n\n setReferenceElement(childRef.current)\n\n return () => setReferenceElement(null)\n }, [child])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </Root>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [onMouseMove, showTooltip])\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {styled, keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [resultsPopoverElement, setResultsPopoverElement] = useState<HTMLDivElement | null>(null)\n const [inputElement, setInputElement] = useState<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 [popoverMouseWithin, setPopoverMouseWithin] = useState(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = 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 (popoverMouseWithin) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElement ? [rootElement] : [],\n resultsPopoverElement ? [resultsPopoverElement] : [],\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 setPopoverMouseWithin(false)\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [\n onBlur,\n onQueryChange,\n popoverMouseWithin,\n relatedElements,\n resultsPopoverElement,\n rootElement,\n ],\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 setPopoverMouseWithin(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 inputElement?.focus()\n },\n [onSelect, onChange, onQueryChange, inputElement],\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 setPopoverMouseWithin(false)\n if (onQueryChange) onQueryChange(null)\n inputElement?.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 inputElement?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, inputElement, 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 setPopoverMouseWithin(true)\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n setPopoverMouseWithin(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 inputElement?.focus()\n }, [inputElement, onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElement?.focus())\n },\n [dispatchOpen, openButtonProps, inputElement],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setInputElement}\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) inputElement?.focus()\n }\n },\n [inputElement, listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n {current: resultsPopoverElement},\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={setResultsPopoverElement}\n referenceElement={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n resultsPopoverElement,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={setRootElement}\n >\n {input}\n {results}\n </Root>\n )\n})\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import {styled} from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useArrayProp, useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst Root = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"center\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\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 <Root\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </Root>\n )\n})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n }\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = () => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n focusFirst?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n focusLast?: boolean\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemSelect?: (index: number) => void\n originElement?: HTMLElement | null\n registerElement?: (el: HTMLElement) => () => void\n shouldFocus?: 'first' | 'last' | null\n space?: number | number[]\n}\n\nconst Root = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </Root>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': ref,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n // If there's a button then we need to set the reference element to the cloned button ref\n // and if button changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!button) return undefined\n\n setButtonElement(ref.current)\n\n return () => setButtonElement(null)\n }, [button])\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupProps,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle,\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\nTabList.displayName = 'ForwardRef(TabList)'\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {styled, keyframes, css} from 'styled-components'\nimport {ThemeColorStateToneKey, getTheme_v2} from '../../../theme'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Flex} from '../../primitives'\nimport {ThemeProps} from '../../styles'\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nconst loadingAnimation = keyframes`\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n`\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport function rootStyles(\n props: {$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps,\n): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n const loadingBarColor = color.button.default[props.tone].enabled.bg\n\n if (!props.$duration)\n return css`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n\n return css`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n padding-bottom: ${LOADING_BAR_HEIGHT}px;\n &::before {\n content: '';\n position: absolute;\n bottom: 0px;\n height: ${LOADING_BAR_HEIGHT}px;\n background: ${loadingBarColor};\n animation-name: ${loadingAnimation};\n animation-duration: ${props.$duration}ms;\n animation-fill-mode: both;\n }\n\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\nimport {Box, Button, Flex, Stack, Text, Card} from '../../primitives'\nimport {ThemeProps} from '../../styles'\nimport type {ButtonTone} from '../../types'\nimport {rootStyles, TextBox} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorStateToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst Root = styled(Card)<{$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps>(\n rootStyles,\n)\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.ReactElement {\n const {closable, description, duration, onClose, radius = 3, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n $duration={duration}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n\nToast.displayName = 'Toast'\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [1, 0, 0],\n scale: 0.5,\n transition: prefersReducedMotion ? {duration: 0} : {duration: 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {memo, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, setRootElement] = useState<HTMLLIElement | null>(null)\n 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 === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useClickOutsideEvent","_temp","resolvedBoundaryElement","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","document","useDebugValue","useCustomValidity","ref","customValidity","setCustomValidity","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","entries","ot","entry","targetDepth","lastReportedSize","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","useForwardedRef","innerRef","Symbol","for","useImperativeHandle","useGlobalKeyDown","onKeyDown","useMatchMedia","mediaQueryString","getServerSnapshot","matchMedia","cachedMatchMedia","onStoreChange","getSnapshot","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","childrenProp","textOverflow","restProps","accent","weight","muted","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","Avatar","asProp","animateArrowFrom","arrowPositionProp","src","onImageLoadError","__unstable_hideInnerStroke","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t6","t7","handleImageError","t8","t9","t10","initialsSize","t11","t12","t13","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","T0","child","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","padding","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","Text","badgeStyle","verticalAlign","Badge","mode","_deprecated_mode","Flex","rotate","keyframes","Spinner","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","primary","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","LoadingBox","Button","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","loading","selected","IconComponent","IconRightComponent","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","indeterminate","checked","className","codeSyntaxHighlightingStyle","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","tag","unit","url","variable","codeBaseStyle","pre","Code","languageProp","language","Refractor","hasLanguage","registered","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","Container","Grid","headingBaseStyle","heading","Heading","inlineBaseStyle","inlineSpaceStyle","Inline","kbdStyle","KBD","origin","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","findMinBreakpoints","ElementQuery","_media","elementSize","useMemo","innerWidth","setRef","useCallback","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","href","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","v","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","_temp2","cachedValue","setCachedValue","_isEqual","objA","objB","keysA","keysB","every","SrOnly","ItemWrapper","VirtualList","renderItem","onChange","getItemKey","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","passive","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","PopoverCard","memo","marginsProp","xProp","yProp","strategy","arrowX","arrowY","arrowRef","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","_boundaryElement","childProp","constrainSize","fallbackPlacements","_fallbackPlacements","matchReferenceWidth","floatingBoundary","_floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","_referenceBoundary","referenceElement","shadowProp","widthProp","_zOffsetProp","updateRef","popover","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","useLayoutEffect","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","childElement","setChildElement","setReference","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","suffix","prefix","onClear","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","event_0","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","v_0","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","Tooltip","_fallbackPlacementsProp","portalProp","_zOffset","fallbackPlacementsProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","availableWidths","childRef","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","ListBox","AnimatedSpinnerIcon","SpinnerIcon","AutocompleteOption","onSelect","currentTarget","handleKeyDown","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","valueProp","renderOptionProp","filterOptionProp","optionsProp","onQueryChange","relatedElements","openOnFocus","openButton","renderPopover","filterOption","listBox","renderOption","renderValue","dispatch","useReducer","value_0","setRootElement","resultsPopoverElement","setResultsPopoverElement","inputElement","setInputElement","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithin","setPopoverMouseWithin","listBoxId","find","o","currentOption","filteredOptions","filteredOptionsLen","activeItemId","expanded","focusInside","handleRootBlur","listBoxElement","focusedElement","listFocused_0","handleRootFocus","handleOptionSelect","event_1","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","event_2","nextQuery","handleInputChange","dispatchOpen","event_3","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","t31","t32","t33","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","t34","t35","t36","t37","openButtonBoxPadding","t38","t39","v_1","openButtonPadding","openButtonProps","t40","event_4","handleOpenClick","t41","t42","ChevronDownIcon","openButtonNode","t43","t44","inputValue","t45","t46","t47","event_5","handleListBoxKeyDown","t48","bb2","t49","t50","option_0","active","t51","hidden","bb3","results","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","Fragment","dialogStyle","responsiveDialogPositionStyle","$position","animationDialogStyle","$animate","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","labelId","showCloseButton","showHeader","target_0","Dialog","dialog","_positionProp","cardRadius","cardShadow","cardRadiusProp","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","cardElement_0","handleRootClick","DialogProvider","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","a","b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","_setActiveIndex","activeIndexRef","mounted","nextActiveIndex","setActiveIndex","selectedIndex","mount","currentIndex","focusableElements_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedIndex","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","Menu","_shouldFocus","registerElement","onItemSelect","onEscape","onItemClick","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","_onItemMouseEnter","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","MenuItem","selectedProp","hotkeys","_onItemMouseLeave","paddingProps","hotkeysFontSize","keyframe","animation","skeletonStyle","$visible","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","$duration","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","Toast","description","closable","cardTone","buttonTone","role","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","treeitemRef","_id","closest","click","visibility","pointerEvents"],"mappings":"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","x_google_ignoreList":[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useClickOutsideEvent.ts","../src/core/hooks/useCustomValidity.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/hooks/useMatchMedia.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/box/box.tsx","../src/core/primitives/text/styles.ts","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/styles/card/_cardColorStyle.ts","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx","../src/core/primitives/card/styles.ts","../src/core/primitives/card/card.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/hotkeys/hotkeys.tsx","../src/core/components/menu/menuContext.ts","../src/core/components/menu/helpers.ts","../src/core/components/menu/useMenuController.ts","../src/core/components/menu/menu.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity' as string\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n fontWeight,\n 'padding': '1px 0',\n 'margin': 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n 'fontSize': rem(fontSize),\n 'lineHeight': `calc(${lineHeight} / ${fontSize})`,\n 'letterSpacing': rem(letterSpacing),\n 'transform': `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useState} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener, onEvent])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n const cachedMatchMedia = useMemo(\n () => (typeof window === 'undefined' ? null : window.matchMedia(mediaQueryString)),\n [mediaQueryString],\n )\n const {subscribe, getSnapshot} = useMemo(() => {\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n cachedMatchMedia!.addEventListener('change', onStoreChange)\n\n return () => cachedMatchMedia!.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => cachedMatchMedia!.matches,\n }\n }, [cachedMatchMedia])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {createContext, type Context} from 'react'\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <Root\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': 0,\n 'opacity': 0,\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst Root = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst Image = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <Image viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </Image>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </Root>\n )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Root>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.ReactElement[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </Root>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <Root\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </Root>\n )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </Root>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </Root>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {styled, keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst Root = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <Root\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing, $muted} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst Root = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </Root>\n )\n})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </Root>\n )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n 'lineHeight': 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n 'margin': `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <Root\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst Root = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </Root>\n )\n})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, ReactElement, forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst Root = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Root {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </Root>\n )\n})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const ref = useRef<HTMLDivElement | null>(null)\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setElement(el)\n }, [])\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n forwardedRef: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Root {...restProps} data-ui=\"Layer\" onFocus={handleFocus} ref={ref} style={{...style, zIndex}}>\n {children}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useState, useSyncExternalStore} from 'react'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const [cachedValue, setCachedValue] = useState(value)\n\n if (!_isEqual(cachedValue, value)) {\n setCachedValue(value)\n }\n\n return cachedValue\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!ref.current) return\n\n let _scrollEl = ref.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary = _floatingBoundary ?? boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n _referenceBoundary ?? boundaryElement ?? boundaryElementContext.element\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useLayoutEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidthRef.current !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const [childElement, setChildElement] = useState<HTMLElement | null>(null)\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n setChildElement(node)\n },\n [refs],\n )\n\n useImperativeHandle(getElementRef(childProp as any), () => childElement, [childElement])\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\n\n useEffect(() => {\n if (child) return\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs, child])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element?: React.ReactElement) {\n if (!element) return null\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n 'gridTemplateColumns': 'minmax(0, 1fr)',\n 'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <Root className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </Root>\n )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst Root = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <Root data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </Root>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst Root = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const childRef = useRef<HTMLElement | null>(null)\n\n // Merge refs so that any ref we are overriding is called as well\n useImperativeHandle((childProp as any)?.ref, () => childRef.current)\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: childRef,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!child) return undefined\n\n setReferenceElement(childRef.current)\n\n return () => setReferenceElement(null)\n }, [child])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </Root>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [onMouseMove, showTooltip])\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {styled, keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [resultsPopoverElement, setResultsPopoverElement] = useState<HTMLDivElement | null>(null)\n const [inputElement, setInputElement] = useState<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 [popoverMouseWithin, setPopoverMouseWithin] = useState(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = 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 (popoverMouseWithin) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElement ? [rootElement] : [],\n resultsPopoverElement ? [resultsPopoverElement] : [],\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 setPopoverMouseWithin(false)\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [\n onBlur,\n onQueryChange,\n popoverMouseWithin,\n relatedElements,\n resultsPopoverElement,\n rootElement,\n ],\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 setPopoverMouseWithin(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 inputElement?.focus()\n },\n [onSelect, onChange, onQueryChange, inputElement],\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 setPopoverMouseWithin(false)\n if (onQueryChange) onQueryChange(null)\n inputElement?.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 inputElement?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, inputElement, 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 setPopoverMouseWithin(true)\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n setPopoverMouseWithin(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 inputElement?.focus()\n }, [inputElement, onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElement?.focus())\n },\n [dispatchOpen, openButtonProps, inputElement],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setInputElement}\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) inputElement?.focus()\n }\n },\n [inputElement, listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n {current: resultsPopoverElement},\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={setResultsPopoverElement}\n referenceElement={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n resultsPopoverElement,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={setRootElement}\n >\n {input}\n {results}\n </Root>\n )\n})\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import {styled} from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useRef, useState} from 'react'\nimport {useArrayProp, useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = Children.toArray(children).filter(isValidElement)\n\n let items = rawItems\n const len = rawItems.length\n\n if (maxLength && rawItems.length > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n items = [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst Root = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"center\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\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 <Root\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </Root>\n )\n})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n }\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = () => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n focusFirst?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n focusLast?: boolean\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemSelect?: (index: number) => void\n originElement?: HTMLElement | null\n registerElement?: (el: HTMLElement) => () => void\n shouldFocus?: 'first' | 'last' | null\n space?: number | number[]\n}\n\nconst Root = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </Root>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': ref,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n // If there's a button then we need to set the reference element to the cloned button ref\n // and if button changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!button) return undefined\n\n setButtonElement(ref.current)\n\n return () => setButtonElement(null)\n }, [button])\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupProps,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle,\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\nTabList.displayName = 'ForwardRef(TabList)'\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {styled, keyframes, css} from 'styled-components'\nimport {ThemeColorStateToneKey, getTheme_v2} from '../../../theme'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Flex} from '../../primitives'\nimport {ThemeProps} from '../../styles'\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nconst loadingAnimation = keyframes`\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n`\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport function rootStyles(\n props: {$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps,\n): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n const loadingBarColor = color.button.default[props.tone].enabled.bg\n\n if (!props.$duration)\n return css`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n\n return css`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n padding-bottom: ${LOADING_BAR_HEIGHT}px;\n &::before {\n content: '';\n position: absolute;\n bottom: 0px;\n height: ${LOADING_BAR_HEIGHT}px;\n background: ${loadingBarColor};\n animation-name: ${loadingAnimation};\n animation-duration: ${props.$duration}ms;\n animation-fill-mode: both;\n }\n\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\nimport {Box, Button, Flex, Stack, Text, Card} from '../../primitives'\nimport {ThemeProps} from '../../styles'\nimport type {ButtonTone} from '../../types'\nimport {rootStyles, TextBox} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorStateToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst Root = styled(Card)<{$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps>(\n rootStyles,\n)\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.ReactElement {\n const {closable, description, duration, onClose, radius = 3, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n $duration={duration}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n\nToast.displayName = 'Toast'\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [1, 0, 0],\n scale: 0.5,\n transition: prefersReducedMotion ? {duration: 0} : {duration: 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {memo, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, setRootElement] = useState<HTMLLIElement | null>(null)\n 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 === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useClickOutsideEvent","_temp","resolvedBoundaryElement","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","document","useDebugValue","useCustomValidity","ref","customValidity","setCustomValidity","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","entries","ot","entry","targetDepth","lastReportedSize","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","useForwardedRef","innerRef","Symbol","for","useImperativeHandle","useGlobalKeyDown","onKeyDown","useMatchMedia","mediaQueryString","getServerSnapshot","matchMedia","cachedMatchMedia","onStoreChange","getSnapshot","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","childrenProp","textOverflow","restProps","accent","weight","muted","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","Avatar","asProp","animateArrowFrom","arrowPositionProp","src","onImageLoadError","__unstable_hideInnerStroke","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t6","t7","handleImageError","t8","t9","t10","initialsSize","t11","t12","t13","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","T0","child","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","padding","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","Text","badgeStyle","verticalAlign","Badge","mode","_deprecated_mode","Flex","rotate","keyframes","Spinner","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","primary","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","LoadingBox","Button","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","loading","selected","IconComponent","IconRightComponent","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","indeterminate","checked","className","codeSyntaxHighlightingStyle","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","tag","unit","url","variable","codeBaseStyle","pre","Code","languageProp","language","Refractor","hasLanguage","registered","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","Container","Grid","headingBaseStyle","heading","Heading","inlineBaseStyle","inlineSpaceStyle","Inline","kbdStyle","KBD","origin","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","findMinBreakpoints","ElementQuery","_media","elementSize","useMemo","innerWidth","setRef","useCallback","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","href","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","v","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","_temp2","cachedValue","setCachedValue","_isEqual","objA","objB","keysA","keysB","every","SrOnly","ItemWrapper","VirtualList","renderItem","onChange","getItemKey","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","passive","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","PopoverCard","memo","marginsProp","xProp","yProp","strategy","arrowX","arrowY","arrowRef","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","_boundaryElement","childProp","constrainSize","fallbackPlacements","_fallbackPlacements","matchReferenceWidth","floatingBoundary","_floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","_referenceBoundary","referenceElement","shadowProp","widthProp","_zOffsetProp","updateRef","popover","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","useLayoutEffect","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","childElement","setChildElement","setReference","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","suffix","prefix","onClear","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","event_0","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","v_0","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","Tooltip","_fallbackPlacementsProp","portalProp","_zOffset","fallbackPlacementsProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","availableWidths","childRef","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","ListBox","AnimatedSpinnerIcon","SpinnerIcon","AutocompleteOption","onSelect","currentTarget","handleKeyDown","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","valueProp","renderOptionProp","filterOptionProp","optionsProp","onQueryChange","relatedElements","openOnFocus","openButton","renderPopover","filterOption","listBox","renderOption","renderValue","dispatch","useReducer","value_0","setRootElement","resultsPopoverElement","setResultsPopoverElement","inputElement","setInputElement","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithin","setPopoverMouseWithin","listBoxId","find","o","currentOption","filteredOptions","filteredOptionsLen","activeItemId","expanded","focusInside","handleRootBlur","listBoxElement","focusedElement","listFocused_0","handleRootFocus","handleOptionSelect","event_1","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","event_2","nextQuery","handleInputChange","dispatchOpen","event_3","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","t31","t32","t33","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","t34","t35","t36","t37","openButtonBoxPadding","t38","t39","v_1","openButtonPadding","openButtonProps","t40","event_4","handleOpenClick","t41","t42","ChevronDownIcon","openButtonNode","t43","t44","inputValue","t45","t46","t47","event_5","handleListBoxKeyDown","t48","bb2","t49","t50","option_0","active","t51","hidden","bb3","results","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","Fragment","dialogStyle","responsiveDialogPositionStyle","$position","animationDialogStyle","$animate","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","labelId","showCloseButton","showHeader","target_0","Dialog","dialog","_positionProp","cardRadius","cardShadow","cardRadiusProp","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","cardElement_0","handleRootClick","DialogProvider","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","a","b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","_setActiveIndex","activeIndexRef","mounted","nextActiveIndex","setActiveIndex","selectedIndex","mount","currentIndex","focusableElements_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedIndex","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","Menu","_shouldFocus","registerElement","onItemSelect","onEscape","onItemClick","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","_onItemMouseEnter","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","MenuItem","selectedProp","hotkeys","_onItemMouseLeave","paddingProps","hotkeysFontSize","keyframe","animation","skeletonStyle","$visible","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","$duration","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","Toast","description","closable","cardTone","buttonTone","role","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","treeitemRef","_id","closest","click","visibility","pointerEvents"],"mappings":"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","x_google_ignoreList":[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
|