@sanity/ui 2.8.24-canary.2 → 2.8.25
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.d.mts +2 -11
- package/dist/index.d.ts +2 -11
- package/dist/index.esm.js +2149 -2162
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2148 -2161
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2149 -2162
- package/dist/index.mjs.map +1 -1
- package/package.json +54 -46
- package/src/core/components/autocomplete/autocomplete.tsx +1 -1
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +1 -2
- package/src/core/components/dialog/dialog.tsx +6 -2
- package/src/core/components/hotkeys/hotkeys.tsx +1 -1
- package/src/core/components/menu/menuGroup.tsx +1 -1
- package/src/core/components/menu/menuItem.tsx +1 -1
- package/src/core/components/skeleton/skeleton.tsx +1 -1
- package/src/core/components/skeleton/textSkeleton.tsx +1 -1
- package/src/core/hooks/index.ts +1 -1
- package/src/core/hooks/useArrayProp.ts +6 -8
- package/src/core/primitives/avatar/avatar.tsx +1 -1
- package/src/core/primitives/avatar/avatarCounter.tsx +1 -1
- package/src/core/primitives/avatar/avatarStack.tsx +1 -1
- package/src/core/primitives/badge/badge.tsx +1 -1
- package/src/core/primitives/box/box.tsx +1 -1
- package/src/core/primitives/button/button.tsx +1 -1
- package/src/core/primitives/card/card.tsx +1 -1
- package/src/core/primitives/code/code.tsx +1 -1
- package/src/core/primitives/container/container.tsx +1 -1
- package/src/core/primitives/flex/flex.tsx +1 -1
- package/src/core/primitives/grid/grid.tsx +1 -1
- package/src/core/primitives/heading/heading.tsx +1 -1
- package/src/core/primitives/inline/inline.tsx +1 -1
- package/src/core/primitives/kbd/kbd.tsx +1 -1
- package/src/core/primitives/label/label.tsx +1 -1
- package/src/core/primitives/popover/popover.tsx +1 -2
- package/src/core/primitives/select/select.tsx +1 -2
- package/src/core/primitives/stack/stack.tsx +1 -1
- package/src/core/primitives/text/text.tsx +1 -1
- package/src/core/primitives/textArea/textArea.tsx +1 -2
- package/src/core/primitives/textInput/textInput.tsx +1 -2
- package/src/core/primitives/tooltip/tooltip.tsx +1 -2
- package/src/core/styles/helpers.ts +2 -2
- package/src/core/utils/layer/layerProvider.tsx +1 -2
- package/src/core/utils/portal/portalProvider.tsx +8 -10
- package/src/core/hooks/useArrayPropLegacy.ts +0 -30
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.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/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/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/hooks/useArrayPropLegacy.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/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../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/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// 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): T[] {\n if (val === undefined) return 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): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val),\n JSON.stringify(val),\n ])\n let result = cachedVal\n\n const hash = JSON.stringify(val)\n\n if (hash !== cachedHash) {\n const current = _getArrayProp(val)\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([current, hash])\n result = current\n }\n\n return result\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 {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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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 {useArrayProp as useArrayPropHook, type ArrayPropPrimitive} from './useArrayProp'\n\nexport type {ArrayPropPrimitive}\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): T[]\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n * @deprecated - use `useArrayProp(value ?? defaultValue)` instead of `useArrayProp(value, defaultValue)`\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal: T[],\n): T[]\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 return useArrayPropHook(val ?? defaultVal)\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener, onEvent])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","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 {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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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, useImperativeHandle, useMemo, 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 [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {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} from '../../hooks'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {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} = props\n const elements = useUnique(props.__unstable_elements)\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 let result = cachedValue\n\n if (!isEqual(cachedValue, value)) {\n setCachedValue(value)\n result = value\n }\n\n return result\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 useMemo,\n useRef,\n} from 'react'\nimport {useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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 = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n useEffect(() => {\n if (child) return\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs, child])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {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} from '../../hooks'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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/useArrayProp'\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} from '../../hooks'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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 {useCustomValidity} from '../../hooks'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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 {usePrefersReducedMotion} from '../../hooks'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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 = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const childRef = useRef<HTMLElement | null>(null)\n\n // Merge refs so that any ref we are overriding is called as well\n useImperativeHandle((childProp as any)?.ref, () => childRef.current)\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: childRef,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!child) return undefined\n\n setReferenceElement(childRef.current)\n\n return () => setReferenceElement(null)\n }, [child])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const 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} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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 rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\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 {useClickOutsideEvent} from '../../hooks'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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 {useClickOutsideEvent, useGlobalKeyDown, usePrefersReducedMotion} from '../../hooks'\nimport {useArrayProp} from '../../hooks/useArrayProp'\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=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\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/useArrayProp'\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 = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {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 'aria-labelledby'?: string\n 'onBlurCapture'?: (event: FocusEvent) => void\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: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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/useArrayProp'\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, useState, Children, isValidElement} 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\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: React.ReactElement[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: 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","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\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 {generateToastId} from './toastState'\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\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]: 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]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [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 || generateToastId()\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} 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 rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <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={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </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={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </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","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","result","t2","hash","t3","current","getGlobalScope","globalThis","window","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","Symbol","for","document","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","jsx","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","responsiveBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","card","borderStyle","width","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","boxSizing","$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","filter","Boolean","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","i","_","text","emSize","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","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","index","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","ref","accent","childrenProp","restProps","textOverflow","weight","muted","t4","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","svg","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","useEffect","t5","t6","t7","handleImageError","t8","t9","t10","initialsSize","t11","t12","jsxs","t13","Fragment","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","T0","child","childIndex","cloneElement","String","Box","marginRight","marginX","marginY","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","SpinnerIcon","_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","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","defaultVal","useArrayPropHook","_getElements","element","elementsArg","ret","el","push","useClickOutside","listener","boundaryElement","setElement","elements","setElements","elementsRef","useRef","prevElements","nextElements","includes","el_0","handleWindowMouseDown","evt","target","Node","contains","el_1","addEventListener","removeEventListener","useClickOutsideEvent","_temp","resolvedBoundaryElement","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","useDebugValue","useCustomValidity","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","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","ownerSVGElement","removePadding","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","borderTopWidth","borderRightWidth","borderBottomWidth","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","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","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","lastObservation","indexOf","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","useForwardedRef","innerRef","useImperativeHandle","useGlobalKeyDown","onKeyDown","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","CheckmarkIcon","RemoveIcon","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","innerWidth","eq","eq_0","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","state_0","nextState_0","v_0","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","useUnique","__unstable_elements","fallbackElement","emptySubscribe","_temp2","cachedValue","setCachedValue","isEqual","objA","objB","keysA","keysB","every","SrOnly","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","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","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","AnimatePresence","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","ChevronDownIcon","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","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","event_0","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","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","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","ListBox","AnimatedSpinnerIcon","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","filterOption","filterOptionProp","listBox","onQueryChange","openButton","openOnFocus","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","handleListBoxKeyDown","active","results","hidden","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","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","_zOffsetProp","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","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","Menu","_shouldFocus","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleItemClick","els","els_0","_el","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","_onItemMouseEnter","setRootElement","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","t31","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","keyframe","animation","skeletonStyle","$visible","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0","TabPanel","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","$duration","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","Toast","closable","description","cardTone","buttonTone","role","useMounted","ToastContext","toastId","generateToastId","ToastContainer","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","prevState_0","t_0","timeoutId_0","dismiss_0","id_0","params_0","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","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":"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","x_google_ignoreList":[52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]}
|
|
1
|
+
{"version":3,"file":"index.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/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// 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 const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {createContext, type Context} from 'react'\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {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, useImperativeHandle, useMemo, 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 [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {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, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {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, useRef, useSyncExternalStore} from 'react'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {forwardRef} from 'react'\nimport {styled} from '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 useMemo,\n useRef,\n} from 'react'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {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 = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n useEffect(() => {\n if (child) return\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs, child])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {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 = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const childRef = useRef<HTMLElement | null>(null)\n\n // Merge refs so that any ref we are overriding is called as well\n useImperativeHandle((childProp as any)?.ref, () => childRef.current)\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: childRef,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!child) return undefined\n\n setReferenceElement(childRef.current)\n\n return () => setReferenceElement(null)\n }, [child])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const 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} 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 rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\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=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\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 = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {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 'aria-labelledby'?: string\n 'onBlurCapture'?: (event: FocusEvent) => void\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: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {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, useState, Children, isValidElement} 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\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: React.ReactElement[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: 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","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\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 {generateToastId} from './toastState'\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\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]: 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]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [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 || generateToastId()\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} 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 rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <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={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </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={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </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","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","jsx","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","accent","childrenProp","restProps","textOverflow","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","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t6","t7","handleImageError","t8","t9","initialsSize","t10","t11","t12","jsxs","t13","Fragment","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","marginRight","marginX","marginY","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","SpinnerIcon","_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","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","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","checked","className","indeterminate","CheckmarkIcon","RemoveIcon","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","innerWidth","eq","eq_0","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","state_0","nextState_0","_temp2","v_0","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","valueRef","_isEqual","objA","objB","keysA","keysB","every","SrOnly","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","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","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","AnimatePresence","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","ChevronDownIcon","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","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","event_0","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","_temp3","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","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","ListBox","AnimatedSpinnerIcon","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","filterOption","filterOptionProp","listBox","onQueryChange","openButton","openOnFocus","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","handleListBoxKeyDown","active","results","hidden","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","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","_zOffsetProp","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","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","Menu","_shouldFocus","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleItemClick","els","els_0","_el","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","_onItemMouseEnter","setRootElement","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","t31","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","keyframe","animation","skeletonStyle","$visible","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0","TabPanel","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","$duration","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","Toast","closable","description","cardTone","buttonTone","role","useMounted","ToastContext","toastId","generateToastId","ToastContainer","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","prevState_0","t_0","timeoutId_0","dismiss_0","id_0","params_0","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","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"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]}
|