@sanity/ui 2.15.8 → 2.15.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks-cjs/_visual-editing.js +134 -134
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +134 -134
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/_visual-editing.d.mts +1 -1
- package/dist/_visual-editing.d.ts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +48 -48
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +48 -49
- package/dist/index.mjs.map +1 -1
- package/dist/theme.js +431 -40
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +393 -4
- package/dist/theme.mjs.map +1 -1
- package/exports/_visual-editing.ts +15 -15
- package/package.json +37 -33
- package/src/core/_compat.ts +11 -11
- package/src/core/components/autocomplete/__mocks__/apiStore.ts +1 -1
- package/src/core/components/autocomplete/__workshop__/async.tsx +1 -0
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -1
- package/src/core/components/autocomplete/__workshop__/custom.tsx +2 -1
- package/src/core/components/autocomplete/__workshop__/example.tsx +2 -1
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -0
- package/src/core/components/autocomplete/autocomplete.styles.tsx +2 -1
- package/src/core/components/autocomplete/autocomplete.tsx +3 -2
- package/src/core/components/autocomplete/autocompleteOption.tsx +1 -0
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +7 -0
- package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +1 -0
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +1 -0
- package/src/core/components/dialog/__workshop__/activate.tsx +2 -1
- package/src/core/components/dialog/__workshop__/panes.tsx +1 -0
- package/src/core/components/dialog/__workshop__/position.tsx +1 -0
- package/src/core/components/dialog/__workshop__/props.tsx +1 -0
- package/src/core/components/dialog/__workshop__/wrapped.tsx +1 -3
- package/src/core/components/dialog/dialog.tsx +3 -0
- package/src/core/components/dialog/dialogProvider.tsx +1 -0
- package/src/core/components/dialog/styles.ts +1 -0
- package/src/core/components/dialog/useDialog.ts +1 -0
- package/src/core/components/hotkeys/hotkeys.tsx +1 -0
- package/src/core/components/menu/__workshop__/asComponent.tsx +1 -0
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +1 -0
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +1 -0
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +1 -0
- package/src/core/components/menu/__workshop__/menuButton.tsx +1 -0
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +1 -0
- package/src/core/components/menu/__workshop__/tones.tsx +1 -0
- package/src/core/components/menu/menu.test.tsx +1 -0
- package/src/core/components/menu/menu.tsx +1 -0
- package/src/core/components/menu/menuButton.tsx +4 -3
- package/src/core/components/menu/menuGroup.tsx +1 -0
- package/src/core/components/menu/menuItem.tsx +1 -1
- package/src/core/components/menu/useMenu.ts +1 -0
- package/src/core/components/menu/useMenuController.ts +1 -0
- package/src/core/components/skeleton/__workshop__/delay.tsx +1 -0
- package/src/core/components/skeleton/__workshop__/skeleton.tsx +1 -0
- package/src/core/components/skeleton/skeleton.tsx +2 -2
- package/src/core/components/skeleton/textSkeleton.tsx +3 -2
- package/src/core/components/tab/tab.tsx +1 -0
- package/src/core/components/tab/tabList.tsx +2 -1
- package/src/core/components/tab/tabPanel.tsx +1 -0
- package/src/core/components/toast/__workshop__/toast.tsx +1 -0
- package/src/core/components/toast/styles.ts +2 -1
- package/src/core/components/toast/toast.tsx +4 -4
- package/src/core/components/toast/toastLayer.tsx +1 -0
- package/src/core/components/toast/toastProvider.tsx +1 -0
- package/src/core/components/toast/useToast.ts +1 -0
- package/src/core/components/tree/__workshop__/basic.tsx +1 -0
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +2 -1
- package/src/core/components/tree/style.ts +1 -0
- package/src/core/components/tree/tree.tsx +1 -0
- package/src/core/components/tree/treeGroup.tsx +1 -0
- package/src/core/components/tree/treeItem.tsx +3 -2
- package/src/core/components/tree/useTree.ts +1 -0
- package/src/core/helpers/focus.ts +2 -2
- package/src/core/hooks/useArrayProp.ts +1 -0
- package/src/core/hooks/useClickOutside.test.tsx +0 -1
- package/src/core/hooks/useClickOutside.ts +1 -0
- package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -1
- package/src/core/hooks/useClickOutsideEvent.ts +1 -0
- package/src/core/hooks/useDelayed.test.ts +2 -1
- package/src/core/hooks/useDelayedState.ts +1 -2
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -0
- package/src/core/hooks/useElementSize.ts +2 -1
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +2 -1
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +1 -0
- package/src/core/hooks/usePrefersDark.test.tsx +2 -1
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +2 -1
- package/src/core/index.ts +1 -2
- package/src/core/lib/createGlobalScopedContext.ts +2 -1
- package/src/core/primitives/_selectable/selectable.tsx +1 -0
- package/src/core/primitives/_selectable/style.ts +1 -0
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +1 -0
- package/src/core/primitives/avatar/__workshop__/stack.tsx +1 -0
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +1 -0
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -0
- package/src/core/primitives/avatar/avatar.tsx +2 -7
- package/src/core/primitives/avatar/avatarCounter.tsx +3 -2
- package/src/core/primitives/avatar/avatarStack.tsx +3 -2
- package/src/core/primitives/avatar/styles.ts +2 -1
- package/src/core/primitives/avatar/types.ts +1 -0
- package/src/core/primitives/badge/__workshop__/props.tsx +1 -0
- package/src/core/primitives/badge/__workshop__/tones.tsx +1 -0
- package/src/core/primitives/badge/badge.test.tsx +1 -0
- package/src/core/primitives/badge/badge.tsx +1 -0
- package/src/core/primitives/badge/styles.ts +1 -0
- package/src/core/primitives/box/__workshop__/props.tsx +1 -0
- package/src/core/primitives/box/box.tsx +3 -2
- package/src/core/primitives/button/__workshop__/custom.tsx +3 -0
- package/src/core/primitives/button/__workshop__/disabled.tsx +1 -0
- package/src/core/primitives/button/__workshop__/props.tsx +2 -1
- package/src/core/primitives/button/__workshop__/stacked.tsx +1 -0
- package/src/core/primitives/button/button.test.tsx +1 -0
- package/src/core/primitives/button/button.tsx +1 -0
- package/src/core/primitives/button/styles.ts +1 -0
- package/src/core/primitives/card/__workshop__/asButton.tsx +1 -0
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +1 -0
- package/src/core/primitives/card/__workshop__/props.tsx +3 -1
- package/src/core/primitives/card/__workshop__/selected.tsx +2 -2
- package/src/core/primitives/card/card.tsx +1 -0
- package/src/core/primitives/card/styles.ts +1 -0
- package/src/core/primitives/checkbox/checkbox.tsx +1 -0
- package/src/core/primitives/checkbox/styles.ts +1 -0
- package/src/core/primitives/code/__workshop__/props.tsx +1 -0
- package/src/core/primitives/code/code.tsx +2 -1
- package/src/core/primitives/container/__workshop__/example.tsx +1 -0
- package/src/core/primitives/container/container.tsx +1 -0
- package/src/core/primitives/container/styles.ts +2 -1
- package/src/core/primitives/flex/__workshop__/example.tsx +1 -0
- package/src/core/primitives/flex/flex.tsx +2 -1
- package/src/core/primitives/grid/grid.tsx +1 -0
- package/src/core/primitives/heading/__workshop__/plain.tsx +2 -1
- package/src/core/primitives/heading/heading.tsx +1 -0
- package/src/core/primitives/heading/styles.ts +1 -0
- package/src/core/primitives/inline/__workshop__/plain.tsx +1 -0
- package/src/core/primitives/inline/inline.tsx +2 -1
- package/src/core/primitives/inline/styles.ts +2 -1
- package/src/core/primitives/kbd/kbd.tsx +2 -1
- package/src/core/primitives/label/__workshop__/plain.tsx +2 -1
- package/src/core/primitives/label/label.tsx +1 -0
- package/src/core/primitives/label/styles.ts +1 -0
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +1 -0
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +1 -0
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +1 -0
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +4 -1
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +1 -0
- package/src/core/primitives/popover/floating-ui/size.ts +2 -1
- package/src/core/primitives/popover/popover.tsx +6 -7
- package/src/core/primitives/popover/popoverCard.tsx +2 -1
- package/src/core/primitives/radio/radio.tsx +2 -1
- package/src/core/primitives/radio/styles.ts +1 -0
- package/src/core/primitives/select/select.tsx +2 -1
- package/src/core/primitives/select/styles.ts +3 -3
- package/src/core/primitives/spinner/__workshop__/Props.tsx +1 -0
- package/src/core/primitives/spinner/spinner.tsx +2 -1
- package/src/core/primitives/stack/__workshop__/plain.tsx +1 -0
- package/src/core/primitives/stack/stack.tsx +2 -1
- package/src/core/primitives/stack/styles.ts +2 -1
- package/src/core/primitives/switch/styles.ts +1 -0
- package/src/core/primitives/switch/switch.tsx +2 -1
- package/src/core/primitives/text/__workshop__/colored.tsx +3 -2
- package/src/core/primitives/text/__workshop__/example.tsx +1 -0
- package/src/core/primitives/text/styles.ts +1 -0
- package/src/core/primitives/text/text.tsx +1 -0
- package/src/core/primitives/textArea/__workshop__/plain.tsx +1 -0
- package/src/core/primitives/textArea/textArea.tsx +6 -5
- package/src/core/primitives/textInput/__workshop__/plain.tsx +2 -1
- package/src/core/primitives/textInput/__workshop__/typed.tsx +1 -0
- package/src/core/primitives/textInput/textInput.tsx +1 -0
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +1 -0
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +1 -0
- package/src/core/primitives/tooltip/__workshop__/props.tsx +3 -2
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -0
- package/src/core/primitives/tooltip/tooltip.test.tsx +4 -2
- package/src/core/primitives/tooltip/tooltip.tsx +6 -5
- package/src/core/primitives/tooltip/tooltipCard.tsx +2 -1
- package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +1 -1
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +1 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -0
- package/src/core/styles/border/borderStyle.ts +1 -0
- package/src/core/styles/box/boxStyle.ts +1 -0
- package/src/core/styles/card/_cardColorStyle.ts +1 -2
- package/src/core/styles/flex/flexItemStyle.ts +1 -0
- package/src/core/styles/flex/flexStyle.ts +2 -1
- package/src/core/styles/flex/index.ts +1 -1
- package/src/core/styles/flex/types.ts +1 -0
- package/src/core/styles/font/codeFontStyle.ts +1 -0
- package/src/core/styles/font/headingFontStyle.ts +1 -0
- package/src/core/styles/font/labelFontStyle.ts +1 -0
- package/src/core/styles/font/responsiveFont.ts +3 -3
- package/src/core/styles/font/textAlignStyle.ts +1 -0
- package/src/core/styles/font/textFontStyle.ts +1 -0
- package/src/core/styles/font/types.ts +1 -0
- package/src/core/styles/grid/gridItemStyle.ts +1 -0
- package/src/core/styles/grid/gridStyle.ts +2 -1
- package/src/core/styles/grid/index.ts +1 -1
- package/src/core/styles/helpers.ts +2 -2
- package/src/core/styles/input/responsiveInputPaddingStyle.ts +2 -1
- package/src/core/styles/input/textInputStyle.ts +3 -3
- package/src/core/styles/margin/marginStyle.ts +1 -0
- package/src/core/styles/margin/marginsStyle.test.ts +1 -0
- package/src/core/styles/padding/paddingStyle.test.ts +1 -0
- package/src/core/styles/padding/paddingStyle.ts +1 -0
- package/src/core/styles/radius/radiusStyle.ts +1 -0
- package/src/core/styles/shadow/shadowStyle.ts +3 -3
- package/src/core/theme/__workshop__/build/Root.tsx +1 -1
- package/src/core/theme/__workshop__/build/story.tsx +18 -9
- package/src/core/theme/__workshop__/canvas.tsx +7 -6
- package/src/core/theme/__workshop__/debug/story.tsx +5 -3
- package/src/core/theme/index.ts +1 -1
- package/src/core/theme/theme.test.tsx +1 -0
- package/src/core/theme/themeColorProvider.tsx +1 -0
- package/src/core/theme/themeProvider.tsx +3 -2
- package/src/core/theme/useRootTheme.ts +1 -0
- package/src/core/theme/useTheme.ts +1 -1
- package/src/core/utils/arrow/arrow.tsx +4 -3
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +1 -0
- package/src/core/utils/boundaryElement/index.ts +1 -1
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +1 -0
- package/src/core/utils/elementQuery/elementQuery.tsx +1 -0
- package/src/core/utils/errorBoundary.tsx +1 -0
- package/src/core/utils/layer/__workshop__/multipleRoots.tsx +1 -0
- package/src/core/utils/layer/__workshop__/nested.tsx +1 -0
- package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +1 -0
- package/src/core/utils/layer/index.ts +1 -1
- package/src/core/utils/layer/layer.tsx +1 -0
- package/src/core/utils/layer/layerProvider.tsx +2 -1
- package/src/core/utils/layer/useLayer.ts +1 -0
- package/src/core/utils/portal/portal.ts +1 -0
- package/src/core/utils/portal/portalProvider.tsx +1 -0
- package/src/core/utils/portal/usePortal.ts +1 -0
- package/src/core/utils/virtualList/virtualList.tsx +1 -0
- package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +1 -1
- package/src/theme/build/_deprecated/color/card/createCardStates.ts +1 -1
- package/src/theme/build/_deprecated/color/factory.ts +6 -6
- package/src/theme/build/buildColorTheme.ts +15 -15
- package/src/theme/build/colorToken/colorToken.ts +1 -1
- package/src/theme/build/mixThemeColor.ts +1 -1
- package/src/theme/build/renderColorTheme.ts +7 -6
- package/src/theme/build/renderColorValue.ts +3 -2
- package/src/theme/build/resolveColorTokens.ts +5 -4
- package/src/theme/config/helpers.ts +2 -2
- package/src/theme/config/system.ts +2 -1
- package/src/theme/config/tokens/color/types.ts +2 -1
- package/src/theme/config/tokens/types.ts +2 -1
- package/src/theme/config/types.ts +2 -1
- package/src/theme/system/color/_helpers.ts +1 -0
- package/src/theme/system/color/_system.ts +1 -1
- package/src/theme/system/color/color.ts +1 -1
- package/src/theme/system/index.ts +1 -2
- package/src/theme/system/theme.ts +2 -2
- package/src/theme/system/v0/color/index.ts +1 -1
- package/src/theme/system/v0/index.ts +1 -1
- package/src/theme/versioning/themeColor_v0_v2.ts +5 -5
- package/dist/_chunks-cjs/getTheme_v2.js +0 -397
- package/dist/_chunks-cjs/getTheme_v2.js.map +0 -1
- package/dist/_chunks-es/getTheme_v2.mjs +0 -398
- package/dist/_chunks-es/getTheme_v2.mjs.map +0 -1
- package/src/core/__workshop__/fontsPlugin.tsx +0 -76
- /package/src/core/components/autocomplete/{__fixtures__ → __mocks__}/countries.ts +0 -0
- /package/src/core/primitives/kbd/{index.tsx → index.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_visual-editing.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/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/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/utils/spanWithTextOverflow.tsx","../../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/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/useLayer.ts","../../src/core/helpers/element.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/utils/getElementRef.ts","../../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/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.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/tab/tab.tsx","../../src/core/components/tab/tabList.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 type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","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 {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])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\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 {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://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","/**\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.JSX.Element {\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.JSX.Element {\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 {styled} from 'styled-components'\n\n/** @internal */\nexport const SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\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 {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.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 StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\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 <StyledLabel\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 </StyledLabel>\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 React.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 StyledAvatar = 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 AvatarImage = 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 <StyledAvatar\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 <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <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 </AvatarImage>\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 </StyledAvatar>\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 StyledAvatarCounter = 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 <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </StyledAvatarCounter>\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 StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\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.JSX.Element[] = 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 <StyledAvatarStack 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 </StyledAvatarStack>\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 React.JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof React.JSX.IntrinsicElements\n}\n\nconst StyledBox = 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 <StyledBox\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 </StyledBox>\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 {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.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 StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\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 <StyledText\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 </StyledText>\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 React.JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst StyledBadge = 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 <StyledBadge\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 </StyledBadge>\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 StyledFlex = 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 <StyledFlex\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 StyledSpinner = 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 <StyledSpinner data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </StyledSpinner>\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-neutral-bg-color': color.badge.neutral?.bg,\n '--card-badge-neutral-dot-color': color.badge.neutral?.dot,\n '--card-badge-neutral-fg-color': color.badge.neutral?.fg,\n '--card-badge-neutral-icon-color': color.badge.neutral?.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-suggest-bg-color': color.badge.suggest?.bg,\n '--card-badge-suggest-dot-color': color.badge.suggest?.dot,\n '--card-badge-suggest-fg-color': color.badge.suggest?.fg,\n '--card-badge-suggest-icon-color': color.badge.suggest?.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 {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {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 React.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 muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst StyledButton = 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 textWeight,\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 <StyledButton\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={textWeight ?? 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 </StyledButton>\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 StyledCard = 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 <StyledCard\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 StyledCheckbox = 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 <StyledCheckbox 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 </StyledCheckbox>\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","import {forwardRef, Suspense, lazy} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst StyledCode = 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, size = 2, weight, ...restProps} = props\n\n return (\n <StyledCode data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </StyledCode>\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 StyledContainer = 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 <StyledContainer\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 StyledGrid = 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 <StyledGrid\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 </StyledGrid>\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 {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\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 React.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 StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\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 <StyledHeading\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 </StyledHeading>\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 StyledInline = 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 <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\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 React.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 StyledKBD = 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 <StyledKBD 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 </StyledKBD>\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, forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst StyledArrow = 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): React.JSX.Element {\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 <StyledArrow {...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 </StyledArrow>\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.JSX.Element {\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 React.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 {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 _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","/**\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.JSX.Element {\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 React.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 React.JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst StyledLayer = 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 <StyledLayer\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </StyledLayer>\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.JSX.Element {\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 React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst StyledSrOnly = 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 <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </StyledSrOnly>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {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 React.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 StyledVirtualList = 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.JSX.Element {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<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 <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {Placement, 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 {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {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.create(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n will-change: transform;\n`\n\nconst MotionFlex = styled(motion.create(Flex))`\n will-change: opacity;\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 variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <MotionFlex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n overflow={overflow}\n variants={POPOVER_MOTION_PROPS.children}\n transition={POPOVER_MOTION_PROPS.transition}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </MotionFlex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","import {\n 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, useLayer} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\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.JSX.Element\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 /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n 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\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.JSX.Element {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: 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>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n 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","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 StyledRadio = 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 <StyledRadio 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 </StyledRadio>\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 StyledSelect = 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 <StyledSelect 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 </StyledSelect>\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 React.JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <StyledStack\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 StyledSwitch = 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 <StyledSwitch 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 </StyledSwitch>\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 StyledTextArea = 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 <StyledTextArea 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 </StyledTextArea>\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 responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\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 | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\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 StyledTextInput = 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 <StyledTextInput 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 </StyledTextInput>\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>(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 {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {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.create(Card))`\n will-change: transform;\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 variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n {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.JSX.Element {\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","import {\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 {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\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 StyledTooltip = 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 elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const 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 useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <StyledTooltip\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 </StyledTooltip>\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 }, [showTooltip])\n}\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 StyledHotkeys = 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 <StyledHotkeys 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 </StyledHotkeys>\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 StyledMenu = 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 <StyledMenu\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 </StyledMenu>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\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, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n menu?: Omit<\n MenuProps,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: 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.JSX.Element {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n 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 {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: 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 React.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 role=\"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 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 {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.JSX.Element | 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.JSX.Element[] = 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"],"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_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","children","type","visualDuration","bounce","_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","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","Node","resolvedBoundaryElement","contains","elements","flat","el","onEvent","useEffectEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","window","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","element","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","Symbol","for","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","jsx","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","index","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","borderTop","borderRight","borderBottom","borderLeft","borderStyle","$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","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","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","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","StyledAvatar","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","AvatarImage","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","t5","t6","t7","handleImageError","t8","t9","initialsSize","t10","t11","t12","jsxs","t13","Fragment","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","T0","child","childIndex","cloneElement","String","StyledBox","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","StyledText","Text","badgeStyle","verticalAlign","StyledBadge","Badge","mode","_deprecated_mode","StyledFlex","Flex","rotate","keyframes","StyledSpinner","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","neutral","primary","suggest","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","StyledButton","LoadingBox","Button","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","textWeight","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","useRef","useImperativeHandle","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","LazyRefractor","lazy","StyledCode","pre","Code","language","Suspense","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","includes","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","useLayer","err","message","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_isScrollable","Element","getComputedStyle","overflowX","overflowY","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","state_0","nextState_0","_temp2","v_0","v","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","top","wrapperStyle","_scrollEl","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","MotionFlex","PopoverCard","memo","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","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","AnimatePresence","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","StyledStack","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","StyledSwitch","Representation","Track","Thumb","Switch","StyledTextArea","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","StyledTextInput","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","focus","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","StyledTooltip","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","offsetWidth","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","StyledMenu","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","menuProps","menu","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","t31","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","CustomButton","Tab","focused","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_visual-editing.js","sources":["../../src/core/_compat.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/helpers/scroll.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/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/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/flexItemStyle.ts","../../src/core/styles/flex/flexStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/styles/grid/gridItemStyle.ts","../../src/core/styles/grid/gridStyle.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/utils/spanWithTextOverflow.tsx","../../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/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/useLayer.ts","../../src/core/utils/layer/layer.tsx","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.ts","../../src/core/utils/portal/portalProvider.tsx","../../src/core/utils/srOnly/srOnly.tsx","../../src/core/utils/virtualList/virtualList.tsx","../../src/core/utils/getElementRef.ts","../../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/tooltipDelayGroupProvider.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.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/tab/tab.tsx","../../src/core/components/tab/tabList.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 buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","/**\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 {CSSObject, getTheme_v2, Theme} from '@sanity/ui/theme'\n\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 {CSSObject, getTheme_v2, ThemeFontKey, ThemeFontSize} from '@sanity/ui/theme'\n\nimport {_responsive, rem} 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'\n\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'\n\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'\n\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'\n\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'\n\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'\n\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 {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, ElementSize} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://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","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.JSX.Element {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\n\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.JSX.Element {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {getTheme_v2, Theme, Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\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'\n\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'\n\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'\n\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 {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} 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 {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'\n\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'\n\nimport {_responsive, rem} 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'\n\nimport {_responsive, rem} 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 {CSSObject, getTheme_v2, ThemeColorSchemeKey, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {_responsive, rem} 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'\n\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'\n\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'\n\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 {CSSObject, getTheme_v2, ThemeBoxShadow, ThemeShadow} from '@sanity/ui/theme'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_responsive, rem} 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 {styled} from 'styled-components'\n\n/** @internal */\nexport const SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.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 StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\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 <StyledLabel\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 </StyledLabel>\n )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, 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'\n\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 React.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 StyledAvatar = 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 AvatarImage = 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 <StyledAvatar\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 <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\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 </AvatarImage>\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 </StyledAvatar>\n )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {_responsive, rem, 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 StyledAvatarCounter = 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 <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {_responsive, rem, 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 StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\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.JSX.Element[] = 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 <StyledAvatarStack 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 </StyledAvatarStack>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\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 React.JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof React.JSX.IntrinsicElements\n}\n\nconst StyledBox = 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 <StyledBox\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 </StyledBox>\n )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.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 StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\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 <StyledText\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 </StyledText>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\n\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'\n\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 React.JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst StyledBadge = 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 <StyledBadge\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 </StyledBadge>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexItemProps, ResponsiveFlexProps} 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 StyledFlex = 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 <StyledFlex\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 {keyframes, styled} from 'styled-components'\n\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 StyledSpinner = 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 <StyledSpinner data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </StyledSpinner>\n )\n})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {CSSObject, ThemeColorCard_v2, ThemeColorState_v2} 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-neutral-bg-color': color.badge.neutral?.bg,\n '--card-badge-neutral-dot-color': color.badge.neutral?.dot,\n '--card-badge-neutral-fg-color': color.badge.neutral?.fg,\n '--card-badge-neutral-icon-color': color.badge.neutral?.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-suggest-bg-color': color.badge.suggest?.bg,\n '--card-badge-suggest-dot-color': color.badge.suggest?.dot,\n '--card-badge-suggest-fg-color': color.badge.suggest?.fg,\n '--card-badge-suggest-icon-color': color.badge.suggest?.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'\n\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 {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\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 React.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 muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst StyledButton = 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 textWeight,\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 <StyledButton\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={textWeight ?? 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 </StyledButton>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\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 StyledCard = 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 <StyledCard\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'\n\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'\n\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 StyledCheckbox = 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 <StyledCheckbox 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 </StyledCheckbox>\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","import {forwardRef, lazy, Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst StyledCode = 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, size = 2, weight, ...restProps} = props\n\n return (\n <StyledCode data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </StyledCode>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, 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'\n\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 StyledContainer = 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 <StyledContainer\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'\n\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 StyledGrid = 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 <StyledGrid\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 </StyledGrid>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\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 React.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 StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\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 <StyledHeading\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 </StyledHeading>\n )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, 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 {Children, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\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 StyledInline = 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 <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\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 React.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 StyledKBD = 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 <StyledKBD 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 </StyledKBD>\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, forwardRef, HTMLProps} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {useTheme_v2} from '../../theme'\nimport {compileCommands, getRoundedCommands, Point} from './cmds'\n\nconst StyledArrow = 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): React.JSX.Element {\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 <StyledArrow {...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 </StyledArrow>\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'\n\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.JSX.Element {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\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'\n\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 React.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 {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 {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useArrayProp, useMediaIndex} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\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 React.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 React.JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst StyledLayer = 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 <StyledLayer\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </StyledLayer>\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'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\n\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'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: 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.JSX.Element {\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 React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst StyledSrOnly = 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 <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </StyledSrOnly>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\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 React.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 StyledVirtualList = 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.JSX.Element {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<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 <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, Elements, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {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 {motion, type MotionProps} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {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.create(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n will-change: transform;\n`\n\nconst MotionFlex = styled(motion.create(Flex))`\n will-change: opacity;\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 variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <MotionFlex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n overflow={overflow}\n variants={POPOVER_MOTION_PROPS.children}\n transition={POPOVER_MOTION_PROPS.transition}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </MotionFlex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n memo,\n MutableRefObject,\n RefCallback,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\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, useLayer} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\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.JSX.Element\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 /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n 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\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.JSX.Element {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: 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>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n 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","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {useCustomValidity} from '../../hooks'\nimport {inputElementStyle, radioBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = 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 <StyledRadio 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 </StyledRadio>\n )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {CSSObject, getTheme_v2, ThemeFontSize} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, rem, 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'\n\nimport {useArrayProp, useCustomValidity} 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 StyledSelect = 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 <StyledSelect 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 </StyledSelect>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, 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'\n\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <StyledStack\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'\n\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'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = 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 <StyledSwitch 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 </StyledSwitch>\n )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\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 StyledTextArea = 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 <StyledTextArea 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 </StyledTextArea>\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'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\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 | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\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 StyledTextInput = 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 <StyledTextInput 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 </StyledTextInput>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","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 {motion, type MotionProps} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {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.create(Card))`\n will-change: transform;\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 variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n {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 {useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: 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.JSX.Element {\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","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\n\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 {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\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 StyledTooltip = 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 elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const 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 useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <StyledTooltip\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 </StyledTooltip>\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 }, [showTooltip])\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\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 StyledHotkeys = 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 <StyledHotkeys 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 </StyledHotkeys>\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'\n\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'\n\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 StyledMenu = 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 <StyledMenu\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 </StyledMenu>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\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'\n\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'\n\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'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\n\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, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n menu?: Omit<\n MenuProps,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: 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.JSX.Element {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n 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 {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: 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'\n\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 React.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 role=\"menuitem\"\n {...restProps}\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 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 {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\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 {Children, cloneElement, forwardRef, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.JSX.Element | 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.JSX.Element[] = 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"],"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_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","children","type","visualDuration","bounce","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_isScrollable","el","Element","style","window","getComputedStyle","overflowX","includes","overflowY","_fillCSSObject","keys","value","reduce","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","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","Symbol","for","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","jsx","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","index","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","borderTop","borderRight","borderBottom","borderLeft","borderStyle","$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","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","join","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","auto","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","GRID_CSS","GRID_AUTO_COLUMS","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","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","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","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","StyledAvatar","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","AvatarImage","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","t5","t6","t7","handleImageError","t8","t9","initialsSize","t10","t11","t12","jsxs","t13","Fragment","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","T0","child","childIndex","cloneElement","String","StyledBox","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","StyledText","Text","badgeStyle","verticalAlign","StyledBadge","Badge","mode","_deprecated_mode","StyledFlex","Flex","rotate","keyframes","StyledSpinner","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","neutral","primary","suggest","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","StyledButton","LoadingBox","Button","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","textWeight","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","useRef","useImperativeHandle","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","LazyRefractor","lazy","StyledCode","pre","Code","language","Suspense","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","top","wrapperStyle","_scrollEl","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","MotionFlex","PopoverCard","memo","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","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","AnimatePresence","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","StyledStack","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","StyledSwitch","Representation","Track","Thumb","Switch","StyledTextArea","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","StyledTextInput","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","focus","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","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","StyledTooltip","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","offsetWidth","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","StyledMenu","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","menuProps","menu","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","t31","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","CustomButton","Tab","focused","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
|