@sanity/ui 3.5.0 → 3.5.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portalProvider.js","names":["buildTheme","HSL","_HSL","RGB","_RGB","ThemeColorButtonModeKey","_ThemeColorButtonModeKey","ThemeColorSchemeKey","_ThemeColorSchemeKey","ThemeColorSyntax","_ThemeColorSyntax","ThemeFont","_ThemeFont","ThemeFontKey","_ThemeFontKey","ThemeFonts","_ThemeFonts","ThemeFontSize","_ThemeFontSize","ThemeFontWeight","_ThemeFontWeight","ThemeFontWeightKey","_ThemeFontWeightKey","ThemeLayer","_ThemeLayer","ThemeBoxShadow","ThemeShadow","_ThemeShadow","ThemeStyles","BaseTheme","_BaseTheme","RootTheme","_RootTheme","Theme","_Theme","BoxShadow","Styles","createColorTheme","_createColorTheme","multiply","_multiply","screen","_screen","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","parseColor","_parseColor","rgba","_rgba","studioTheme","Transition","Variant","EMPTY_ARRAY","EMPTY_RECORD","Record","POPOVER_MOTION_DURATION","POPOVER_MOTION_PROPS","card","initial","hidden","visible","scaleIn","scaleOut","children","transition","scale","willChange","opacity","when","duration","type","visualDuration","bounce","_isEnterToClickElement","element","HTMLElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","HTMLAnchorElement","nodeName","isHTMLInputElement","HTMLInputElement","HTMLButtonElement","isHTMLSelectElement","HTMLSelectElement","isHTMLTextAreaElement","HTMLTextAreaElement","containsOrEqualsElement","contains","CSSObject","Theme","getTheme_v2","EMPTY_ARRAY","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","T","callback","index","array","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","spaceIndex","Property","CSSObject","getTheme_v2","_responsive","ThemeProps","ResponsiveBoxStyleProps","BASE_STYLE","listStyle","BOX_SIZING","key","BoxSizing","content","border","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","Array","props","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","media","theme","$display","display","$sizing","sizing","boxSizing","$height","height","$overflow","overflow","CSSObject","getTheme_v2","EMPTY_ARRAY","_responsive","ThemeProps","ResponsiveFlexItemStyleProps","BASE_STYLE","minWidth","minHeight","flexItemStyle","Array","props","responsiveFlexItemStyle","media","theme","$flex","flex","CSSObject","getTheme_v2","_responsive","ThemeProps","ResponsiveGridItemStyleProps","responsiveGridItemStyle","Array","props","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","auto","full","GRID_ITEM_COLUMN","media","theme","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","CSSObject","_getResponsiveSpace","ThemeProps","ResponsiveMarginStyleProps","responsiveMarginStyle","props","theme","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","filter","Boolean","CSSObject","_getResponsiveSpace","ThemeProps","ResponsivePaddingStyleProps","responsivePaddingStyle","props","theme","$padding","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","filter","Boolean","forwardRef","styled","boxStyle","responsiveBoxStyle","ResponsiveBoxStyleProps","flexItemStyle","FlexItemStyleProps","responsiveGridItemStyle","ResponsiveGridItemStyleProps","_getArrayProp","responsiveMarginStyle","ResponsiveMarginStyleProps","responsivePaddingStyle","ResponsivePaddingStyleProps","ElementType","Props","ResponsiveBoxProps","ResponsiveFlexItemProps","ResponsiveGridItemProps","ResponsiveMarginProps","ResponsivePaddingProps","BoxOwnProps","forwardedAs","BoxProps","E","StyledBox","div","BoxComponent","Box","props","ref","$","_c","deprecated_column","deprecated_columnEnd","deprecated_columnStart","deprecated_row","deprecated_rowEnd","deprecated_rowStart","flex","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","height","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","overflow","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","restProps","sizing","t0","t1","t2","t3","as","column","columnStart","columnEnd","display","margin","padding","row","rowStart","rowEnd","asProp","undefined","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","children","React","JSX","Element","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveRadiusStyleProps","responsiveRadiusStyle","props","media","radius","theme","$radius","value","borderRadius","useTheme","useStyledTheme","Theme","Theme_v2","getTheme_v2","useTheme_v2","$","_c","t0","t1","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveFlexStyleProps","BASE_STYLE","display","responsiveFlexStyle","Array","props","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","media","theme","$align","align","alignItems","space","$gap","gap","undefined","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","forwardRef","styled","flexItemStyle","responsiveFlexStyle","FlexItemStyleProps","ResponsiveFlexStyleProps","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveFlexItemProps","ResponsiveFlexProps","FlexOwnProps","Omit","gap","FlexProps","E","StyledFlex","FlexComponent","Flex","props","ref","$","_c","align","as","justify","restProps","t0","wrap","direction","undefined","t1","t2","t3","t4","t5","t6","React","JSX","Element","CSSObject","getTheme_v2","_responsive","ThemeProps","ResponsiveTextAlignStyleProps","responsiveTextAlignStyle","props","media","theme","$align","textAlign","CSSObject","ThemeFontKey","ThemeFontSize","getTheme_v2","_responsive","rem","ThemeProps","FontWeightStyleProps","ResponsiveFontSizeStyleProps","responsiveFont","fontKey","props","$size","$weight","font","media","theme","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","CSSObject","ThemeProps","responsiveFont","ResponsiveFontStyleProps","responsiveTextFont","props","styled","SpanWithTextOverflow","span","css","getTheme_v2","ThemeProps","textBaseStyle","props","$accent","$muted","ReturnType","font","theme","code","family","text","weights","bold","forwardRef","styled","ThemeFontWeightKey","responsiveTextAlignStyle","responsiveTextFont","ResponsiveFontStyleProps","_getArrayProp","ElementType","Props","TextAlign","SpanWithTextOverflow","textBaseStyle","TextOwnProps","accent","align","muted","size","textOverflow","weight","TextProps","E","StyledText","div","TextComponent","Text","props","ref","$","_c","childrenProp","restProps","t0","t1","t2","children","undefined","t3","t4","t5","t6","React","JSX","Element","SpinnerIcon","forwardRef","keyframes","styled","Text","SpinnerProps","muted","size","rotate","StyledSpinner","Spinner","props","ref","$","_c","t0","Symbol","for","t1","ThemeColorCard_v2","ThemeColorState_v2","CSSObject","_cardColorStyle","base","color","checkered","backdrop","focusRing","shadow","outline","umbra","penumbra","ambient","accent","fg","avatar","gray","bg","blue","purple","magenta","red","orange","yellow","green","cyan","muted","undefined","border","badge","default","dot","icon","neutral","primary","suggest","positive","caution","critical","code","kbd","link","skeleton","from","to","ThemeFocusRing","focusRingBorderStyle","border","color","width","focusRingStyle","opts","base","bg","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","filter","Boolean","join","css","CSSObject","getTheme_v2","_cardColorStyle","focusRingBorderStyle","focusRingStyle","ThemeProps","ButtonMode","ButtonTone","ButtonWidth","buttonBaseStyles","props","$width","ReturnType","style","theme","button","combineBoxShadow","boxShadows","filter","Boolean","join","buttonColorStyles","$mode","$tone","color","baseColor","shadow","mode","default","border","width","defaultBoxShadow","undefined","enabled","disabled","boxShadow","base","bg","focusRing","hovered","pressed","root","forwardRef","isValidElement","useMemo","isValidElementType","styled","ThemeFontWeightKey","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useTheme_v2","ButtonMode","ButtonTextAlign","ButtonTone","ButtonWidth","ElementType","Props","FlexJustify","Box","Flex","Spinner","Text","ResponsivePaddingProps","ResponsiveRadiusProps","buttonBaseStyles","buttonColorStyles","ButtonOwnProps","fontSize","mode","icon","React","ReactNode","iconRight","justify","loading","selected","space","gap","muted","text","textAlign","textWeight","tone","type","width","ButtonProps","E","StyledButton","button","$mode","$tone","$width","LoadingBox","div","ButtonComponent","Button","props","ref","$","_c","IconComponent","IconRightComponent","children","disabled","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","restProps","t0","t1","t2","t3","t4","t5","t6","t7","t8","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","radius","undefined","justifyProp","paddingProp","radiusProp","deprecated_space","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","spacing","t20","boxProps","t21","Boolean","t22","t23","t24","t25","t26","t27","JSX","Element","CSSObject","getTheme_v2","_responsive","ThemeProps","ResponsiveBorderStyleProps","responsiveBorderStyle","Array","props","border","borderTop","borderRight","borderBottom","borderLeft","card","media","theme","borderStyle","width","$border","value","$borderTop","$borderRight","$borderBottom","$borderLeft","CSSObject","ThemeBoxShadow","ThemeShadow","getTheme_v2","EMPTY_RECORD","_responsive","rem","ThemeProps","ResponsiveShadowStyleProps","toBoxShadow","shadow","color","map","join","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","props","card","media","theme","$shadow","index","getGlobalScope","globalThis","window","self","global","Error","globalScope","Context","createContext","globalScope","createGlobalScopedContext","ContextType","key","defaultValue","T","symbol","Symbol","for","document","context","displayName","createGlobalScopedContext","ThemeContextValue","ThemeContext","useContext","useMemo","ThemeProvider","StyledThemeProvider","getScopedTheme","ThemeColorCardToneKey","ThemeColorSchemeKey","RootTheme","Theme","ThemeContext","ThemeContextValue","ThemeProviderProps","children","React","ReactNode","scheme","theme","tone","props","$","_c","parentTheme","rootTheme","t0","bb0","t1","version","themeContext","bb1","t2","Symbol","for","t3","useContext","ThemeContext","ThemeContextValue","useRootTheme","value","Error","ThemeColorCardToneKey","ThemeColorSchemeKey","ThemeProvider","useRootTheme","ThemeColorProviderProps","children","React","ReactNode","scheme","tone","ThemeColorProvider","props","$","_c","root","t0","t1","theme","css","getTheme_v2","_cardColorStyle","focusRingStyle","ThemeProps","CardStyleProps","cardStyle","props","Array","ReturnType","cardBaseStyle","cardColorStyle","$checkered","space","theme","$focusRing","$muted","card","color","style","border","width","_dark","selectable","default","disabled","pressed","selected","hovered","base","focusRing","undefined","root","forwardRef","isValidElementType","styled","ThemeColorSchemeKey","responsiveBorderStyle","ResponsiveBorderStyleProps","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","responsiveShadowStyle","ResponsiveShadowStyleProps","ThemeColorProvider","useRootTheme","CardTone","ElementType","Props","Box","BoxOwnProps","ResponsiveBorderProps","ResponsiveRadiusProps","ResponsiveShadowProps","cardStyle","CardStyleProps","CardOwnProps","__unstable_checkered","__unstable_focusRing","disabled","muted","pressed","scheme","selected","tone","CardProps","E","StyledCard","CardComponent","Card","props","ref","$","_c","asProp","border","borderBottom","borderLeft","borderRight","borderTop","restProps","shadow","t0","t1","t2","t3","as","radius","checkered","undefined","focusRing","toneProp","rootTheme","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","React","JSX","Element","ResizeObserverPolyfill","_ResizeObserver","ElementRectValue","width","height","ElementSize","content","border","_contentRect","DOMRectReadOnly","_ElementSizeSubscriber","elementRect","_ElementSizeObserver","subscribe","element","HTMLElement","subscriber","_ElementSizeListener","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","resizeObserver","entry","contentRect","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","listener","sub","push","idx","indexOf","splice","length","useEffect","useState","_elementSizeObserver","ElementSize","useElementSize","element","$","_c","size","setSize","t0","t1","subscribe","useMemo","useSyncExternalStore","useTheme_v2","_MediaStore","subscribe","onStoreChange","getSnapshot","MediaQueryMinWidth","MediaQueryMaxWidth","MediaQueryMinMaxWidth","MediaQuery","_getMediaQuery","media","index","length","_createMediaStore","mediaLen","sizes","mq","MediaQueryList","getSizes","mediaQuery","push","window","matchMedia","matches","disposeFns","handleChange","addEventListener","removeEventListener","disposeFn","getServerSnapshot","useMediaIndex","$","_c","t0","store","useCallback","useDebugValue","useSyncExternalStore","useMatchMedia","mediaQueryString","getServerSnapshot","$","_c","t0","onStoreChange","media","window","matchMedia","addEventListener","removeEventListener","t1","matches","useMatchMedia","usePrefersReducedMotion","t0","getServerSnapshot","undefined","_temp","Middleware","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","width","floatingHeight","height","shiftX","shift","x","shiftY","y","isVerticalPlacement","includes","originX","originY","clamp","data","num","min","max","Math","isRecord","value","Record","Boolean","Array","isArray","createGlobalScopedContext","BoundaryElementContextValue","BoundaryElementContext","useContext","isRecord","BoundaryElementContext","BoundaryElementContextValue","DEFAULT_VALUE","version","element","useBoundaryElement","value","Error","getElementRef","element","React","ReactElement","getter","Object","getOwnPropertyDescriptor","props","get","mayWarn","isReactWarning","ref","Ref","isRecord","LayerContextValue","getLayerContext","contextValue","version","Error","createGlobalScopedContext","LayerContextValue","LayerContext","useCallback","useContext","useEffect","useMemo","useState","useMediaIndex","_getArrayProp","getLayerContext","LayerContext","LayerContextValue","LayerProviderProps","children","React","ReactNode","zOffset","LayerProvider","props","$","_c","t0","zOffsetProp","undefined","parentContextValue","t1","parent","parentRegisterChild","registerChild","parentLevel","level","t2","maxMediaIndex","length","mediaIndex","Math","min","zIndex","t3","Symbol","for","setChildLayers","size","setSize","isTopLayer","t4","childLevel","parentDispose","state","prevLen","nextState","Object","keys","_temp","state_0","nextState_0","_temp2","t5","t6","t7","version","value","t8","v_0","v","useContext","getLayerContext","LayerContext","LayerContextValue","useLayer","$","_c","value","Error","t1","t0","err","message","createGlobalScopedContext","globalScope","PortalContextValue","key","elementKey","Symbol","for","defaultContextValue","version","boundaryElement","element","document","createElement","setAttribute","body","appendChild","PortalContext","useContext","isRecord","PortalContext","PortalContextValue","usePortal","value","Error","version","createPortal","usePortal","PortalProps","children","React","ReactNode","__unstable_name","Portal","props","$","_c","name","portal","portalElement","elements","element","default","t0","Placement","PopoverMargins","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","Record","detectOverflow","Middleware","PopoverMargins","size","options","boundaryElement","HTMLElement","constrainSize","margins","matchReferenceWidth","maxWidthRef","React","RefObject","padding","referenceWidthRef","setReferenceWidth","referenceWidth","widthRef","name","fn","args","elements","placement","platform","rects","floating","reference","overflow","altBoundary","boundary","undefined","elementContext","rootBoundary","maxWidth","Infinity","maxHeight","floatingW","width","floatingH","height","includes","left","right","top","bottom","availableWidth","availableHeight","current","style","Math","min","nextDimensions","getDimensions","targetH","targetW","reset","DEFAULT_POPOVER_PADDING","PopoverWidth","calcCurrentWidth","params","mediaIndex","container","width","w","currentWidth","undefined","length","calcMaxWidth","boundaryWidth","Math","min","Infinity","PointCmd","type","x","y","radius","CurveCmd","startControl","Point","endControl","curveEnd","Cmd","moveTowardsLength","movingPoint","targetPoint","amount","width","height","distance","Math","sqrt","moveTowardsFractional","min","fraction","getRoundedCommands","points","len","length","cmds","i","point","prevPoint","nextPoint","curveStart","push","compileCommands","map","n","idx","join","ForwardedRef","forwardRef","HTMLProps","css","styled","useTheme_v2","compileCommands","getRoundedCommands","Point","StyledArrow","div","$w","w","StrokePath","path","ShapePath","Arrow","props","ref","$","_c","h","restProps","t0","width","height","radius","undefined","card","strokeWidth","shadow","outline","center","t1","points","x","y","cmds","strokePath","fillPath","t2","t3","t4","t5","t6","t7","t8","Strategy","motion","MotionProps","React","CSSProperties","forwardRef","useMemo","styled","ThemeColorSchemeKey","POPOVER_MOTION_PROPS","BoxOverflow","CardTone","Placement","PopoverMargins","Radius","Arrow","useLayer","Card","CardProps","Flex","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_MARGINS","MotionCard","create","MotionFlex","PopoverCard","props","ref","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","marginsProp","originX","originY","overflow","padding","placement","radius","restProps","scheme","shadow","strategy","style","tone","width","xProp","yProp","__unstable_margins","x","y","zIndex","margins","t0","undefined","t1","left","position","top","willChange","rootStyle","t2","t3","t4","right","bottom","arrowStyle","t5","t6","t7","t8","t9","t10","transition","t11","t12","card","arrow","autoPlacement","autoUpdate","flip","hide","Middleware","offset","RootBoundary","shift","useFloating","AnimatePresence","cloneElement","forwardRef","Ref","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","ThemeColorSchemeKey","useElementSize","useMediaIndex","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","BoxOverflow","CardTone","Placement","PopoverMargins","useBoundaryElement","getElementRef","LayerProps","LayerProvider","useLayer","Portal","ResponsiveRadiusProps","ResponsiveShadowProps","DEFAULT_FALLBACK_PLACEMENTS","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_MARGINS","DEFAULT_POPOVER_PADDING","size","calcCurrentWidth","calcMaxWidth","PopoverCard","PopoverUpdateCallback","PopoverWidth","PopoverProps","Omit","__unstable_margins","animate","boundaryElement","HTMLElement","children","React","JSX","Element","constrainSize","content","ReactNode","disabled","fallbackPlacements","floatingBoundary","matchReferenceWidth","modal","open","overflow","padding","placement","placementStrategy","portal","preventOverflow","referenceBoundary","referenceElement","scheme","tone","updateRef","width","ViewportOverlay","$","_c","zIndex","t0","height","inset","position","Popover","props","forwardedRef","container","layer","boundaryElementContext","_boundaryElement","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","paddingProp","restProps","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","onActivate","t24","t25","t26","t27","t28","t29","t30","radius","t31","t32","t33","t34","shadow","t35","t36","t37","zOffset","t38","t39","t40","margins","undefined","_animate","arrowProp","placementProp","radiusProp","shadowProp","widthProp","element","zOffsetProp","popover","prefersReducedMotion","boundarySize","border","widthArrayProp","ref","arrowRef","Symbol","for","current","mediaIndex","boundaryWidth","widthRef","currentWidth","maxWidth","maxWidthRef","referenceWidthRef","floatingElement","referenceWidth","style","referenceWidth_0","setReferenceWidth","rootBoundary","middleware","useMiddleware","reference","whileElementsMounted","elements","x","y","middlewareData","refs","strategy","update","referenceHidden","arrowX","arrowY","originX","originY","arrowEl","setArrow","node","setFloating","bb0","setReference","child","ret","allowedPlacements","concat","push","boundary","mainAxis","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveStackSpaceStyleProps","$space","BASE_STYLE","display","listStyle","stackBaseStyle","responsiveStackSpaceStyle","props","media","space","theme","spaceIndex","gridGap","forwardRef","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","responsiveStackSpaceStyle","ResponsiveStackSpaceStyleProps","stackBaseStyle","StackOwnProps","gap","space","StackProps","E","StyledStack","StackComponent","Stack","props","ref","$","_c","as","deprecated_space","restProps","spacing","undefined","t0","t1","t2","React","JSX","Element","useEffect","useCustomValidity","ref","customValidity","$","_c","t0","t1","current","setCustomValidity","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","TextInputResponsivePaddingStyleProps","$fontSize","$iconLeft","$iconRight","$padding","$space","responsiveInputPaddingStyle","props","font","media","space","theme","len","Math","max","length","_padding","_space","_fontSize","i","undefined","_","size","text","sizes","emSize","lineHeight","ascenderHeight","descenderHeight","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","css","ThemeColorSchemeKey","CSSObject","ThemeFontWeightKey","getTheme_v2","CardTone","focusRingBorderStyle","focusRingStyle","_responsive","rem","ThemeProps","TextInputInputStyleProps","$fontSize","$scheme","$tone","$weight","TextInputRepresentationStyleProps","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","ROOT_STYLE","textInputRootStyle","ReturnType","textInputBaseStyle","props","color","font","theme","text","family","weights","regular","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","media","sizeIndex","size","sizes","fontSize","lineHeight","textInputRepresentationStyle","undefined","bg","border","width","focusRing","hovered","CloseIcon","forwardRef","isValidElement","useCallback","useImperativeHandle","useMemo","useRef","isValidElementType","styled","ThemeFontWeightKey","EMPTY_RECORD","useCustomValidity","_getArrayProp","responsiveInputPaddingStyle","TextInputResponsivePaddingStyleProps","textInputBaseStyle","textInputFontSizeStyle","TextInputInputStyleProps","textInputRepresentationStyle","TextInputRepresentationStyleProps","textInputRootStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useRootTheme","Radius","Box","Button","ButtonOwnProps","Card","Text","TextInputClearButtonProps","Omit","React","HTMLProps","HTMLButtonElement","TextInputType","TextInputProps","__unstable_disableFocusRing","border","clearButton","customValidity","fontSize","icon","ElementType","ReactNode","iconRight","onClear","padding","prefix","radius","space","gap","suffix","type","weight","CLEAR_BUTTON_BOX_STYLE","CSSProperties","zIndex","StyledTextInput","attrs","forwardedAs","InputRoot","span","Prefix","Suffix","Input","input","Presentation","LeftBox","RightBox","RightCard","TextInputClearButton","display","TextInput","props","forwardedRef","$","_c","IconComponent","IconRightComponent","readOnly","restProps","t0","t1","t2","t3","t4","t5","t6","disabled","undefined","fontSizeProp","paddingProp","radiusProp","deprecated_space","ref","rootTheme","t7","t8","t9","t10","t11","$hasClearButton","Boolean","$hasIcon","$hasIconRight","$hasSuffix","$hasPrefix","t12","Symbol","for","current","handleClearMouseDown","_temp","t13","event_0","event","preventDefault","stopPropagation","focus","handleClearClick","t14","prefixNode","t15","t16","t17","t18","scheme","tone","presentationNode","t19","map","_temp2","clearButtonBoxPadding","t20","_temp3","clearButtonPadding","clearButtonProps","t21","clearButtonNode","t22","suffixNode","t23","t24","t25","t26","v","v_0","useDebugValue","useEffect","useEffectEvent","EMPTY_ARRAY","ClickOutsideEventListener","event","MouseEvent","ClickOutsideEventElements","HTMLElement","useClickOutsideEvent","listener","t0","boundaryElement","$","_c","elementsArg","undefined","_temp","t1","evt","target","Node","resolvedBoundaryElement","contains","elements","flat","el","onEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3","useEffect","useEffectEvent","useGlobalKeyDown","onKeyDown","options","$","_c","t0","event","handleKeyDown","t1","handler","event_0","window","addEventListener","removeEventListener","t2","FocusEvent","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","styled","EMPTY_RECORD","containsOrEqualsElement","isHTMLElement","LayerProvider","useLayer","LayerProps","as","React","ElementType","JSX","IntrinsicElements","onActivate","props","activeElement","HTMLElement","zOffset","LayerChildrenProps","StyledLayer","div","position","LayerChildren","forwardedRef","$","_c","children","onFocus","restProps","t0","style","undefined","zIndex","isTopLayer","lastFocusedRef","ref","isTopLayerRef","t1","Symbol","for","current","t2","t3","becameTopLayer","t4","event","rootElement","target","document","handleFocus","t5","t6","Layer","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveInlineSpaceStyleProps","inlineBaseStyle","display","verticalAlign","inlineSpaceStyle","props","media","space","theme","$space","spaceIndex","_space","padding","Children","forwardRef","useMemo","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","inlineBaseStyle","inlineSpaceStyle","ResponsiveInlineSpaceStyleProps","InlineOwnProps","Omit","space","gap","InlineProps","E","StyledInline","InlineComponent","Inline","props","ref","$","_c","as","childrenProp","deprecated_space","restProps","children","spacing","undefined","t0","map","_temp","t1","t2","t3","React","JSX","Element","child","forwardRef","css","styled","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","ElementType","Props","Radius","Box","Text","KBDOwnProps","fontSize","padding","radius","KBDProps","E","kbdStyle","StyledKBD","kbd","KBDComponent","KBD","props","ref","$","_c","children","restProps","t0","t1","t2","undefined","t3","t4","t5","t6","React","JSX","Element","forwardRef","styled","Inline","KBD","_getArrayProp","Radius","HotkeysProps","fontSize","gap","padding","radius","space","keys","StyledHotkeys","kbd","Key","Hotkeys","props","ref","$","_c","restProps","t0","deprecated_space","undefined","t1","t2","spacing","length","t3","Symbol","for","t4","key","i","map","t5","createGlobalScopedContext","MenuContextValue","version","activeElement","HTMLElement","mount","element","selected","onClickOutside","event","MouseEvent","onEscape","onItemClick","onItemMouseEnter","React","onItemMouseLeave","registerElement","el","MenuContext","isHTMLAnchorElement","isHTMLButtonElement","_isFocusable","element","HTMLElement","getAttribute","disabled","_getFocusableElements","elements","filter","_getDOMPath","rootElement","el","path","e","parentElement","children","Array","from","childNodes","index","indexOf","unshift","EMPTY_PATH","_sortElements","map","WeakMap","set","_sort","a","b","_a","get","_b","len","Math","max","length","i","aIndex","bIndex","sort","useCallback","useEffect","useRef","useState","_getFocusableElements","_sortElements","MenuController","activeElement","HTMLElement","activeIndex","handleItemMouseEnter","event","React","MouseEvent","handleItemMouseLeave","handleKeyDown","KeyboardEvent","HTMLDivElement","mount","element","selected","useMenuController","props","$","_c","onKeyDown","originElement","shouldFocus","rootElementRef","t0","Symbol","for","elementsRef","_setActiveIndex","activeIndexRef","setActiveElement","t1","nextActiveIndex","current","setActiveIndex","t2","_temp","indexOf","push","selectedIndex","idx","splice","t3","key","focus","preventDefault","stopPropagation","focusableElements","el","currentIndex","focusableElements_0","el_0","length","currentIndex_0","focusableElements_1","focusableLen","focusedElement","focusedIndex","el_1","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","t4","event_0","element_0","currentTarget","currentIndex_3","t5","t6","t7","rafId","requestAnimationFrame","focusableElements_3","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","element_1","cancelAnimationFrame","t8","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","styled","useClickOutsideEvent","useGlobalKeyDown","Box","Stack","ResponsivePaddingProps","useLayer","MenuContext","MenuContextValue","useMenuController","MenuProps","event","MouseEvent","index","HTMLElement","el","FocusEvent","StyledMenu","Menu","props","forwardedRef","$","_c","_shouldFocus","children","gap","onClickOutside","onEscape","onItemClick","onItemSelect","onKeyDown","originElement","registerElement","restProps","t0","t1","t2","focusFirst","focusLast","t3","t4","t5","t6","t7","t8","padding","t9","t10","shouldFocus","t11","t12","space","t13","t14","undefined","deprecated_space","spacing","ref","Symbol","for","current","isTopLayer","rootElementRef","activeElement","activeIndex","handleItemMouseEnter","handleItemMouseLeave","handleKeyDown","mount","unregisterElementRef","handleRefChange","key","stopPropagation","version","onItemMouseEnter","onItemMouseLeave","value","styled","ElementType","EmptyProps","Props","MenuDividerProps","E","MenuDivider","hr","props","React","JSX","Element","css","getTheme_v2","_cardColorStyle","ThemeProps","SelectableTone","SelectableStyleProps","$tone","selectableBaseStyle","ReturnType","selectableColorStyle","props","color","style","theme","tone","selectable","enabled","disabled","pressed","selected","hovered","card","root","styled","responsiveRadiusStyle","ResponsiveRadiusStyleProps","Box","selectableBaseStyle","selectableColorStyle","SelectableStyleProps","Selectable","useContext","isRecord","MenuContext","MenuContextValue","useMenu","value","Error","version","ChevronRightIcon","isValidElement","useCallback","useEffect","useState","isValidElementType","Selectable","Box","Flex","Popover","PopoverProps","Text","_getArrayProp","useRootTheme","ElementType","Props","Radius","SelectableTone","Menu","MenuProps","useMenu","MenuGroupOwnProps","fontSize","icon","React","ReactNode","menu","Omit","padding","popover","radius","gap","space","text","tone","MenuGroupProps","E","MenuGroupComponent","MenuGroup","props","$","_c","IconComponent","children","menuProps","onClick","restProps","t0","t1","t2","t3","t4","t5","as","undefined","deprecated_space","spacing","scheme","activeElement","mount","onClickOutside","onEscape","onItemClick","onItemMouseEnter","_onItemMouseEnter","registerElement","rootElement","setRootElement","open","setOpen","shouldFocus","setShouldFocus","active","Boolean","withinMenu","setWithinMenu","t6","event","handleMouseEnter","t7","event_0","key","stopPropagation","requestAnimationFrame","focus","handleMenuKeyDown","t8","event_1","handleClick","t9","handleChildItemClick","t10","Symbol","for","handleMenuMouseEnter","t11","t12","t13","t14","t15","t16","t17","t18","rafId","cancelAnimationFrame","t19","childMenu","t20","event_2","target","currentTarget","document","handleKeyDown","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","JSX","Element","forwardRef","isValidElement","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","isValidElementType","Selectable","Box","Flex","Text","ResponsivePaddingProps","ResponsiveRadiusProps","_getArrayProp","useRootTheme","ElementType","Props","SelectableTone","Hotkeys","useMenu","MenuItemOwnProps","fontSize","hotkeys","icon","React","ReactNode","iconRight","pressed","selected","gap","space","text","tone","MenuItemProps","E","MenuItemComponent","MenuItem","props","forwardedRef","$","_c","IconComponent","IconRightComponent","children","disabled","onClick","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","restProps","selectedProp","t0","t1","t2","t3","t4","t5","as","padding","radius","undefined","deprecated_space","spacing","scheme","menu","activeElement","mount","onItemClick","onItemMouseEnter","_onItemMouseEnter","onItemMouseLeave","_onItemMouseLeave","rootElement","setRootElement","active","Boolean","ref","t6","Symbol","for","current","t7","t8","t9","event","handleClick","t10","paddingProps","t11","map","_temp","hotkeysFontSize","t12","el","setRef","t13","t14","t15","t16","t17","t18","t19","t20","marginTop","marginBottom","t21","t22","JSX","Element","s","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","styled","Button","ButtonTone","TabProps","React","ElementType","ReactNode","CustomButton","Tab","props","forwardedRef","$","_c","focused","icon","id","label","onClick","onFocus","restProps","selected","t0","t1","fontSize","padding","undefined","ref","focusedRef","t2","Symbol","for","current","t3","handleBlur","t4","event","handleFocus","t5","t6","focus","t7","t8","t9","Children","cloneElement","forwardRef","isValidElement","useCallback","useState","styled","Inline","InlineOwnProps","TabListProps","Omit","children","Array","React","JSX","Element","CustomInline","TabList","props","ref","$","_c","childrenProp","restProps","focusedIndex","setFocusedIndex","t0","toArray","filter","t1","child","childIndex","focused","key","onFocus","map","tabs","numTabs","length","event","prevIndex","prevIndex_0","handleKeyDown","t2","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveGridStyleProps","GRID_CSS","display","listStyle","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","Array","props","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","media","theme","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","space","$gap","gap","gridGap","undefined","$gapX","gapX","columnGap","$gapY","gapY","rowGap","forwardRef","styled","responsiveGridStyle","ResponsiveGridStyleProps","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveGridProps","GridOwnProps","Omit","GridProps","E","StyledGrid","GridComponent","Grid","props","ref","$","_c","as","autoCols","autoFlow","autoRows","children","columns","gap","gapX","gapY","gridTemplateColumns","gridTemplateRows","restProps","rows","t0","undefined","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","React","JSX","Element","useMatchMedia","usePrefersDark","t0","getServerSnapshot","undefined","_temp","SetStateAction","useCallback","useEffect","useRef","useState","useDelayedState","initialState","$","_c","state","setState","delayedAction","undefined","t0","Symbol","for","nextState","delay","action","current","clearTimeout","setTimeout","onStateChange","t1","t2","t3","Placement","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","DEFAULT_FALLBACK_PLACEMENTS","Record","motion","MotionProps","React","CSSProperties","forwardRef","useMemo","styled","ThemeColorSchemeKey","POPOVER_MOTION_PROPS","Placement","Radius","Arrow","Card","CardProps","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_ARROW_WIDTH","MotionCard","create","TooltipCard","props","ref","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","originX","originY","padding","placement","radius","restProps","scheme","shadow","style","t0","undefined","t1","willChange","rootStyle","t2","t3","t4","left","top","right","bottom","arrowStyle","t5","t6","t7","t8","t9","t10","card","transition","createGlobalScopedContext","TooltipDelayGroupContextValue","TooltipDelayGroupContext","useContext","TooltipDelayGroupContext","TooltipDelayGroupContextValue","useTooltipDelayGroup","value","arrow","autoUpdate","flip","Middleware","offset","RootBoundary","shift","useFloating","AnimatePresence","cloneElement","forwardRef","useCallback","useEffect","useId","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","styled","useEffectEvent","ThemeColorSchemeKey","useDelayedState","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","Placement","useBoundaryElement","getElementRef","Layer","LayerProps","Portal","usePortal","Delay","DEFAULT_FALLBACK_PLACEMENTS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","useTooltipDelayGroup","TooltipProps","Omit","allowedAutoPlacements","boundaryElement","HTMLElement","children","React","JSX","Element","content","ReactNode","disabled","fallbackPlacements","padding","placement","portal","radius","scheme","shadow","delay","animate","StyledTooltip","Tooltip","props","forwardedRef","$","_c","boundaryElementContext","layer","_boundaryElement","_fallbackPlacementsProp","_zOffset","childProp","portalProp","restProps","t0","t1","t2","t3","t4","t5","zOffset","_animate","undefined","arrowProp","placementProp","element","fallbackPlacementsProp","tooltip","prefersReducedMotion","t6","ref","referenceElement","setReferenceElement","arrowRef","tooltipMaxWidth","setTooltipMaxWidth","t7","Symbol","for","current","portalElement","elements","t8","rootBoundary","middleware","useMiddleware","t9","reference","t10","whileElementsMounted","floatingStyles","middlewareData","refs","update","arrowX","x","arrowY","y","originX","originY","tooltipId","isOpen","setIsOpen","delayGroupContext","t11","setIsGroupActive","setOpenTooltipId","showTooltip","openTooltipId","isInsideGroup","openDelayProp","open","closeDelayProp","close","openDelay","closeDelay","t12","immediate","groupedOpenDelay","groupDeactivateDelay","standaloneDelay","handleIsOpenChange","t13","e","onBlur","handleBlur","t14","e_0","onClick","handleClick","t15","e_1","onContextMenu","handleContextMenu","t16","e_2","onFocus","handleFocus","t17","e_3","onMouseEnter","handleMouseEnter","t18","e_4","onMouseLeave","handleMouseLeave","t19","useCloseOnMouseLeave","t20","t21","t22","t23","t24","t25","handleWindowKeyDown","event","key","window","addEventListener","removeEventListener","t26","offsetWidth","availableWidths","document","body","Math","min","t27","t28","arrowEl","setArrow","t29","node","setFloating","t30","bb0","t31","child","t32","t33","t34","t35","maxWidth","t36","t37","t38","t39","t40","ret","boundary","push","mainAxis","target","teardown","isHoveringReference","Node","contains","onMouseMove","handleMouseMove","useMemo","useSyncExternalStore","PortalContext","PortalContextValue","PortalProviderProps","boundaryElement","HTMLElement","children","React","ReactNode","element","__unstable_elements","Record","PortalProvider","props","$","_c","elements","fallbackElement","emptySubscribe","_temp","_temp2","t0","t1","t2","version","value","t3","document","body"],"sources":["../../src/core/_compat.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/styles/helpers.ts","../../src/core/styles/box/boxStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/grid/gridItemStyle.ts","../../src/core/styles/margin/marginStyle.ts","../../src/core/styles/padding/paddingStyle.ts","../../src/core/primitives/box/box.tsx","../../src/core/styles/radius/radiusStyle.ts","../../src/core/theme/useTheme.ts","../../src/core/styles/flex/flexStyle.ts","../../src/core/primitives/flex/flex.tsx","../../src/core/styles/font/textAlignStyle.ts","../../src/core/styles/font/responsiveFont.ts","../../src/core/styles/font/textFontStyle.ts","../../src/core/utils/spanWithTextOverflow.tsx","../../src/core/primitives/text/styles.ts","../../src/core/primitives/text/text.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/styles/card/_cardColorStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/primitives/button/styles.ts","../../src/core/primitives/button/button.tsx","../../src/core/styles/border/borderStyle.ts","../../src/core/styles/shadow/shadowStyle.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/primitives/card/styles.ts","../../src/core/primitives/card/card.tsx","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/middleware/origin.ts","../../src/core/lib/isRecord.ts","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/getElementRef.ts","../../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/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.ts","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/popover/helpers.ts","../../src/core/utils/arrow/cmds.ts","../../src/core/utils/arrow/arrow.tsx","../../src/core/primitives/popover/popoverCard.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/stack/styles.ts","../../src/core/primitives/stack/stack.tsx","../../src/core/hooks/useCustomValidity.ts","../../src/core/styles/input/responsiveInputPaddingStyle.ts","../../src/core/styles/input/textInputStyle.ts","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/utils/layer/layer.tsx","../../src/core/primitives/inline/styles.ts","../../src/core/primitives/inline/inline.tsx","../../src/core/primitives/kbd/kbd.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","../../src/core/styles/grid/gridStyle.ts","../../src/core/primitives/grid/grid.tsx","../../src/core/hooks/usePrefersDark.ts","../../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/tooltip.tsx","../../src/core/utils/portal/portalProvider.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {buildTheme} from '../theme/build/buildTheme'\nimport {type HSL as _HSL, type RGB as _RGB} from '../theme/build/lib/color-fns/types'\nimport {\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n} from '../theme/system/color/_system'\nimport {type ThemeColorSyntax as _ThemeColorSyntax} from '../theme/system/color/syntax'\nimport {\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} from '../theme/system/font'\nimport {type ThemeLayer as _ThemeLayer} from '../theme/system/layer'\nimport {type ThemeBoxShadow, type ThemeShadow as _ThemeShadow} from '../theme/system/shadow'\nimport {type ThemeStyles} from '../theme/system/styles'\nimport {\n type BaseTheme as _BaseTheme,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n} from '../theme/system/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\nimport {createColorTheme as _createColorTheme} from '../theme/build/_deprecated/color/factory'\nimport {multiply as _multiply} from '../theme/build/lib/color-fns/blend/multiply'\nimport {screen as _screen} from '../theme/build/lib/color-fns/blend/screen'\nimport {\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n} from '../theme/build/lib/color-fns/convert'\nimport {parseColor as _parseColor} from '../theme/build/lib/color-fns/parse'\nimport {rgba as _rgba} from '../theme/build/lib/color-fns/rgba'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\n// oxlint-disable-next-line no-deprecated\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 'motion/react'\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 * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {CSSObject} from '../../theme/system/css'\nimport {Theme} from '../../theme/system/theme'\nimport {getTheme_v2} from '../../theme/versioning/getTheme_v2'\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 {Property} from 'csstype'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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\nfunction responsiveFlexItemStyle(props: ResponsiveFlexItemStyleProps & ThemeProps): 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: `${flex}`}))\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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} from '../../../theme/system/css'\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 // oxlint-disable-next-line no-unsafe-type-assertion\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 '../../../theme/system/css'\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 // oxlint-disable-next-line no-unsafe-type-assertion\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 {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {boxStyle, responsiveBoxStyle} from '../../styles/box/boxStyle'\nimport {ResponsiveBoxStyleProps} from '../../styles/box/types'\nimport {flexItemStyle} from '../../styles/flex/flexItemStyle'\nimport {FlexItemStyleProps} from '../../styles/flex/types'\nimport {responsiveGridItemStyle} from '../../styles/grid/gridItemStyle'\nimport {ResponsiveGridItemStyleProps} from '../../styles/grid/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveMarginStyle} from '../../styles/margin/marginStyle'\nimport {ResponsiveMarginStyleProps} from '../../styles/margin/types'\nimport {responsivePaddingStyle} from '../../styles/padding/paddingStyle'\nimport {ResponsivePaddingStyleProps} from '../../styles/padding/types'\nimport {ElementType, Props} from '../../types/component'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * The props that `Box` adds on top of the element it renders as.\n *\n * @public\n */\nexport interface BoxOwnProps\n extends\n ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n forwardedAs?: ElementType\n}\n\n/**\n * @public\n */\nexport type BoxProps<E extends ElementType = 'div'> = Props<BoxOwnProps, E>\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\nconst BoxComponent = forwardRef(function Box(\n props: BoxOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n gridColumn,\n // oxlint-disable-next-line no-deprecated\n column: deprecated_column,\n gridColumnStart,\n // oxlint-disable-next-line no-deprecated\n columnStart: deprecated_columnStart,\n gridColumnEnd,\n // oxlint-disable-next-line no-deprecated\n columnEnd: deprecated_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 gridRow,\n // oxlint-disable-next-line no-deprecated\n row: deprecated_row,\n gridRowStart,\n // oxlint-disable-next-line no-deprecated\n rowStart: deprecated_rowStart,\n gridRowEnd,\n // oxlint-disable-next-line no-deprecated\n rowEnd: deprecated_rowEnd,\n sizing,\n ...restProps\n } = props\n const column = gridColumn === undefined ? deprecated_column : gridColumn\n const columnStart = gridColumnStart === undefined ? deprecated_columnStart : gridColumnStart\n const columnEnd = gridColumnEnd === undefined ? deprecated_columnEnd : gridColumnEnd\n const row = gridRow === undefined ? deprecated_row : gridRow\n const rowStart = gridRowStart === undefined ? deprecated_rowStart : gridRowStart\n const rowEnd = gridRowEnd === undefined ? deprecated_rowEnd : gridRowEnd\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={_getArrayProp(column)}\n $columnStart={_getArrayProp(columnStart)}\n $columnEnd={_getArrayProp(columnEnd)}\n $display={_getArrayProp(display)}\n $flex={_getArrayProp(flex)}\n $height={_getArrayProp(height)}\n $margin={_getArrayProp(margin)}\n $marginX={_getArrayProp(marginX)}\n $marginY={_getArrayProp(marginY)}\n $marginTop={_getArrayProp(marginTop)}\n $marginRight={_getArrayProp(marginRight)}\n $marginBottom={_getArrayProp(marginBottom)}\n $marginLeft={_getArrayProp(marginLeft)}\n $overflow={_getArrayProp(overflow)}\n $padding={_getArrayProp(padding)}\n $paddingX={_getArrayProp(paddingX)}\n $paddingY={_getArrayProp(paddingY)}\n $paddingTop={_getArrayProp(paddingTop)}\n $paddingRight={_getArrayProp(paddingRight)}\n $paddingBottom={_getArrayProp(paddingBottom)}\n $paddingLeft={_getArrayProp(paddingLeft)}\n $row={_getArrayProp(row)}\n $rowStart={_getArrayProp(rowStart)}\n $rowEnd={_getArrayProp(rowEnd)}\n $sizing={_getArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </StyledBox>\n )\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 */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Box = BoxComponent as unknown as <E extends ElementType = 'div'>(\n props: BoxProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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 {useTheme as useStyledTheme} from 'styled-components'\n\nimport {Theme, Theme_v2} from '../../theme/system/theme'\nimport {getTheme_v2} from '../../theme/versioning/getTheme_v2'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n // oxlint-disable-next-line no-unnecessary-type-assertion\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n // oxlint-disable-next-line no-unnecessary-type-assertion\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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\nfunction responsiveFlexAlignStyle(props: ResponsiveFlexStyleProps & ThemeProps): 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\nfunction 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\nfunction responsiveFlexJustifyStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nfunction responsiveFlexDirectionStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {flexItemStyle} from '../../styles/flex/flexItemStyle'\nimport {responsiveFlexStyle} from '../../styles/flex/flexStyle'\nimport {FlexItemStyleProps, ResponsiveFlexStyleProps} from '../../styles/flex/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveFlexItemProps, ResponsiveFlexProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexOwnProps\n extends Omit<BoxOwnProps, 'display'>, ResponsiveFlexProps, ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\n/**\n * @public\n */\nexport type FlexProps<E extends ElementType = 'div'> = Props<FlexOwnProps, E>\n\nconst StyledFlex = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\nconst FlexComponent = forwardRef(function Flex(\n props: FlexOwnProps & {as?: ElementType} & 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={_getArrayProp(align)}\n $direction={_getArrayProp(direction)}\n $gap={_getArrayProp(gap)}\n $justify={_getArrayProp(justify)}\n $wrap={_getArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Flex = FlexComponent as unknown as <E extends ElementType = 'div'>(\n props: FlexProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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 '../../../theme/system/css'\nimport {ThemeFontKey, ThemeFontSize} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {FontWeightStyleProps, ResponsiveFontSizeStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: FontWeightStyleProps & ResponsiveFontSizeStyleProps & 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': `${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 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\nfunction 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 '../../../theme/system/css'\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 {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 {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\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 {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {responsiveTextFont} from '../../styles/font/textFontStyle'\nimport {ResponsiveFontStyleProps} from '../../styles/font/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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\n/**\n * @public\n */\nexport type TextProps<E extends ElementType = 'div'> = Props<TextOwnProps, E>\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst TextComponent = forwardRef(function Text(\n props: TextOwnProps & {as?: ElementType} & 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={_getArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={_getArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Text = TextComponent as unknown as <E extends ElementType = 'div'>(\n props: TextProps<E>,\n) => React.JSX.Element\n","import {SpinnerIcon} from '@sanity/icons/Spinner'\nimport {forwardRef} from 'react'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Text} from '../text/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})\n","import {ThemeColorCard_v2} from '../../../theme/system/color/color'\nimport {ThemeColorState_v2} from '../../../theme/system/color/state'\nimport {CSSObject} from '../../../theme/system/css'\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 {ThemeFocusRing} from '../../../theme/system/focusRing'\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 {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {ThemeProps} from '../../styles/types'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types/button'\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 // oxlint-disable-next-line no-unsafe-type-assertion\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth} from '../../types/button'\nimport {ElementType, Props} from '../../types/component'\nimport {FlexJustify} from '../../types/flex'\nimport {Box} from '../box/box'\nimport {Flex} from '../flex/flex'\nimport {Spinner} from '../spinner/spinner'\nimport {Text} from '../text/text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n mode?: ButtonMode\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\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 /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n gap?: 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\n/**\n * @public\n */\nexport type ButtonProps<E extends ElementType = 'button'> = Props<ButtonOwnProps, E>\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps\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\nconst ButtonComponent = forwardRef(function Button(\n props: ButtonOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'as' | 'width'\n >,\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 gap,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 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 = _getArrayProp(justifyProp)\n const padding = _getArrayProp(paddingProp)\n const paddingX = _getArrayProp(paddingXProp)\n const paddingY = _getArrayProp(paddingYProp)\n const paddingTop = _getArrayProp(paddingTopProp)\n const paddingBottom = _getArrayProp(paddingBottomProp)\n const paddingLeft = _getArrayProp(paddingLeftProp)\n const paddingRight = _getArrayProp(paddingRightProp)\n const radius = _getArrayProp(radiusProp)\n const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\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={spacing}>\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})\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Button = ButtonComponent as unknown as <E extends ElementType = 'button'>(\n props: ButtonProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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} from '../../../theme/system/css'\nimport {ThemeBoxShadow, ThemeShadow} from '../../../theme/system/shadow'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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","/**\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\n// oxlint-disable-next-line no-unsafe-type-assertion\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\n// oxlint-disable-next-line no-unnecessary-type-parameters\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 const context = createContext<ContextType>(defaultValue)\n context.displayName = key\n return context\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 {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {getScopedTheme} from '../../theme/getScopedTheme'\nimport {\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '../../theme/system/color/_system'\nimport {type RootTheme, type Theme} from '../../theme/system/theme'\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","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 // oxlint-disable-next-line no-unnecessary-type-assertion, no-unsafe-type-assertion\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '../../theme/system/color/_system'\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","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {ThemeProps} from '../../styles/types'\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\nfunction 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\nfunction 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 {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {responsiveBorderStyle} from '../../styles/border/borderStyle'\nimport {ResponsiveBorderStyleProps} from '../../styles/border/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {responsiveShadowStyle} from '../../styles/shadow/shadowStyle'\nimport {ResponsiveShadowStyleProps} from '../../styles/shadow/types'\nimport {ThemeColorProvider} from '../../theme/themeColorProvider'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {CardTone} from '../../types/card'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardOwnProps\n extends BoxOwnProps, ResponsiveBorderProps, ResponsiveRadiusProps, 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 disabled?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n selected?: boolean\n tone?: CardTone\n}\n\n/**\n * @public\n */\nexport type CardProps<E extends ElementType = 'div'> = Props<CardOwnProps, E>\n\nconst StyledCard = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\nconst CardComponent = forwardRef(function Card(\n props: CardOwnProps & {as?: ElementType} & 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={_getArrayProp(border)}\n $borderTop={_getArrayProp(borderTop)}\n $borderRight={_getArrayProp(borderRight)}\n $borderBottom={_getArrayProp(borderBottom)}\n $borderLeft={_getArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={_getArrayProp(radius)}\n $shadow={_getArrayProp(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})\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 */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Card = CardComponent as unknown as <E extends ElementType = 'div'>(\n props: CardProps<E>,\n) => React.JSX.Element\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 // oxlint-disable-next-line no-deprecated\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 {useMemo, useSyncExternalStore} from 'react'\n\nimport {useTheme_v2} from '../../theme/useTheme'\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 {useCallback, useDebugValue, 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 useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\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 {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 function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\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 {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","// 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 // oxlint-disable-next-line unbound-method\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return (element as any).ref\n }\n\n // React 19 in DEV\n // oxlint-disable-next-line unbound-method\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n // oxlint-disable-next-line no-unsafe-type-assertion\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'\nimport {_getArrayProp} from '../../styles/helpers'\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 = _getArrayProp(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","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 // oxlint-disable-next-line preserve-caught-error\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n // oxlint-disable-next-line preserve-caught-error, restrict-template-expressions\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\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\nconst 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","import {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\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, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types/popover'\n\nexport function size(options: {\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n maxWidthRef: React.RefObject<number | undefined>\n padding?: number\n referenceWidthRef: React.RefObject<number | undefined>\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}): Middleware {\n const {\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding = 0,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n } = 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 const availableWidth = maxWidth - margins[1] - margins[3]\n const availableHeight = maxHeight - margins[0] - margins[2]\n const referenceWidth = reference.width - margins[1] - margins[3]\n referenceWidthRef.current = referenceWidth\n setReferenceWidth(referenceWidth)\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (widthRef.current !== undefined) {\n elements.floating.style.width = `${widthRef.current}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(availableWidth, maxWidthRef.current ?? Infinity)}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\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","interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\ninterface 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/useTheme'\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 // oxlint-disable-next-line no-unnecessary-template-expression\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})\n","import {Strategy} from '@floating-ui/react-dom'\nimport {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow} from '../../types/box'\nimport {CardTone} from '../../types/card'\nimport {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\nimport {Radius} from '../../types/radius'\nimport {Arrow} from '../../utils/arrow/arrow'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Card, CardProps} from '../card/card'\nimport {Flex} from '../flex/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 = 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 // oxlint-disable-next-line no-unsafe-type-assertion\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","import {\n arrow,\n autoPlacement,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {AnimatePresence} from 'motion/react'\nimport {\n cloneElement,\n forwardRef,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {BoxOverflow} from '../../types/box'\nimport {CardTone} from '../../types/card'\nimport {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {LayerProps} from '../../utils/layer/layer'\nimport {LayerProvider} from '../../utils/layer/layerProvider'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Portal} from '../../utils/portal/portal'\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'>, ResponsiveRadiusProps, 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 /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\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?: Ref<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 = 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 // oxlint-disable-next-line no-deprecated\n boundaryElement: _boundaryElement,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n modal,\n // oxlint-disable-next-line no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary =\n // oxlint-disable-next-line no-deprecated\n _floatingBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n // oxlint-disable-next-line no-deprecated\n _referenceBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const widthArrayProp = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(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>(forwardedRef, () => ref.current)\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 [referenceWidth, setReferenceWidth] = useState<number | undefined>(undefined)\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\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 // 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, () => refs.reference.current)\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: refs.setReference})\n }, [childProp, referenceElement, refs.setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\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 ? referenceWidth : 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\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n constrainSize: boolean\n fallbackPlacements: Placement[]\n floatingBoundary: HTMLElement | null\n margins: PopoverMargins\n matchReferenceWidth: boolean | undefined\n maxWidthRef: React.RefObject<number | undefined>\n placementProp: Placement\n placementStrategy: 'flip' | 'autoPlacement'\n preventOverflow: boolean\n referenceBoundary: HTMLElement | null\n referenceWidthRef: React.RefObject<number | undefined>\n rootBoundary: RootBoundary\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\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 boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding: DEFAULT_POPOVER_PADDING,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\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 arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n ])\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\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 // oxlint-disable-next-line no-deprecated\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface StackOwnProps extends BoxOwnProps {\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n}\n\n/**\n * @public\n */\nexport type StackProps<E extends ElementType = 'div'> = Props<StackOwnProps, E>\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\nconst StackComponent = forwardRef(function Stack(\n props: StackOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n // oxlint-disable-next-line no-deprecated\n const {as, gap, space: deprecated_space, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={_getArrayProp(spacing)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Stack = StackComponent as unknown as <E extends ElementType = 'div'>(\n props: StackProps<E>,\n) => React.JSX.Element\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 {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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 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 {css} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {CardTone} from '../../types/card'\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 {CloseIcon} from '@sanity/icons/Close'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {\n responsiveInputPaddingStyle,\n TextInputResponsivePaddingStyleProps,\n} from '../../styles/input/responsiveInputPaddingStyle'\nimport {\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n} from '../../styles/input/textInputStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Button, ButtonOwnProps} from '../button/button'\nimport {Card} from '../card/card'\nimport {Text} from '../text/text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = ButtonOwnProps &\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 // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\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 /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n gap?: 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 gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 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 = _getArrayProp(fontSizeProp)\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(gap === undefined ? deprecated_space : gap)\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})\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'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * Adds global keydown event listener to the window.\n *\n * @param onKeyDown - The function to call when a keydown event is triggered.\n * @param options - The options to pass to the addEventListener function (example, capture: true)\n * @beta\n */\nexport function useGlobalKeyDown(\n onKeyDown: (event: KeyboardEvent) => void,\n options?: AddEventListenerOptions,\n): 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, options)\n\n return () => window.removeEventListener('keydown', handler, options)\n }, [options])\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/element'\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 // oxlint-disable-next-line no-unnecessary-type-arguments\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})\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\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 {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineOwnProps extends Omit<BoxOwnProps, 'display'> {\n /**\n * The spacing between children.\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n /** The spacing between children. */\n gap?: number | number[]\n}\n\n/**\n * @public\n */\nexport type InlineProps<E extends ElementType = 'div'> = Props<InlineOwnProps, E>\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\nconst InlineComponent = forwardRef(function Inline(\n props: InlineOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n // oxlint-disable-next-line no-deprecated\n const {as, children: childrenProp, gap, space: deprecated_space, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\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={_getArrayProp(spacing)}\n forwardedAs={as}\n // oxlint-disable-next-line no-unnecessary-type-assertion, no-unsafe-type-assertion\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Inline = InlineComponent as unknown as <E extends ElementType = 'div'>(\n props: InlineProps<E>,\n) => React.JSX.Element\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {ElementType, Props} from '../../types/component'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\n\n/**\n * @public\n */\nexport interface KBDOwnProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\n/**\n * @public\n */\nexport type KBDProps<E extends ElementType = 'kbd'> = Props<KBDOwnProps, E>\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\nconst KBDComponent = forwardRef(function KBD(\n props: KBDOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLElement>,\n 'as' | 'ref' | 'size'\n >,\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={_getArrayProp(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})\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const KBD = KBDComponent as unknown as <E extends ElementType = 'kbd'>(\n props: KBDProps<E>,\n) => React.JSX.Element\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline} from '../../primitives/inline/inline'\nimport {KBD} from '../../primitives/kbd/kbd'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 // oxlint-disable-next-line no-deprecated\n const {fontSize, gap, keys, padding, radius, space: deprecated_space = 0.5, ...restProps} = props\n const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\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\" gap={spacing}>\n {keys.map((key, i) => (\n // oxlint-disable-next-line no-array-index-key\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </StyledHotkeys>\n )\n})\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 2\n activeElement: HTMLElement | null\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\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers/element'\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\nfunction _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, 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.RefObject<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, setActiveElement] = useState<HTMLElement | null>(null)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n setActiveElement(elementsRef.current[nextActiveIndex] || null)\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 (!rootElementRef.current) 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 // oxlint-disable-next-line consistent-return\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, rootElementRef, 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} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {Box} from '../../primitives/box/box'\nimport {Stack} from '../../primitives/stack/stack'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils/layer/useLayer'\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 'gap'?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 // oxlint-disable-next-line no-deprecated, no-unused-vars\n focusFirst,\n // oxlint-disable-next-line no-deprecated, 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 gap,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 1,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\n const shouldFocus =\n // oxlint-disable-next-line no-deprecated\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 = useMemo(\n () =>\n ({\n version: 2,\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n }) satisfies MenuContextValue,\n [\n activeElement,\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 gap={spacing}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\n","import {styled} from 'styled-components'\n\nimport {ElementType, EmptyProps, Props} from '../../types/component'\n\n/**\n * @public\n */\nexport type MenuDividerProps<E extends ElementType = 'hr'> = Props<EmptyProps, E>\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n` as unknown as <E extends ElementType = 'hr'>(props: MenuDividerProps<E>) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {ThemeProps} from '../../styles/types'\nimport {SelectableTone} from '../../types/selectable'\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} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {Box} from '../box/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)\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: 2`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 2) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Selectable} from '../../primitives/_selectable/selectable'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {Text} from '../../primitives/text/text'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {ElementType, Props} from '../../types/component'\nimport {Radius} from '../../types/radius'\nimport {SelectableTone} from '../../types/selectable'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupOwnProps {\n fontSize?: number | number[]\n // oxlint-disable-next-line no-redundant-type-constituents\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 gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport type MenuGroupProps<E extends ElementType = 'button'> = Props<MenuGroupOwnProps, E>\n\nconst MenuGroupComponent = function MenuGroup(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupOwnProps & {as?: ElementType},\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 gap,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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.onItemMouseEnter\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 // oxlint-disable-next-line react-compiler\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n // oxlint-disable-next-line react-compiler\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 // oxlint-disable-next-line consistent-return\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={_getArrayProp(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={spacing} 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\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const MenuGroup = MenuGroupComponent as unknown as <E extends ElementType = 'button'>(\n props: MenuGroupProps<E>,\n) => React.JSX.Element\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 {Selectable} from '../../primitives/_selectable/selectable'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {ElementType, Props} from '../../types/component'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys/hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n hotkeys?: string[]\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport type MenuItemProps<E extends ElementType = 'button'> = Props<MenuItemOwnProps, E>\n\nconst MenuItemComponent = forwardRef(function MenuItem(\n props: MenuItemOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'\n >,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n gap,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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.onItemMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onItemMouseLeave\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 = _getArrayProp(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={_getArrayProp(radius)}\n $padding={_getArrayProp(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={spacing} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const MenuItem = MenuItemComponent as unknown as <E extends ElementType = 'button'>(\n props: MenuItemProps<E>,\n) => React.JSX.Element\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../primitives/button/button'\nimport {ButtonTone} from '../../types/button'\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 // oxlint-disable-next-line no-redundant-type-constituents\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})\n","import {Children, cloneElement, forwardRef, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineOwnProps} from '../../primitives/inline/inline'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineOwnProps, '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 // oxlint-disable-next-line interactive-supports-focus\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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 // oxlint-disable-next-line no-deprecated\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 {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {responsiveGridStyle} from '../../styles/grid/gridStyle'\nimport {ResponsiveGridStyleProps} from '../../styles/grid/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridOwnProps extends Omit<BoxOwnProps, 'display'>, ResponsiveGridProps {}\n\n/**\n * @public\n */\nexport type GridProps<E extends ElementType = 'div'> = Props<GridOwnProps, E>\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\nconst GridComponent = forwardRef(function Grid(\n props: GridOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'rows'\n >,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as,\n autoRows,\n autoCols,\n autoFlow,\n // oxlint-disable-next-line no-deprecated\n columns,\n gridTemplateColumns,\n gap,\n gapX,\n gapY,\n // oxlint-disable-next-line no-deprecated\n rows,\n gridTemplateRows,\n children,\n ...restProps\n } = props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={_getArrayProp(autoRows)}\n $autoCols={_getArrayProp(autoCols)}\n $autoFlow={_getArrayProp(autoFlow)}\n $columns={_getArrayProp(gridTemplateColumns === undefined ? columns : gridTemplateColumns)}\n $gap={_getArrayProp(gap)}\n $gapX={_getArrayProp(gapX)}\n $gapY={_getArrayProp(gapY)}\n $rows={_getArrayProp(gridTemplateRows === undefined ? rows : gridTemplateRows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Grid = GridComponent as unknown as <E extends ElementType = 'div'>(\n props: GridProps<E>,\n) => React.JSX.Element\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 {SetStateAction, useCallback, useEffect, 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 useEffect(() => {\n return () => {\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n }\n }\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 {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement} from '../../types/placement'\nimport {Radius} from '../../types/radius'\nimport {Arrow} from '../../utils/arrow/arrow'\nimport {Card, CardProps} from '../card/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 = 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 // oxlint-disable-next-line no-unsafe-type-assertion\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","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'\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 {AnimatePresence} from 'motion/react'\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 type {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport type {Placement} from '../../types/placement'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {Layer, type LayerProps} from '../../utils/layer/layer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\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/useTooltipDelayGroup'\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: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = _getArrayProp(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 = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\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 {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\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 setIsGroupActive?.(open, groupedOpenDelay)\n 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 setIsGroupActive?.(open, groupDeactivateDelay)\n 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 [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\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, isInsideGroup})\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 // oxlint-disable-next-line consistent-return\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 // oxlint-disable-next-line react-compiler\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})\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return 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, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\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 isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: 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 || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n // oxlint-disable-next-line consistent-return\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {useMemo, 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 // oxlint-disable-next-line no-deprecated\n const {boundaryElement, children, element, __unstable_elements: elements} = props\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\nconst emptySubscribe = () => () => {}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portalProvider.js","names":["buildTheme","HSL","_HSL","RGB","_RGB","ThemeColorButtonModeKey","_ThemeColorButtonModeKey","ThemeColorSchemeKey","_ThemeColorSchemeKey","ThemeColorSyntax","_ThemeColorSyntax","ThemeFont","_ThemeFont","ThemeFontKey","_ThemeFontKey","ThemeFonts","_ThemeFonts","ThemeFontSize","_ThemeFontSize","ThemeFontWeight","_ThemeFontWeight","ThemeFontWeightKey","_ThemeFontWeightKey","ThemeLayer","_ThemeLayer","ThemeBoxShadow","ThemeShadow","_ThemeShadow","ThemeStyles","BaseTheme","_BaseTheme","RootTheme","_RootTheme","Theme","_Theme","BoxShadow","Styles","createColorTheme","_createColorTheme","multiply","_multiply","screen","_screen","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","parseColor","_parseColor","rgba","_rgba","studioTheme","Transition","Variant","EMPTY_ARRAY","EMPTY_RECORD","Record","POPOVER_MOTION_DURATION","POPOVER_MOTION_PROPS","card","initial","hidden","visible","scaleIn","scaleOut","children","transition","scale","willChange","opacity","when","duration","type","visualDuration","bounce","_isEnterToClickElement","element","HTMLElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","HTMLAnchorElement","nodeName","isHTMLInputElement","HTMLInputElement","HTMLButtonElement","isHTMLSelectElement","HTMLSelectElement","isHTMLTextAreaElement","HTMLTextAreaElement","containsOrEqualsElement","contains","CSSObject","Theme","getTheme_v2","EMPTY_ARRAY","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","T","callback","index","array","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","spaceIndex","Property","CSSObject","getTheme_v2","_responsive","ThemeProps","ResponsiveBoxStyleProps","BASE_STYLE","listStyle","BOX_SIZING","key","BoxSizing","content","border","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","Array","props","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","media","theme","$display","display","$sizing","sizing","boxSizing","$height","height","$overflow","overflow","CSSObject","getTheme_v2","EMPTY_ARRAY","_responsive","ThemeProps","ResponsiveFlexItemStyleProps","BASE_STYLE","minWidth","minHeight","flexItemStyle","Array","props","responsiveFlexItemStyle","media","theme","$flex","flex","CSSObject","getTheme_v2","_responsive","ThemeProps","ResponsiveGridItemStyleProps","responsiveGridItemStyle","Array","props","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","auto","full","GRID_ITEM_COLUMN","media","theme","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","CSSObject","_getResponsiveSpace","ThemeProps","ResponsiveMarginStyleProps","responsiveMarginStyle","props","theme","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","filter","Boolean","CSSObject","_getResponsiveSpace","ThemeProps","ResponsivePaddingStyleProps","responsivePaddingStyle","props","theme","$padding","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","filter","Boolean","forwardRef","styled","boxStyle","responsiveBoxStyle","ResponsiveBoxStyleProps","flexItemStyle","FlexItemStyleProps","responsiveGridItemStyle","ResponsiveGridItemStyleProps","_getArrayProp","responsiveMarginStyle","ResponsiveMarginStyleProps","responsivePaddingStyle","ResponsivePaddingStyleProps","ElementType","Props","ResponsiveBoxProps","ResponsiveFlexItemProps","ResponsiveGridItemProps","ResponsiveMarginProps","ResponsivePaddingProps","BoxOwnProps","forwardedAs","BoxProps","E","StyledBox","div","BoxComponent","Box","props","ref","$","_c","deprecated_column","deprecated_columnEnd","deprecated_columnStart","deprecated_row","deprecated_rowEnd","deprecated_rowStart","flex","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","height","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","overflow","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","restProps","sizing","t0","t1","t2","t3","as","column","columnStart","columnEnd","display","margin","padding","row","rowStart","rowEnd","asProp","undefined","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","children","React","JSX","Element","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveRadiusStyleProps","responsiveRadiusStyle","props","media","radius","theme","$radius","value","borderRadius","useTheme","useStyledTheme","Theme","Theme_v2","getTheme_v2","useTheme_v2","$","_c","t0","t1","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveFlexStyleProps","BASE_STYLE","display","responsiveFlexStyle","Array","props","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","media","theme","$align","align","alignItems","space","$gap","gap","undefined","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","forwardRef","styled","flexItemStyle","responsiveFlexStyle","FlexItemStyleProps","ResponsiveFlexStyleProps","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveFlexItemProps","ResponsiveFlexProps","FlexOwnProps","Omit","gap","FlexProps","E","StyledFlex","FlexComponent","Flex","props","ref","$","_c","align","as","justify","restProps","t0","wrap","direction","undefined","t1","t2","t3","t4","t5","t6","React","JSX","Element","CSSObject","getTheme_v2","_responsive","ThemeProps","ResponsiveTextAlignStyleProps","responsiveTextAlignStyle","props","media","theme","$align","textAlign","CSSObject","ThemeFontKey","ThemeFontSize","getTheme_v2","_responsive","rem","ThemeProps","FontWeightStyleProps","ResponsiveFontSizeStyleProps","responsiveFont","fontKey","props","$size","$weight","font","media","theme","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","CSSObject","ThemeProps","responsiveFont","ResponsiveFontStyleProps","responsiveTextFont","props","styled","SpanWithTextOverflow","span","css","getTheme_v2","ThemeProps","textBaseStyle","props","$accent","$muted","ReturnType","font","theme","code","family","text","weights","bold","forwardRef","styled","ThemeFontWeightKey","responsiveTextAlignStyle","responsiveTextFont","ResponsiveFontStyleProps","_getArrayProp","ElementType","Props","TextAlign","SpanWithTextOverflow","textBaseStyle","TextOwnProps","accent","align","muted","size","textOverflow","weight","TextProps","E","StyledText","div","TextComponent","Text","props","ref","$","_c","childrenProp","restProps","t0","t1","t2","children","undefined","t3","t4","t5","t6","React","JSX","Element","SpinnerIcon","forwardRef","keyframes","styled","Text","SpinnerProps","muted","size","rotate","StyledSpinner","Spinner","props","ref","$","_c","t0","Symbol","for","t1","ThemeColorCard_v2","ThemeColorState_v2","CSSObject","_cardColorStyle","base","color","checkered","backdrop","focusRing","shadow","outline","umbra","penumbra","ambient","accent","fg","avatar","gray","bg","blue","purple","magenta","red","orange","yellow","green","cyan","muted","undefined","border","badge","default","dot","icon","neutral","primary","suggest","positive","caution","critical","code","kbd","link","skeleton","from","to","ThemeFocusRing","focusRingBorderStyle","border","color","width","focusRingStyle","opts","base","bg","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","filter","Boolean","join","css","CSSObject","getTheme_v2","_cardColorStyle","focusRingBorderStyle","focusRingStyle","ThemeProps","ButtonMode","ButtonTone","ButtonWidth","buttonBaseStyles","props","$width","ReturnType","style","theme","button","combineBoxShadow","boxShadows","filter","Boolean","join","buttonColorStyles","$mode","$tone","color","baseColor","shadow","mode","default","border","width","defaultBoxShadow","undefined","enabled","disabled","boxShadow","base","bg","focusRing","hovered","pressed","root","forwardRef","isValidElement","useMemo","isValidElementType","styled","ThemeFontWeightKey","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useTheme_v2","ButtonMode","ButtonTextAlign","ButtonTone","ButtonWidth","ElementType","Props","FlexJustify","Box","Flex","Spinner","Text","ResponsivePaddingProps","ResponsiveRadiusProps","buttonBaseStyles","buttonColorStyles","ButtonOwnProps","fontSize","mode","icon","React","ReactNode","iconRight","justify","loading","selected","space","gap","muted","text","textAlign","textWeight","tone","type","width","ButtonProps","E","StyledButton","button","$mode","$tone","$width","LoadingBox","div","ButtonComponent","Button","props","ref","$","_c","IconComponent","IconRightComponent","children","disabled","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","restProps","t0","t1","t2","t3","t4","t5","t6","t7","t8","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","radius","undefined","justifyProp","paddingProp","radiusProp","deprecated_space","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","spacing","t20","boxProps","t21","Boolean","t22","t23","t24","t25","t26","t27","JSX","Element","CSSObject","getTheme_v2","_responsive","ThemeProps","ResponsiveBorderStyleProps","responsiveBorderStyle","Array","props","border","borderTop","borderRight","borderBottom","borderLeft","card","media","theme","borderStyle","width","$border","value","$borderTop","$borderRight","$borderBottom","$borderLeft","CSSObject","ThemeBoxShadow","ThemeShadow","getTheme_v2","EMPTY_RECORD","_responsive","rem","ThemeProps","ResponsiveShadowStyleProps","toBoxShadow","shadow","color","map","join","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","props","card","media","theme","$shadow","index","getGlobalScope","globalThis","window","self","global","Error","globalScope","Context","createContext","globalScope","createGlobalScopedContext","ContextType","key","defaultValue","T","symbol","Symbol","for","document","context","displayName","createGlobalScopedContext","ThemeContextValue","ThemeContext","useContext","useMemo","ThemeProvider","StyledThemeProvider","getScopedTheme","ThemeColorCardToneKey","ThemeColorSchemeKey","RootTheme","Theme","ThemeContext","ThemeContextValue","ThemeProviderProps","children","React","ReactNode","scheme","theme","tone","props","$","_c","parentTheme","rootTheme","t0","bb0","t1","version","themeContext","bb1","t2","Symbol","for","t3","useContext","ThemeContext","ThemeContextValue","useRootTheme","value","Error","ThemeColorCardToneKey","ThemeColorSchemeKey","ThemeProvider","useRootTheme","ThemeColorProviderProps","children","React","ReactNode","scheme","tone","ThemeColorProvider","props","$","_c","root","t0","t1","theme","css","getTheme_v2","_cardColorStyle","focusRingStyle","ThemeProps","CardStyleProps","cardStyle","props","Array","ReturnType","cardBaseStyle","cardColorStyle","$checkered","space","theme","$focusRing","$muted","card","color","style","border","width","_dark","selectable","default","disabled","pressed","selected","hovered","base","focusRing","undefined","root","forwardRef","isValidElementType","styled","ThemeColorSchemeKey","responsiveBorderStyle","ResponsiveBorderStyleProps","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","responsiveShadowStyle","ResponsiveShadowStyleProps","ThemeColorProvider","useRootTheme","CardTone","ElementType","Props","Box","BoxOwnProps","ResponsiveBorderProps","ResponsiveRadiusProps","ResponsiveShadowProps","cardStyle","CardStyleProps","CardOwnProps","__unstable_checkered","__unstable_focusRing","disabled","muted","pressed","scheme","selected","tone","CardProps","E","StyledCard","CardComponent","Card","props","ref","$","_c","asProp","border","borderBottom","borderLeft","borderRight","borderTop","restProps","shadow","t0","t1","t2","t3","as","radius","checkered","undefined","focusRing","toneProp","rootTheme","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","React","JSX","Element","ResizeObserverPolyfill","_ResizeObserver","ElementRectValue","width","height","ElementSize","content","border","_contentRect","DOMRectReadOnly","_ElementSizeSubscriber","elementRect","_ElementSizeObserver","subscribe","element","HTMLElement","subscriber","_ElementSizeListener","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","resizeObserver","entry","contentRect","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","listener","sub","push","idx","indexOf","splice","length","useEffect","useState","_elementSizeObserver","ElementSize","useElementSize","element","$","_c","size","setSize","t0","t1","subscribe","useMemo","useSyncExternalStore","useTheme_v2","_MediaStore","subscribe","onStoreChange","getSnapshot","MediaQueryMinWidth","MediaQueryMaxWidth","MediaQueryMinMaxWidth","MediaQuery","_getMediaQuery","media","index","length","_createMediaStore","mediaLen","sizes","mq","MediaQueryList","getSizes","mediaQuery","push","window","matchMedia","matches","disposeFns","handleChange","addEventListener","removeEventListener","disposeFn","getServerSnapshot","useMediaIndex","$","_c","t0","store","useCallback","useDebugValue","useSyncExternalStore","useMatchMedia","mediaQueryString","getServerSnapshot","$","_c","t0","onStoreChange","media","window","matchMedia","addEventListener","removeEventListener","t1","matches","useMatchMedia","usePrefersReducedMotion","t0","getServerSnapshot","undefined","_temp","Middleware","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","width","floatingHeight","height","shiftX","shift","x","shiftY","y","isVerticalPlacement","includes","originX","originY","clamp","data","num","min","max","Math","isRecord","value","Record","Boolean","Array","isArray","createGlobalScopedContext","BoundaryElementContextValue","BoundaryElementContext","useContext","isRecord","BoundaryElementContext","BoundaryElementContextValue","DEFAULT_VALUE","version","element","useBoundaryElement","value","Error","getElementRef","element","React","ReactElement","getter","Object","getOwnPropertyDescriptor","props","get","mayWarn","isReactWarning","ref","Ref","isRecord","LayerContextValue","getLayerContext","contextValue","version","Error","createGlobalScopedContext","LayerContextValue","LayerContext","useCallback","useContext","useEffect","useMemo","useState","useMediaIndex","_getArrayProp","getLayerContext","LayerContext","LayerContextValue","LayerProviderProps","children","React","ReactNode","zOffset","LayerProvider","props","$","_c","t0","zOffsetProp","undefined","parentContextValue","t1","parent","parentRegisterChild","registerChild","parentLevel","level","t2","maxMediaIndex","length","mediaIndex","Math","min","zIndex","t3","Symbol","for","setChildLayers","size","setSize","isTopLayer","t4","childLevel","parentDispose","state","prevLen","nextState","Object","keys","_temp","state_0","nextState_0","_temp2","t5","t6","t7","version","value","t8","v_0","v","useContext","getLayerContext","LayerContext","LayerContextValue","useLayer","$","_c","value","Error","t1","t0","err","message","createGlobalScopedContext","globalScope","PortalContextValue","key","elementKey","Symbol","for","defaultContextValue","version","boundaryElement","element","document","createElement","setAttribute","body","appendChild","PortalContext","useContext","isRecord","PortalContext","PortalContextValue","usePortal","value","Error","version","createPortal","usePortal","PortalProps","children","React","ReactNode","__unstable_name","Portal","props","$","_c","name","portal","portalElement","elements","element","default","t0","Placement","PopoverMargins","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","Record","detectOverflow","Middleware","PopoverMargins","size","options","boundaryElement","HTMLElement","constrainSize","margins","matchReferenceWidth","maxWidthRef","React","RefObject","padding","referenceWidthRef","setReferenceWidth","referenceWidth","widthRef","name","fn","args","elements","placement","platform","rects","floating","reference","overflow","altBoundary","boundary","undefined","elementContext","rootBoundary","maxWidth","Infinity","maxHeight","floatingW","width","floatingH","height","includes","left","right","top","bottom","availableWidth","availableHeight","current","style","Math","min","nextDimensions","getDimensions","targetH","targetW","reset","DEFAULT_POPOVER_PADDING","PopoverWidth","calcCurrentWidth","params","mediaIndex","container","width","w","currentWidth","undefined","length","calcMaxWidth","boundaryWidth","Math","min","Infinity","PointCmd","type","x","y","radius","CurveCmd","startControl","Point","endControl","curveEnd","Cmd","moveTowardsLength","movingPoint","targetPoint","amount","width","height","distance","Math","sqrt","moveTowardsFractional","min","fraction","getRoundedCommands","points","len","length","cmds","i","point","prevPoint","nextPoint","curveStart","push","compileCommands","map","n","idx","join","ForwardedRef","forwardRef","HTMLProps","css","styled","useTheme_v2","compileCommands","getRoundedCommands","Point","StyledArrow","div","$w","w","StrokePath","path","ShapePath","Arrow","props","ref","$","_c","h","restProps","t0","width","height","radius","undefined","card","strokeWidth","shadow","outline","center","t1","points","x","y","cmds","strokePath","fillPath","t2","t3","t4","t5","t6","t7","t8","Strategy","motion","MotionProps","React","CSSProperties","forwardRef","useMemo","styled","ThemeColorSchemeKey","POPOVER_MOTION_PROPS","BoxOverflow","CardTone","Placement","PopoverMargins","Radius","Arrow","useLayer","Card","CardProps","Flex","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_MARGINS","MotionCard","create","MotionFlex","PopoverCard","props","ref","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","marginsProp","originX","originY","overflow","padding","placement","radius","restProps","scheme","shadow","strategy","style","tone","width","xProp","yProp","__unstable_margins","x","y","zIndex","margins","t0","undefined","t1","left","position","top","willChange","rootStyle","t2","t3","t4","right","bottom","arrowStyle","t5","t6","t7","t8","t9","t10","transition","t11","t12","card","arrow","autoPlacement","autoUpdate","flip","hide","Middleware","offset","RootBoundary","shift","useFloating","AnimatePresence","cloneElement","forwardRef","Ref","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","ThemeColorSchemeKey","useElementSize","useMediaIndex","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","BoxOverflow","CardTone","Placement","PopoverMargins","useBoundaryElement","getElementRef","LayerProps","LayerProvider","useLayer","Portal","ResponsiveRadiusProps","ResponsiveShadowProps","DEFAULT_FALLBACK_PLACEMENTS","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_MARGINS","DEFAULT_POPOVER_PADDING","size","calcCurrentWidth","calcMaxWidth","PopoverCard","PopoverUpdateCallback","PopoverWidth","PopoverProps","Omit","__unstable_margins","animate","boundaryElement","HTMLElement","children","React","JSX","Element","constrainSize","content","ReactNode","disabled","fallbackPlacements","floatingBoundary","matchReferenceWidth","modal","open","overflow","padding","placement","placementStrategy","portal","preventOverflow","referenceBoundary","referenceElement","scheme","tone","updateRef","width","ViewportOverlay","$","_c","zIndex","t0","height","inset","position","Popover","props","forwardedRef","container","layer","boundaryElementContext","_boundaryElement","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","paddingProp","restProps","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","onActivate","t24","t25","t26","t27","t28","t29","t30","radius","t31","t32","t33","t34","shadow","t35","t36","t37","zOffset","t38","t39","t40","margins","undefined","_animate","arrowProp","placementProp","radiusProp","shadowProp","widthProp","element","zOffsetProp","popover","prefersReducedMotion","boundarySize","border","widthArrayProp","ref","arrowRef","Symbol","for","current","mediaIndex","boundaryWidth","widthRef","currentWidth","maxWidth","maxWidthRef","referenceWidthRef","floatingElement","referenceWidth","style","referenceWidth_0","setReferenceWidth","rootBoundary","middleware","useMiddleware","reference","whileElementsMounted","elements","x","y","middlewareData","refs","strategy","update","referenceHidden","arrowX","arrowY","originX","originY","arrowEl","setArrow","node","setFloating","bb0","setReference","child","ret","allowedPlacements","concat","push","boundary","mainAxis","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveStackSpaceStyleProps","$space","BASE_STYLE","display","listStyle","stackBaseStyle","responsiveStackSpaceStyle","props","media","space","theme","spaceIndex","gridGap","forwardRef","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","responsiveStackSpaceStyle","ResponsiveStackSpaceStyleProps","stackBaseStyle","StackOwnProps","gap","space","StackProps","E","StyledStack","StackComponent","Stack","props","ref","$","_c","as","deprecated_space","restProps","spacing","undefined","t0","t1","t2","React","JSX","Element","useEffect","useCustomValidity","ref","customValidity","$","_c","t0","t1","current","setCustomValidity","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","TextInputResponsivePaddingStyleProps","$fontSize","$iconLeft","$iconRight","$padding","$space","responsiveInputPaddingStyle","props","font","media","space","theme","len","Math","max","length","_padding","_space","_fontSize","i","undefined","_","size","text","sizes","emSize","lineHeight","ascenderHeight","descenderHeight","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","css","ThemeColorSchemeKey","CSSObject","ThemeFontWeightKey","getTheme_v2","CardTone","focusRingBorderStyle","focusRingStyle","_responsive","rem","ThemeProps","TextInputInputStyleProps","$fontSize","$scheme","$tone","$weight","TextInputRepresentationStyleProps","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","ROOT_STYLE","textInputRootStyle","ReturnType","textInputBaseStyle","props","color","font","theme","text","family","weights","regular","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","media","sizeIndex","size","sizes","fontSize","lineHeight","textInputRepresentationStyle","undefined","bg","border","width","focusRing","hovered","CloseIcon","forwardRef","isValidElement","useCallback","useImperativeHandle","useMemo","useRef","isValidElementType","styled","ThemeFontWeightKey","EMPTY_RECORD","useCustomValidity","_getArrayProp","responsiveInputPaddingStyle","TextInputResponsivePaddingStyleProps","textInputBaseStyle","textInputFontSizeStyle","TextInputInputStyleProps","textInputRepresentationStyle","TextInputRepresentationStyleProps","textInputRootStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useRootTheme","Radius","Box","Button","ButtonOwnProps","Card","Text","TextInputClearButtonProps","Omit","React","HTMLProps","HTMLButtonElement","TextInputType","TextInputProps","__unstable_disableFocusRing","border","clearButton","customValidity","fontSize","icon","ElementType","ReactNode","iconRight","onClear","padding","prefix","radius","space","gap","suffix","type","weight","CLEAR_BUTTON_BOX_STYLE","CSSProperties","zIndex","StyledTextInput","attrs","forwardedAs","InputRoot","span","Prefix","Suffix","Input","input","Presentation","LeftBox","RightBox","RightCard","TextInputClearButton","display","TextInput","props","forwardedRef","$","_c","IconComponent","IconRightComponent","readOnly","restProps","t0","t1","t2","t3","t4","t5","t6","disabled","undefined","fontSizeProp","paddingProp","radiusProp","deprecated_space","ref","rootTheme","t7","t8","t9","t10","t11","$hasClearButton","Boolean","$hasIcon","$hasIconRight","$hasSuffix","$hasPrefix","t12","Symbol","for","current","handleClearMouseDown","_temp","t13","event_0","event","preventDefault","stopPropagation","focus","handleClearClick","t14","prefixNode","t15","t16","t17","t18","scheme","tone","presentationNode","t19","map","_temp2","clearButtonBoxPadding","t20","_temp3","clearButtonPadding","clearButtonProps","t21","clearButtonNode","t22","suffixNode","t23","t24","t25","t26","v","v_0","useDebugValue","useEffect","useEffectEvent","EMPTY_ARRAY","ClickOutsideEventListener","event","MouseEvent","ClickOutsideEventElements","HTMLElement","useClickOutsideEvent","listener","t0","boundaryElement","$","_c","elementsArg","undefined","_temp","t1","evt","target","Node","resolvedBoundaryElement","contains","elements","flat","el","onEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3","useEffect","useEffectEvent","useGlobalKeyDown","onKeyDown","options","$","_c","t0","event","handleKeyDown","t1","handler","event_0","window","addEventListener","removeEventListener","t2","FocusEvent","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","styled","EMPTY_RECORD","containsOrEqualsElement","isHTMLElement","LayerProvider","useLayer","LayerProps","as","React","ElementType","JSX","IntrinsicElements","onActivate","props","activeElement","HTMLElement","zOffset","LayerChildrenProps","StyledLayer","div","position","LayerChildren","forwardedRef","$","_c","children","onFocus","restProps","t0","style","undefined","zIndex","isTopLayer","lastFocusedRef","ref","isTopLayerRef","t1","Symbol","for","current","t2","t3","becameTopLayer","t4","event","rootElement","target","document","handleFocus","t5","t6","Layer","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveInlineSpaceStyleProps","inlineBaseStyle","display","verticalAlign","inlineSpaceStyle","props","media","space","theme","$space","spaceIndex","_space","padding","Children","forwardRef","useMemo","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","inlineBaseStyle","inlineSpaceStyle","ResponsiveInlineSpaceStyleProps","InlineOwnProps","Omit","space","gap","InlineProps","E","StyledInline","InlineComponent","Inline","props","ref","$","_c","as","childrenProp","deprecated_space","restProps","children","spacing","undefined","t0","map","_temp","t1","t2","t3","React","JSX","Element","child","forwardRef","css","styled","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","ElementType","Props","Radius","Box","Text","KBDOwnProps","fontSize","padding","radius","KBDProps","E","kbdStyle","StyledKBD","kbd","KBDComponent","KBD","props","ref","$","_c","children","restProps","t0","t1","t2","undefined","t3","t4","t5","t6","React","JSX","Element","forwardRef","styled","Inline","KBD","_getArrayProp","Radius","HotkeysProps","fontSize","gap","padding","radius","space","keys","StyledHotkeys","kbd","Key","Hotkeys","props","ref","$","_c","restProps","t0","deprecated_space","undefined","t1","t2","spacing","length","t3","Symbol","for","t4","key","i","map","t5","createGlobalScopedContext","MenuContextValue","version","activeElement","HTMLElement","mount","element","selected","onClickOutside","event","MouseEvent","onEscape","onItemClick","onItemMouseEnter","React","onItemMouseLeave","registerElement","el","MenuContext","isHTMLAnchorElement","isHTMLButtonElement","_isFocusable","element","HTMLElement","getAttribute","disabled","_getFocusableElements","elements","filter","_getDOMPath","rootElement","el","path","e","parentElement","children","Array","from","childNodes","index","indexOf","unshift","EMPTY_PATH","_sortElements","map","WeakMap","set","_sort","a","b","_a","get","_b","len","Math","max","length","i","aIndex","bIndex","sort","useCallback","useEffect","useRef","useState","_getFocusableElements","_sortElements","MenuController","activeElement","HTMLElement","activeIndex","handleItemMouseEnter","event","React","MouseEvent","handleItemMouseLeave","handleKeyDown","KeyboardEvent","HTMLDivElement","mount","element","selected","useMenuController","props","$","_c","onKeyDown","originElement","shouldFocus","rootElementRef","t0","Symbol","for","elementsRef","_setActiveIndex","activeIndexRef","setActiveElement","t1","nextActiveIndex","current","setActiveIndex","t2","_temp","indexOf","push","selectedIndex","idx","splice","t3","key","focus","preventDefault","stopPropagation","focusableElements","el","currentIndex","focusableElements_0","el_0","length","currentIndex_0","focusableElements_1","focusableLen","focusedElement","focusedIndex","el_1","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","t4","event_0","element_0","currentTarget","currentIndex_3","t5","t6","t7","rafId","requestAnimationFrame","focusableElements_3","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","element_1","cancelAnimationFrame","t8","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","styled","useClickOutsideEvent","useGlobalKeyDown","Box","Stack","ResponsivePaddingProps","useLayer","MenuContext","MenuContextValue","useMenuController","MenuProps","event","MouseEvent","index","HTMLElement","el","FocusEvent","StyledMenu","Menu","props","forwardedRef","$","_c","_shouldFocus","children","gap","onClickOutside","onEscape","onItemClick","onItemSelect","onKeyDown","originElement","registerElement","restProps","t0","t1","t2","focusFirst","focusLast","t3","t4","t5","t6","t7","t8","padding","t9","t10","shouldFocus","t11","t12","space","t13","t14","undefined","deprecated_space","spacing","ref","Symbol","for","current","isTopLayer","rootElementRef","activeElement","activeIndex","handleItemMouseEnter","handleItemMouseLeave","handleKeyDown","mount","unregisterElementRef","handleRefChange","key","stopPropagation","version","onItemMouseEnter","onItemMouseLeave","value","styled","ElementType","EmptyProps","Props","MenuDividerProps","E","MenuDivider","hr","props","React","JSX","Element","css","getTheme_v2","_cardColorStyle","ThemeProps","SelectableTone","SelectableStyleProps","$tone","selectableBaseStyle","ReturnType","selectableColorStyle","props","color","style","theme","tone","selectable","enabled","disabled","pressed","selected","hovered","card","root","styled","responsiveRadiusStyle","ResponsiveRadiusStyleProps","Box","selectableBaseStyle","selectableColorStyle","SelectableStyleProps","Selectable","useContext","isRecord","MenuContext","MenuContextValue","useMenu","value","Error","version","ChevronRightIcon","isValidElement","useCallback","useEffect","useState","isValidElementType","Selectable","Box","Flex","Popover","PopoverProps","Text","_getArrayProp","useRootTheme","ElementType","Props","Radius","SelectableTone","Menu","MenuProps","useMenu","MenuGroupOwnProps","fontSize","icon","React","ReactNode","menu","Omit","padding","popover","radius","gap","space","text","tone","MenuGroupProps","E","MenuGroupComponent","MenuGroup","props","$","_c","IconComponent","children","menuProps","onClick","restProps","t0","t1","t2","t3","t4","t5","as","undefined","deprecated_space","spacing","scheme","activeElement","mount","onClickOutside","onEscape","onItemClick","onItemMouseEnter","_onItemMouseEnter","registerElement","rootElement","setRootElement","open","setOpen","shouldFocus","setShouldFocus","active","Boolean","withinMenu","setWithinMenu","t6","event","handleMouseEnter","t7","event_0","key","stopPropagation","requestAnimationFrame","focus","handleMenuKeyDown","t8","event_1","handleClick","t9","handleChildItemClick","t10","Symbol","for","handleMenuMouseEnter","t11","t12","t13","t14","t15","t16","t17","t18","rafId","cancelAnimationFrame","t19","childMenu","t20","event_2","target","currentTarget","document","handleKeyDown","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","JSX","Element","forwardRef","isValidElement","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","isValidElementType","Selectable","Box","Flex","Text","ResponsivePaddingProps","ResponsiveRadiusProps","_getArrayProp","useRootTheme","ElementType","Props","SelectableTone","Hotkeys","useMenu","MenuItemOwnProps","fontSize","hotkeys","icon","React","ReactNode","iconRight","pressed","selected","gap","space","text","tone","MenuItemProps","E","MenuItemComponent","MenuItem","props","forwardedRef","$","_c","IconComponent","IconRightComponent","children","disabled","onClick","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","restProps","selectedProp","t0","t1","t2","t3","t4","t5","as","padding","radius","undefined","deprecated_space","spacing","scheme","menu","activeElement","mount","onItemClick","onItemMouseEnter","_onItemMouseEnter","onItemMouseLeave","_onItemMouseLeave","rootElement","setRootElement","active","Boolean","ref","t6","Symbol","for","current","t7","t8","t9","event","handleClick","t10","paddingProps","t11","map","_temp","hotkeysFontSize","t12","el","setRef","t13","t14","t15","t16","t17","t18","t19","t20","marginTop","marginBottom","t21","t22","JSX","Element","s","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","styled","Button","ButtonTone","TabProps","React","ElementType","ReactNode","CustomButton","Tab","props","forwardedRef","$","_c","focused","icon","id","label","onClick","onFocus","restProps","selected","t0","t1","fontSize","padding","undefined","ref","focusedRef","t2","Symbol","for","current","t3","handleBlur","t4","event","handleFocus","t5","t6","focus","t7","t8","t9","Children","cloneElement","forwardRef","isValidElement","useCallback","useState","styled","Inline","InlineOwnProps","TabListProps","Omit","children","Array","React","JSX","Element","CustomInline","TabList","props","ref","$","_c","childrenProp","restProps","focusedIndex","setFocusedIndex","t0","toArray","filter","t1","child","childIndex","focused","key","onFocus","map","tabs","numTabs","length","event","prevIndex","prevIndex_0","handleKeyDown","t2","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveGridStyleProps","GRID_CSS","display","listStyle","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","Array","props","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","media","theme","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","space","$gap","gap","gridGap","undefined","$gapX","gapX","columnGap","$gapY","gapY","rowGap","forwardRef","styled","responsiveGridStyle","ResponsiveGridStyleProps","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveGridProps","GridOwnProps","Omit","GridProps","E","StyledGrid","GridComponent","Grid","props","ref","$","_c","as","autoCols","autoFlow","autoRows","children","columns","gap","gapX","gapY","gridTemplateColumns","gridTemplateRows","restProps","rows","t0","undefined","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","React","JSX","Element","useMatchMedia","usePrefersDark","t0","getServerSnapshot","undefined","_temp","SetStateAction","useCallback","useEffect","useRef","useState","useDelayedState","initialState","$","_c","state","setState","delayedAction","undefined","t0","Symbol","for","nextState","delay","action","current","clearTimeout","setTimeout","onStateChange","t1","t2","t3","Placement","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","DEFAULT_FALLBACK_PLACEMENTS","Record","motion","MotionProps","React","CSSProperties","forwardRef","useMemo","styled","ThemeColorSchemeKey","POPOVER_MOTION_PROPS","Placement","Radius","Arrow","Card","CardProps","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_ARROW_WIDTH","MotionCard","create","TooltipCard","props","ref","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","originX","originY","padding","placement","radius","restProps","scheme","shadow","style","t0","undefined","t1","willChange","rootStyle","t2","t3","t4","left","top","right","bottom","arrowStyle","t5","t6","t7","t8","t9","t10","card","transition","createGlobalScopedContext","TooltipDelayGroupContextValue","TooltipDelayGroupContext","useContext","TooltipDelayGroupContext","TooltipDelayGroupContextValue","useTooltipDelayGroup","value","arrow","autoUpdate","flip","Middleware","offset","RootBoundary","shift","useFloating","AnimatePresence","cloneElement","forwardRef","useCallback","useEffect","useId","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","styled","useEffectEvent","ThemeColorSchemeKey","useDelayedState","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","Placement","useBoundaryElement","getElementRef","Layer","LayerProps","Portal","usePortal","Delay","DEFAULT_FALLBACK_PLACEMENTS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","useTooltipDelayGroup","TooltipProps","Omit","allowedAutoPlacements","boundaryElement","HTMLElement","children","React","JSX","Element","content","ReactNode","disabled","fallbackPlacements","padding","placement","portal","radius","scheme","shadow","delay","animate","StyledTooltip","Tooltip","props","forwardedRef","$","_c","boundaryElementContext","layer","_boundaryElement","_fallbackPlacementsProp","_zOffset","childProp","portalProp","restProps","t0","t1","t2","t3","t4","t5","zOffset","_animate","undefined","arrowProp","placementProp","element","fallbackPlacementsProp","tooltip","prefersReducedMotion","t6","ref","referenceElement","setReferenceElement","arrowRef","tooltipMaxWidth","setTooltipMaxWidth","t7","Symbol","for","current","portalElement","elements","t8","rootBoundary","middleware","useMiddleware","t9","reference","t10","whileElementsMounted","floatingStyles","middlewareData","refs","update","arrowX","x","arrowY","y","originX","originY","tooltipId","isOpen","setIsOpen","delayGroupContext","t11","setIsGroupActive","setOpenTooltipId","showTooltip","openTooltipId","isInsideGroup","openDelayProp","open","closeDelayProp","close","openDelay","closeDelay","t12","immediate","groupedOpenDelay","groupDeactivateDelay","standaloneDelay","handleIsOpenChange","t13","e","onBlur","handleBlur","t14","e_0","onClick","handleClick","t15","e_1","onContextMenu","handleContextMenu","t16","e_2","onFocus","handleFocus","t17","e_3","onMouseEnter","handleMouseEnter","t18","e_4","onMouseLeave","handleMouseLeave","t19","useCloseOnMouseLeave","t20","t21","t22","t23","t24","t25","handleWindowKeyDown","event","key","window","addEventListener","removeEventListener","t26","offsetWidth","availableWidths","document","body","Math","min","t27","t28","arrowEl","setArrow","t29","node","setFloating","t30","bb0","t31","child","t32","t33","t34","t35","maxWidth","t36","t37","t38","t39","t40","ret","boundary","push","mainAxis","target","teardown","isHoveringReference","Node","contains","onMouseMove","handleMouseMove","useMemo","useSyncExternalStore","PortalContext","PortalContextValue","PortalProviderProps","boundaryElement","HTMLElement","children","React","ReactNode","element","__unstable_elements","Record","PortalProvider","props","$","_c","elements","fallbackElement","emptySubscribe","_temp","_temp2","t0","t1","t2","version","value","t3","document","body"],"sources":["../../src/core/_compat.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/styles/helpers.ts","../../src/core/styles/box/boxStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/grid/gridItemStyle.ts","../../src/core/styles/margin/marginStyle.ts","../../src/core/styles/padding/paddingStyle.ts","../../src/core/primitives/box/box.tsx","../../src/core/styles/radius/radiusStyle.ts","../../src/core/theme/useTheme.ts","../../src/core/styles/flex/flexStyle.ts","../../src/core/primitives/flex/flex.tsx","../../src/core/styles/font/textAlignStyle.ts","../../src/core/styles/font/responsiveFont.ts","../../src/core/styles/font/textFontStyle.ts","../../src/core/utils/spanWithTextOverflow.tsx","../../src/core/primitives/text/styles.ts","../../src/core/primitives/text/text.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/styles/card/_cardColorStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/primitives/button/styles.ts","../../src/core/primitives/button/button.tsx","../../src/core/styles/border/borderStyle.ts","../../src/core/styles/shadow/shadowStyle.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/primitives/card/styles.ts","../../src/core/primitives/card/card.tsx","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/middleware/origin.ts","../../src/core/lib/isRecord.ts","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/getElementRef.ts","../../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/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.ts","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/popover/helpers.ts","../../src/core/utils/arrow/cmds.ts","../../src/core/utils/arrow/arrow.tsx","../../src/core/primitives/popover/popoverCard.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/stack/styles.ts","../../src/core/primitives/stack/stack.tsx","../../src/core/hooks/useCustomValidity.ts","../../src/core/styles/input/responsiveInputPaddingStyle.ts","../../src/core/styles/input/textInputStyle.ts","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/utils/layer/layer.tsx","../../src/core/primitives/inline/styles.ts","../../src/core/primitives/inline/inline.tsx","../../src/core/primitives/kbd/kbd.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","../../src/core/styles/grid/gridStyle.ts","../../src/core/primitives/grid/grid.tsx","../../src/core/hooks/usePrefersDark.ts","../../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/tooltip.tsx","../../src/core/utils/portal/portalProvider.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {buildTheme} from '../theme/build/buildTheme'\nimport {type HSL as _HSL, type RGB as _RGB} from '../theme/build/lib/color-fns/types'\nimport {\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n} from '../theme/system/color/_system'\nimport {type ThemeColorSyntax as _ThemeColorSyntax} from '../theme/system/color/syntax'\nimport {\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} from '../theme/system/font'\nimport {type ThemeLayer as _ThemeLayer} from '../theme/system/layer'\nimport {type ThemeBoxShadow, type ThemeShadow as _ThemeShadow} from '../theme/system/shadow'\nimport {type ThemeStyles} from '../theme/system/styles'\nimport {\n type BaseTheme as _BaseTheme,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n} from '../theme/system/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\nimport {createColorTheme as _createColorTheme} from '../theme/build/_deprecated/color/factory'\nimport {multiply as _multiply} from '../theme/build/lib/color-fns/blend/multiply'\nimport {screen as _screen} from '../theme/build/lib/color-fns/blend/screen'\nimport {\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n} from '../theme/build/lib/color-fns/convert'\nimport {parseColor as _parseColor} from '../theme/build/lib/color-fns/parse'\nimport {rgba as _rgba} from '../theme/build/lib/color-fns/rgba'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\n// oxlint-disable-next-line no-deprecated\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 'motion/react'\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 * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {CSSObject} from '../../theme/system/css'\nimport {Theme} from '../../theme/system/theme'\nimport {getTheme_v2} from '../../theme/versioning/getTheme_v2'\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 {Property} from 'csstype'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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\nfunction responsiveFlexItemStyle(props: ResponsiveFlexItemStyleProps & ThemeProps): 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: `${flex}`}))\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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} from '../../../theme/system/css'\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 // oxlint-disable-next-line no-unsafe-type-assertion\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 '../../../theme/system/css'\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 // oxlint-disable-next-line no-unsafe-type-assertion\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 {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {boxStyle, responsiveBoxStyle} from '../../styles/box/boxStyle'\nimport {ResponsiveBoxStyleProps} from '../../styles/box/types'\nimport {flexItemStyle} from '../../styles/flex/flexItemStyle'\nimport {FlexItemStyleProps} from '../../styles/flex/types'\nimport {responsiveGridItemStyle} from '../../styles/grid/gridItemStyle'\nimport {ResponsiveGridItemStyleProps} from '../../styles/grid/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveMarginStyle} from '../../styles/margin/marginStyle'\nimport {ResponsiveMarginStyleProps} from '../../styles/margin/types'\nimport {responsivePaddingStyle} from '../../styles/padding/paddingStyle'\nimport {ResponsivePaddingStyleProps} from '../../styles/padding/types'\nimport {ElementType, Props} from '../../types/component'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * The props that `Box` adds on top of the element it renders as.\n *\n * @public\n */\nexport interface BoxOwnProps\n extends\n ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n forwardedAs?: ElementType\n}\n\n/**\n * @public\n */\nexport type BoxProps<E extends ElementType = 'div'> = Props<BoxOwnProps, E>\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\nconst BoxComponent = forwardRef(function Box(\n props: BoxOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n gridColumn,\n // oxlint-disable-next-line no-deprecated\n column: deprecated_column,\n gridColumnStart,\n // oxlint-disable-next-line no-deprecated\n columnStart: deprecated_columnStart,\n gridColumnEnd,\n // oxlint-disable-next-line no-deprecated\n columnEnd: deprecated_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 gridRow,\n // oxlint-disable-next-line no-deprecated\n row: deprecated_row,\n gridRowStart,\n // oxlint-disable-next-line no-deprecated\n rowStart: deprecated_rowStart,\n gridRowEnd,\n // oxlint-disable-next-line no-deprecated\n rowEnd: deprecated_rowEnd,\n sizing,\n ...restProps\n } = props\n const column = gridColumn === undefined ? deprecated_column : gridColumn\n const columnStart = gridColumnStart === undefined ? deprecated_columnStart : gridColumnStart\n const columnEnd = gridColumnEnd === undefined ? deprecated_columnEnd : gridColumnEnd\n const row = gridRow === undefined ? deprecated_row : gridRow\n const rowStart = gridRowStart === undefined ? deprecated_rowStart : gridRowStart\n const rowEnd = gridRowEnd === undefined ? deprecated_rowEnd : gridRowEnd\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={_getArrayProp(column)}\n $columnStart={_getArrayProp(columnStart)}\n $columnEnd={_getArrayProp(columnEnd)}\n $display={_getArrayProp(display)}\n $flex={_getArrayProp(flex)}\n $height={_getArrayProp(height)}\n $margin={_getArrayProp(margin)}\n $marginX={_getArrayProp(marginX)}\n $marginY={_getArrayProp(marginY)}\n $marginTop={_getArrayProp(marginTop)}\n $marginRight={_getArrayProp(marginRight)}\n $marginBottom={_getArrayProp(marginBottom)}\n $marginLeft={_getArrayProp(marginLeft)}\n $overflow={_getArrayProp(overflow)}\n $padding={_getArrayProp(padding)}\n $paddingX={_getArrayProp(paddingX)}\n $paddingY={_getArrayProp(paddingY)}\n $paddingTop={_getArrayProp(paddingTop)}\n $paddingRight={_getArrayProp(paddingRight)}\n $paddingBottom={_getArrayProp(paddingBottom)}\n $paddingLeft={_getArrayProp(paddingLeft)}\n $row={_getArrayProp(row)}\n $rowStart={_getArrayProp(rowStart)}\n $rowEnd={_getArrayProp(rowEnd)}\n $sizing={_getArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </StyledBox>\n )\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 */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Box = BoxComponent as unknown as <E extends ElementType = 'div'>(\n props: BoxProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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 {useTheme as useStyledTheme} from 'styled-components'\n\nimport {Theme, Theme_v2} from '../../theme/system/theme'\nimport {getTheme_v2} from '../../theme/versioning/getTheme_v2'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n // oxlint-disable-next-line no-unnecessary-type-assertion\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n // oxlint-disable-next-line no-unnecessary-type-assertion\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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\nfunction responsiveFlexAlignStyle(props: ResponsiveFlexStyleProps & ThemeProps): 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\nfunction 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\nfunction responsiveFlexJustifyStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nfunction responsiveFlexDirectionStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {flexItemStyle} from '../../styles/flex/flexItemStyle'\nimport {responsiveFlexStyle} from '../../styles/flex/flexStyle'\nimport {FlexItemStyleProps, ResponsiveFlexStyleProps} from '../../styles/flex/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveFlexItemProps, ResponsiveFlexProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexOwnProps\n extends Omit<BoxOwnProps, 'display'>, ResponsiveFlexProps, ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\n/**\n * @public\n */\nexport type FlexProps<E extends ElementType = 'div'> = Props<FlexOwnProps, E>\n\nconst StyledFlex = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\nconst FlexComponent = forwardRef(function Flex(\n props: FlexOwnProps & {as?: ElementType} & 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={_getArrayProp(align)}\n $direction={_getArrayProp(direction)}\n $gap={_getArrayProp(gap)}\n $justify={_getArrayProp(justify)}\n $wrap={_getArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Flex = FlexComponent as unknown as <E extends ElementType = 'div'>(\n props: FlexProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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 '../../../theme/system/css'\nimport {ThemeFontKey, ThemeFontSize} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {FontWeightStyleProps, ResponsiveFontSizeStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: FontWeightStyleProps & ResponsiveFontSizeStyleProps & 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': `${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 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\nfunction 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 '../../../theme/system/css'\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 {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 {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\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 ${\n $accent &&\n css`\n color: var(--card-accent-fg-color);\n `\n }\n\n ${\n $muted &&\n css`\n color: var(--card-muted-fg-color);\n `\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 {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {responsiveTextFont} from '../../styles/font/textFontStyle'\nimport {ResponsiveFontStyleProps} from '../../styles/font/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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\n/**\n * @public\n */\nexport type TextProps<E extends ElementType = 'div'> = Props<TextOwnProps, E>\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst TextComponent = forwardRef(function Text(\n props: TextOwnProps & {as?: ElementType} & 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={_getArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={_getArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Text = TextComponent as unknown as <E extends ElementType = 'div'>(\n props: TextProps<E>,\n) => React.JSX.Element\n","import {SpinnerIcon} from '@sanity/icons/Spinner'\nimport {forwardRef} from 'react'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Text} from '../text/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})\n","import {ThemeColorCard_v2} from '../../../theme/system/color/color'\nimport {ThemeColorState_v2} from '../../../theme/system/color/state'\nimport {CSSObject} from '../../../theme/system/css'\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 {ThemeFocusRing} from '../../../theme/system/focusRing'\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 {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {ThemeProps} from '../../styles/types'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types/button'\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 ${\n $width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `\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 // oxlint-disable-next-line no-unsafe-type-assertion\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth} from '../../types/button'\nimport {ElementType, Props} from '../../types/component'\nimport {FlexJustify} from '../../types/flex'\nimport {Box} from '../box/box'\nimport {Flex} from '../flex/flex'\nimport {Spinner} from '../spinner/spinner'\nimport {Text} from '../text/text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n mode?: ButtonMode\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\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 /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n gap?: 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\n/**\n * @public\n */\nexport type ButtonProps<E extends ElementType = 'button'> = Props<ButtonOwnProps, E>\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps\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\nconst ButtonComponent = forwardRef(function Button(\n props: ButtonOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'as' | 'width'\n >,\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 gap,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 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 = _getArrayProp(justifyProp)\n const padding = _getArrayProp(paddingProp)\n const paddingX = _getArrayProp(paddingXProp)\n const paddingY = _getArrayProp(paddingYProp)\n const paddingTop = _getArrayProp(paddingTopProp)\n const paddingBottom = _getArrayProp(paddingBottomProp)\n const paddingLeft = _getArrayProp(paddingLeftProp)\n const paddingRight = _getArrayProp(paddingRightProp)\n const radius = _getArrayProp(radiusProp)\n const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\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={spacing}>\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})\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Button = ButtonComponent as unknown as <E extends ElementType = 'button'>(\n props: ButtonProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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} from '../../../theme/system/css'\nimport {ThemeBoxShadow, ThemeShadow} from '../../../theme/system/shadow'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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","/**\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\n// oxlint-disable-next-line no-unsafe-type-assertion\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\n// oxlint-disable-next-line no-unnecessary-type-parameters\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 const context = createContext<ContextType>(defaultValue)\n context.displayName = key\n return context\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 {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {getScopedTheme} from '../../theme/getScopedTheme'\nimport {\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '../../theme/system/color/_system'\nimport {type RootTheme, type Theme} from '../../theme/system/theme'\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","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 // oxlint-disable-next-line no-unnecessary-type-assertion, no-unsafe-type-assertion\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '../../theme/system/color/_system'\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","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {ThemeProps} from '../../styles/types'\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\nfunction cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${\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\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\nfunction 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: ${\n $focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined\n };\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: ${\n $focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined\n };\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {responsiveBorderStyle} from '../../styles/border/borderStyle'\nimport {ResponsiveBorderStyleProps} from '../../styles/border/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {responsiveShadowStyle} from '../../styles/shadow/shadowStyle'\nimport {ResponsiveShadowStyleProps} from '../../styles/shadow/types'\nimport {ThemeColorProvider} from '../../theme/themeColorProvider'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {CardTone} from '../../types/card'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardOwnProps\n extends BoxOwnProps, ResponsiveBorderProps, ResponsiveRadiusProps, 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 disabled?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n selected?: boolean\n tone?: CardTone\n}\n\n/**\n * @public\n */\nexport type CardProps<E extends ElementType = 'div'> = Props<CardOwnProps, E>\n\nconst StyledCard = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\nconst CardComponent = forwardRef(function Card(\n props: CardOwnProps & {as?: ElementType} & 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={_getArrayProp(border)}\n $borderTop={_getArrayProp(borderTop)}\n $borderRight={_getArrayProp(borderRight)}\n $borderBottom={_getArrayProp(borderBottom)}\n $borderLeft={_getArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={_getArrayProp(radius)}\n $shadow={_getArrayProp(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})\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 */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Card = CardComponent as unknown as <E extends ElementType = 'div'>(\n props: CardProps<E>,\n) => React.JSX.Element\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 // oxlint-disable-next-line no-deprecated\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 {useMemo, useSyncExternalStore} from 'react'\n\nimport {useTheme_v2} from '../../theme/useTheme'\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 {useCallback, useDebugValue, 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 useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\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 {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 function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\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 {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","// 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 // oxlint-disable-next-line unbound-method\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return (element as any).ref\n }\n\n // React 19 in DEV\n // oxlint-disable-next-line unbound-method\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n // oxlint-disable-next-line no-unsafe-type-assertion\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'\nimport {_getArrayProp} from '../../styles/helpers'\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 = _getArrayProp(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","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 // oxlint-disable-next-line preserve-caught-error\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n // oxlint-disable-next-line preserve-caught-error, restrict-template-expressions\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\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\nconst 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","import {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\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, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types/popover'\n\nexport function size(options: {\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n maxWidthRef: React.RefObject<number | undefined>\n padding?: number\n referenceWidthRef: React.RefObject<number | undefined>\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}): Middleware {\n const {\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding = 0,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n } = 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 const availableWidth = maxWidth - margins[1] - margins[3]\n const availableHeight = maxHeight - margins[0] - margins[2]\n const referenceWidth = reference.width - margins[1] - margins[3]\n referenceWidthRef.current = referenceWidth\n setReferenceWidth(referenceWidth)\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (widthRef.current !== undefined) {\n elements.floating.style.width = `${widthRef.current}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(availableWidth, maxWidthRef.current ?? Infinity)}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\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","interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\ninterface 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/useTheme'\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 // oxlint-disable-next-line no-unnecessary-template-expression\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})\n","import {Strategy} from '@floating-ui/react-dom'\nimport {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow} from '../../types/box'\nimport {CardTone} from '../../types/card'\nimport {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\nimport {Radius} from '../../types/radius'\nimport {Arrow} from '../../utils/arrow/arrow'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Card, CardProps} from '../card/card'\nimport {Flex} from '../flex/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 = 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 // oxlint-disable-next-line no-unsafe-type-assertion\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","import {\n arrow,\n autoPlacement,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {AnimatePresence} from 'motion/react'\nimport {\n cloneElement,\n forwardRef,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {BoxOverflow} from '../../types/box'\nimport {CardTone} from '../../types/card'\nimport {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {LayerProps} from '../../utils/layer/layer'\nimport {LayerProvider} from '../../utils/layer/layerProvider'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Portal} from '../../utils/portal/portal'\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'>, ResponsiveRadiusProps, 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 /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\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?: Ref<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 = 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 // oxlint-disable-next-line no-deprecated\n boundaryElement: _boundaryElement,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n modal,\n // oxlint-disable-next-line no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary =\n // oxlint-disable-next-line no-deprecated\n _floatingBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n // oxlint-disable-next-line no-deprecated\n _referenceBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const widthArrayProp = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(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>(forwardedRef, () => ref.current)\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 [referenceWidth, setReferenceWidth] = useState<number | undefined>(undefined)\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\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 // 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, () => refs.reference.current)\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: refs.setReference})\n }, [childProp, referenceElement, refs.setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\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 ? referenceWidth : 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\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n constrainSize: boolean\n fallbackPlacements: Placement[]\n floatingBoundary: HTMLElement | null\n margins: PopoverMargins\n matchReferenceWidth: boolean | undefined\n maxWidthRef: React.RefObject<number | undefined>\n placementProp: Placement\n placementStrategy: 'flip' | 'autoPlacement'\n preventOverflow: boolean\n referenceBoundary: HTMLElement | null\n referenceWidthRef: React.RefObject<number | undefined>\n rootBoundary: RootBoundary\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\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 boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding: DEFAULT_POPOVER_PADDING,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\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 arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n ])\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\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 // oxlint-disable-next-line no-deprecated\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface StackOwnProps extends BoxOwnProps {\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n}\n\n/**\n * @public\n */\nexport type StackProps<E extends ElementType = 'div'> = Props<StackOwnProps, E>\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\nconst StackComponent = forwardRef(function Stack(\n props: StackOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n // oxlint-disable-next-line no-deprecated\n const {as, gap, space: deprecated_space, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={_getArrayProp(spacing)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Stack = StackComponent as unknown as <E extends ElementType = 'div'>(\n props: StackProps<E>,\n) => React.JSX.Element\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 {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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 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 {css} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {CardTone} from '../../types/card'\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: ${\n $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\n &:not([data-border]) {\n --input-box-shadow: ${\n $unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})\n };\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 {CloseIcon} from '@sanity/icons/Close'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {\n responsiveInputPaddingStyle,\n TextInputResponsivePaddingStyleProps,\n} from '../../styles/input/responsiveInputPaddingStyle'\nimport {\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n} from '../../styles/input/textInputStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Button, ButtonOwnProps} from '../button/button'\nimport {Card} from '../card/card'\nimport {Text} from '../text/text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = ButtonOwnProps &\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 // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\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 /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n gap?: 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 gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 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 = _getArrayProp(fontSizeProp)\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(gap === undefined ? deprecated_space : gap)\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})\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'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * Adds global keydown event listener to the window.\n *\n * @param onKeyDown - The function to call when a keydown event is triggered.\n * @param options - The options to pass to the addEventListener function (example, capture: true)\n * @beta\n */\nexport function useGlobalKeyDown(\n onKeyDown: (event: KeyboardEvent) => void,\n options?: AddEventListenerOptions,\n): 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, options)\n\n return () => window.removeEventListener('keydown', handler, options)\n }, [options])\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/element'\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 // oxlint-disable-next-line no-unnecessary-type-arguments\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})\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\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 {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineOwnProps extends Omit<BoxOwnProps, 'display'> {\n /**\n * The spacing between children.\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n /** The spacing between children. */\n gap?: number | number[]\n}\n\n/**\n * @public\n */\nexport type InlineProps<E extends ElementType = 'div'> = Props<InlineOwnProps, E>\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\nconst InlineComponent = forwardRef(function Inline(\n props: InlineOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n // oxlint-disable-next-line no-deprecated\n const {as, children: childrenProp, gap, space: deprecated_space, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\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={_getArrayProp(spacing)}\n forwardedAs={as}\n // oxlint-disable-next-line no-unnecessary-type-assertion, no-unsafe-type-assertion\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Inline = InlineComponent as unknown as <E extends ElementType = 'div'>(\n props: InlineProps<E>,\n) => React.JSX.Element\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {ElementType, Props} from '../../types/component'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\n\n/**\n * @public\n */\nexport interface KBDOwnProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\n/**\n * @public\n */\nexport type KBDProps<E extends ElementType = 'kbd'> = Props<KBDOwnProps, E>\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\nconst KBDComponent = forwardRef(function KBD(\n props: KBDOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLElement>,\n 'as' | 'ref' | 'size'\n >,\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={_getArrayProp(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})\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const KBD = KBDComponent as unknown as <E extends ElementType = 'kbd'>(\n props: KBDProps<E>,\n) => React.JSX.Element\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline} from '../../primitives/inline/inline'\nimport {KBD} from '../../primitives/kbd/kbd'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 // oxlint-disable-next-line no-deprecated\n const {fontSize, gap, keys, padding, radius, space: deprecated_space = 0.5, ...restProps} = props\n const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\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\" gap={spacing}>\n {keys.map((key, i) => (\n // oxlint-disable-next-line no-array-index-key\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </StyledHotkeys>\n )\n})\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 2\n activeElement: HTMLElement | null\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\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers/element'\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\nfunction _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, 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.RefObject<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, setActiveElement] = useState<HTMLElement | null>(null)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n setActiveElement(elementsRef.current[nextActiveIndex] || null)\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 (!rootElementRef.current) 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 // oxlint-disable-next-line consistent-return\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, rootElementRef, 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} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {Box} from '../../primitives/box/box'\nimport {Stack} from '../../primitives/stack/stack'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils/layer/useLayer'\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 'gap'?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 // oxlint-disable-next-line no-deprecated, no-unused-vars\n focusFirst,\n // oxlint-disable-next-line no-deprecated, 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 gap,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 1,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\n const shouldFocus =\n // oxlint-disable-next-line no-deprecated\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 = useMemo(\n () =>\n ({\n version: 2,\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n }) satisfies MenuContextValue,\n [\n activeElement,\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 gap={spacing}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\n","import {styled} from 'styled-components'\n\nimport {ElementType, EmptyProps, Props} from '../../types/component'\n\n/**\n * @public\n */\nexport type MenuDividerProps<E extends ElementType = 'hr'> = Props<EmptyProps, E>\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n` as unknown as <E extends ElementType = 'hr'>(props: MenuDividerProps<E>) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {ThemeProps} from '../../styles/types'\nimport {SelectableTone} from '../../types/selectable'\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} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {Box} from '../box/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)\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: 2`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 2) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Selectable} from '../../primitives/_selectable/selectable'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {Text} from '../../primitives/text/text'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {ElementType, Props} from '../../types/component'\nimport {Radius} from '../../types/radius'\nimport {SelectableTone} from '../../types/selectable'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupOwnProps {\n fontSize?: number | number[]\n // oxlint-disable-next-line no-redundant-type-constituents\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 gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport type MenuGroupProps<E extends ElementType = 'button'> = Props<MenuGroupOwnProps, E>\n\nconst MenuGroupComponent = function MenuGroup(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupOwnProps & {as?: ElementType},\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 gap,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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.onItemMouseEnter\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 // oxlint-disable-next-line react-compiler\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n // oxlint-disable-next-line react-compiler\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 // oxlint-disable-next-line consistent-return\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={_getArrayProp(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={spacing} 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\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const MenuGroup = MenuGroupComponent as unknown as <E extends ElementType = 'button'>(\n props: MenuGroupProps<E>,\n) => React.JSX.Element\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 {Selectable} from '../../primitives/_selectable/selectable'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {ElementType, Props} from '../../types/component'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys/hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n hotkeys?: string[]\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport type MenuItemProps<E extends ElementType = 'button'> = Props<MenuItemOwnProps, E>\n\nconst MenuItemComponent = forwardRef(function MenuItem(\n props: MenuItemOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'\n >,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n gap,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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.onItemMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onItemMouseLeave\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 = _getArrayProp(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={_getArrayProp(radius)}\n $padding={_getArrayProp(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={spacing} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const MenuItem = MenuItemComponent as unknown as <E extends ElementType = 'button'>(\n props: MenuItemProps<E>,\n) => React.JSX.Element\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../primitives/button/button'\nimport {ButtonTone} from '../../types/button'\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 // oxlint-disable-next-line no-redundant-type-constituents\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})\n","import {Children, cloneElement, forwardRef, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineOwnProps} from '../../primitives/inline/inline'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineOwnProps, '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})\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\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 // oxlint-disable-next-line no-deprecated\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 {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {responsiveGridStyle} from '../../styles/grid/gridStyle'\nimport {ResponsiveGridStyleProps} from '../../styles/grid/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridOwnProps extends Omit<BoxOwnProps, 'display'>, ResponsiveGridProps {}\n\n/**\n * @public\n */\nexport type GridProps<E extends ElementType = 'div'> = Props<GridOwnProps, E>\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\nconst GridComponent = forwardRef(function Grid(\n props: GridOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'rows'\n >,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as,\n autoRows,\n autoCols,\n autoFlow,\n // oxlint-disable-next-line no-deprecated\n columns,\n gridTemplateColumns,\n gap,\n gapX,\n gapY,\n // oxlint-disable-next-line no-deprecated\n rows,\n gridTemplateRows,\n children,\n ...restProps\n } = props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={_getArrayProp(autoRows)}\n $autoCols={_getArrayProp(autoCols)}\n $autoFlow={_getArrayProp(autoFlow)}\n $columns={_getArrayProp(gridTemplateColumns === undefined ? columns : gridTemplateColumns)}\n $gap={_getArrayProp(gap)}\n $gapX={_getArrayProp(gapX)}\n $gapY={_getArrayProp(gapY)}\n $rows={_getArrayProp(gridTemplateRows === undefined ? rows : gridTemplateRows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Grid = GridComponent as unknown as <E extends ElementType = 'div'>(\n props: GridProps<E>,\n) => React.JSX.Element\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 {SetStateAction, useCallback, useEffect, 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 useEffect(() => {\n return () => {\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n }\n }\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 {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement} from '../../types/placement'\nimport {Radius} from '../../types/radius'\nimport {Arrow} from '../../utils/arrow/arrow'\nimport {Card, CardProps} from '../card/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 = 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 // oxlint-disable-next-line no-unsafe-type-assertion\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","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'\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 {AnimatePresence} from 'motion/react'\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 type {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport type {Placement} from '../../types/placement'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {Layer, type LayerProps} from '../../utils/layer/layer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\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/useTooltipDelayGroup'\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: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = _getArrayProp(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 = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\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 {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\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 setIsGroupActive?.(open, groupedOpenDelay)\n 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 setIsGroupActive?.(open, groupDeactivateDelay)\n 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 [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\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, isInsideGroup})\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 // oxlint-disable-next-line consistent-return\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 // oxlint-disable-next-line react-compiler\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})\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return 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, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\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 isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: 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 || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n // oxlint-disable-next-line consistent-return\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {useMemo, 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 // oxlint-disable-next-line no-deprecated\n const {boundaryElement, children, element, __unstable_elements: elements} = props\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\nconst emptySubscribe = () => () => {}\n"],"mappings":"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"}
|