@sanity/ui 4.0.0-next.2 → 4.0.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{_chunks/getScopedTheme.js → getScopedTheme-CqaSCfTH.js} +1 -1
- package/dist/getScopedTheme-CqaSCfTH.js.map +1 -0
- package/dist/index.d.ts +37 -40
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +943 -892
- package/dist/index.js.map +1 -1
- package/dist/{_chunks/refractor.js → refractor-CC48DwHi.js} +1 -1
- package/dist/refractor-CC48DwHi.js.map +1 -0
- package/dist/{_chunks/rgba.d.cts → rgba-LmTDhX0u.d.ts} +1 -1
- package/dist/rgba-LmTDhX0u.d.ts.map +1 -0
- package/dist/theme.d.ts +1 -1
- package/dist/theme.js +1 -1
- package/package.json +5 -21
- package/dist/_chunks/getScopedTheme.cjs +0 -4043
- package/dist/_chunks/getScopedTheme.cjs.map +0 -1
- package/dist/_chunks/getScopedTheme.js.map +0 -1
- package/dist/_chunks/refractor.cjs +0 -18
- package/dist/_chunks/refractor.cjs.map +0 -1
- package/dist/_chunks/refractor.js.map +0 -1
- package/dist/_chunks/rgba.d.cts.map +0 -1
- package/dist/_chunks/rgba.d.ts +0 -929
- package/dist/_chunks/rgba.d.ts.map +0 -1
- package/dist/index.cjs +0 -6243
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -2332
- package/dist/index.d.cts.map +0 -1
- package/dist/theme.cjs +0 -54
- package/dist/theme.cjs.map +0 -1
- package/dist/theme.d.cts +0 -278
- package/dist/theme.d.cts.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.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","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_isEnterToClickElement","element","HTMLElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","HTMLAnchorElement","nodeName","isHTMLInputElement","HTMLInputElement","HTMLButtonElement","isHTMLSelectElement","HTMLSelectElement","isHTMLTextAreaElement","HTMLTextAreaElement","containsOrEqualsElement","contains","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","_hasFocus","element","HTMLElement","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","href","rel","type","disabled","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","focusLastDescendant","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","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","display","margin","padding","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","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","spacing","t19","boxProps","t20","Boolean","t21","t22","t23","t24","t25","t26","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","children","React","JSX","Element","constrainSize","content","ReactNode","disabled","fallbackPlacements","floatingBoundary","HTMLElement","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","_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","onActivate","t23","t24","t25","t26","t27","t28","t29","radius","t30","t31","t32","t33","shadow","t34","t35","t36","zOffset","t37","t38","t39","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","t40","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","restProps","t0","undefined","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","ref","rootTheme","t7","t8","t9","t10","$hasClearButton","Boolean","$hasIcon","$hasIconRight","$hasSuffix","$hasPrefix","t11","Symbol","for","current","handleClearMouseDown","_temp","t12","event_0","event","preventDefault","stopPropagation","focus","handleClearClick","t13","prefixNode","t14","t15","t16","t17","scheme","tone","presentationNode","t18","map","_temp2","clearButtonBoxPadding","t19","_temp3","clearButtonPadding","clearButtonProps","t20","clearButtonNode","t21","suffixNode","t22","t23","t24","t25","v","v_0","SpinnerIcon","keyframes","styled","Box","StyledAutocomplete","div","ListBox","rotate","AnimatedSpinnerIcon","useCallback","_isEnterToClickElement","AutocompleteOptionProps","children","React","ReactNode","id","onSelect","v","selected","value","AutocompleteOption","props","$","_c","t0","setTimeout","handleClick","t1","event","key","currentTarget","handleKeyDown","t2","AutocompleteMsg","AutocompleteState","autocompleteReducer","state","msg","type","activeValue","focused","query","value","listFocused","Placement","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","ChevronDownIcon","ChangeEvent","cloneElement","ElementType","FocusEvent","forwardRef","HTMLProps","KeyboardEvent","MouseEvent","ReactNode","Ref","startTransition","useCallback","useEffect","useImperativeHandle","useMemo","useReducer","useRef","useState","EMPTY_ARRAY","EMPTY_RECORD","_raf","_hasFocus","focusFirstDescendant","Box","BoxProps","Button","Card","Popover","PopoverProps","Stack","Text","TextInput","_getArrayProp","Radius","AnimatedSpinnerIcon","ListBox","StyledAutocomplete","AutocompleteOption","autocompleteReducer","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","AUTOCOMPLETE_POPOVER_PLACEMENT","AutocompleteOpenButtonProps","BaseAutocompleteOption","AutocompleteProps","border","customValidity","filterOption","query","option","Option","fontSize","icon","id","listBox","loading","onChange","value","onQueryChange","onSelect","openButton","openOnFocus","options","padding","popover","Omit","HTMLDivElement","prefix","radius","relatedElements","HTMLElement","renderOption","React","JSX","Element","renderPopover","props","content","hidden","inputElement","HTMLInputElement","onMouseEnter","onMouseLeave","ref","renderValue","suffix","DEFAULT_RENDER_VALUE","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","InnerAutocomplete","Autocomplete","forwardedRef","$","_c","disabled","filterOptionProp","onBlur","onFocus","optionsProp","readOnly","renderOptionProp","restProps","t0","t1","t2","t3","t4","t5","t6","valueProp","undefined","paddingProp","t7","t8","t9","activeValue","focused","listFocused","state","dispatch","t10","t11","value_0","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","_setInputElement","Symbol","for","node","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","t15","listBoxId","Array","isArray","t16","find","o","currentOption","t17","t18","filter","filteredOptions","filteredOptionsLen","length","activeItemId","expanded","event","setTimeout","current","elements","concat","focusInside","document","activeElement","e","contains","type","handleRootBlur","t19","event_0","listBoxElement","focusedElement","target","listFocused_0","handleRootFocus","t20","v","focus","handleOptionSelect","t21","event_1","key","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","Node","listEl","includes","handleRootKeyDown","t22","event_2","nextQuery","currentTarget","handleInputChange","t23","dispatchOpen","t24","event_3","handleInputFocus","t25","handlePopoverMouseEnter","t26","handlePopoverMouseLeave","t27","handleClearButtonClick","t28","handleClearButtonFocus","t29","t30","t31","t32","t33","t34","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","childNodes","HTMLLIElement","t35","bb0","t36","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t37","openButtonNode","t38","bb1","t39","inputValue","event_5","handleListBoxKeyDown","t40","bb2","t41","t42","option_0","active","selected","tabIndex","t43","bb3","results","t44","t45","RenderPopover","Exclude","Parameters","v_0","v_1","Math","max","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","styled","Button","StyledBreadcrumbs","ol","ExpandButton","Children","forwardRef","Fragment","isValidElement","useCallback","useMemo","useRef","useState","useClickOutsideEvent","Box","Popover","Stack","Text","_getArrayProp","ExpandButton","StyledBreadcrumbs","BreadcrumbsProps","maxLength","separator","React","ReactNode","gap","space","Breadcrumbs","props","ref","$","_c","children","restProps","t0","undefined","t1","open","setOpen","expandElementRef","popoverElementRef","t2","Symbol","for","collapse","t3","expand","t4","current","t5","toArray","filter","rawItems","t6","items","useItems","t7","t8","item","itemIndex","map","len","length","beforeLength","Math","ceil","afterLength","floor","slice","useEffect","useEffectEvent","useGlobalKeyDown","onKeyDown","options","$","_c","t0","event","handleKeyDown","t1","handler","event_0","window","addEventListener","removeEventListener","t2","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveWidthStyleProps","BASE_STYLE","width","margin","containerBaseStyle","responsiveContainerWidthStyle","props","container","media","theme","$width","val","maxWidth","forwardRef","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveWidthProps","containerBaseStyle","responsiveContainerWidthStyle","ResponsiveWidthStyleProps","ContainerOwnProps","ContainerProps","E","StyledContainer","ContainerComponent","Container","props","ref","$","_c","as","restProps","t0","width","undefined","t1","t2","React","JSX","Element","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","css","CSSObject","getTheme_v2","_responsive","ThemeProps","DialogPosition","ResponsiveDialogPositionStyleProps","$position","dialogStyle","theme","color","display","backdrop","responsiveDialogPositionStyle","props","media","position","AnimationDialogStyleProps","$animate","animationDialogStyle","ReturnType","createGlobalScopedContext","DialogPosition","DialogContextValue","version","position","zOffset","DialogContext","useContext","DialogContext","DialogContextValue","useDialog","CloseIcon","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","styled","ThemeColorSchemeKey","containsOrEqualsElement","isHTMLElement","focusFirstDescendant","focusLastDescendant","useClickOutsideEvent","useGlobalKeyDown","usePrefersReducedMotion","Box","Button","Card","Container","Flex","Text","ResponsivePaddingProps","ResponsiveWidthProps","_getArrayProp","responsivePaddingStyle","ResponsivePaddingStyleProps","useTheme_v2","DialogPosition","Radius","useBoundaryElement","Layer","LayerProps","useLayer","Portal","usePortal","animationDialogStyle","AnimationDialogStyleProps","dialogStyle","responsiveDialogPositionStyle","ResponsiveDialogPositionStyleProps","useDialog","DialogProps","__unstable_autoFocus","__unstable_hideCloseButton","cardRadius","cardShadow","contentRef","React","ForwardedRef","HTMLDivElement","footer","ReactNode","header","id","onActivate","onClickOutside","onClose","portal","position","scheme","zOffset","animate","DialogCardProps","children","radius","shadow","isTargetWithinScope","boundaryElement","HTMLElement","portalElement","target","Node","StyledDialog","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","props","forwardedRef","$","_c","autoFocus","hideCloseButton","forwardedContentRef","portalProp","radiusProp","shadowProp","width","widthProp","elements","element","t0","t1","t2","ref","layer","isTopLayer","labelId","showCloseButton","Boolean","showHeader","t3","Symbol","for","current","t4","t5","t6","t7","event","document","activeElement","key","preventDefault","stopPropagation","t8","event_0","target_0","t9","t10","t11","t12","t13","t14","t15","Dialog","dialog","_positionProp","_zOffsetProp","onFocus","restProps","padding","undefined","cardRadiusProp","paddingProp","_animate","positionProp","zOffsetProp","prefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","setTimeout","body","contains","cardElement_0","focus","handleRootClick","t16","t17","t18","useMemo","DialogPosition","DialogContext","DialogContextValue","DialogProviderProps","children","React","ReactNode","position","zOffset","DialogProvider","props","$","_c","t0","version","contextValue","t1","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","restProps","children","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","undefined","t1","spacing","length","t2","Symbol","for","t3","key","i","map","t4","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","children","onClickOutside","onEscape","onItemClick","onItemSelect","onKeyDown","originElement","registerElement","restProps","t0","t1","t2","padding","shouldFocus","gap","undefined","ref","t3","Symbol","for","current","isTopLayer","t4","rootElementRef","activeElement","activeIndex","handleItemMouseEnter","handleItemMouseLeave","handleKeyDown","mount","unregisterElementRef","t5","handleRefChange","t6","t7","t8","t9","key","stopPropagation","t10","version","onItemMouseEnter","onItemMouseLeave","value","t11","t12","t13","cloneElement","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Popover","PopoverProps","MenuProps","MenuButtonProps","__unstable_disableRestoreFocusOnClose","boundaryElement","button","React","JSX","Element","id","menu","onClose","onOpen","placement","popover","Omit","popoverScheme","popoverRadius","portal","preventOverflow","MenuButton","props","forwardedRef","$","_c","t0","buttonProp","menuProp","disableRestoreFocusOnClose","undefined","open","setOpen","shouldFocus","setShouldFocus","buttonElement","setButtonElement","t1","Symbol","for","menuElements","setChildMenuElements","openRef","t2","t3","current","t4","t5","t6","t7","t8","_temp","handleButtonClick","t9","event","preventDefault","handleMouseDown","t10","event_0","key","handleButtonKeyDown","t11","event_1","target","Node","contains","el","handleMenuClickOutside","t12","focus","handleMenuEscape","t13","event_2","target_0","relatedTarget","el_0","handleBlur","t14","handleItemClick","t15","el_1","els","concat","els_0","filter","_el","registerElement","t16","menuProps","t17","selected","t18","t19","t20","t21","overflow","popoverProps","t22","t23","v","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","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","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","useEffect","useState","styled","Box","BoxOwnProps","ResponsiveRadiusProps","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","skeletonStyle","StyledSkeleton","$animated","$visible","SkeletonProps","Omit","animated","delay","Skeleton","props","ref","$","_c","radius","restProps","t0","undefined","visible","setVisible","t1","t2","timeout","setTimeout","clearTimeout","t3","t4","t5","forwardRef","styled","ThemeFontKey","getTheme_v2","_getArrayProp","_responsive","ThemeProps","Skeleton","SkeletonProps","StyledSkeleton","$size","$style","props","font","media","theme","fontStyle","styles","sizeIndex","fontSize","sizes","capHeight","lineHeight","ascenderHeight","descenderHeight","height","TextSkeletonProps","size","LabelSkeletonProps","HeadingSkeletonProps","CodeSkeletonProps","TextSkeleton","ref","$","_c","restProps","t0","undefined","t1","t2","LabelSkeleton","HeadingSkeleton","CodeSkeleton","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","forwardRef","Box","BoxOwnProps","TabPanelProps","TabPanel","props","ref","$","_c","flex","restProps","t0","tabIndex","undefined","t1","children","styled","ThemeColorStateToneKey","getTheme_v2","Card","CardProps","Flex","ButtonTone","LOADING_BAR_HEIGHT","STATUS_CARD_TONE","error","warning","success","info","key","BUTTON_TONE","TextBox","StyledToast","LoadingBar","div","LoadingBarMask","LoadingBarProgressProps","Omit","tone","LoadingBarProgress","React","ComponentType","props","color","theme","button","default","enabled","bg","CloseIcon","motion","stagger","Variant","Variants","usePrefersReducedMotion","Box","Button","Flex","Stack","Text","BUTTON_TONE","LoadingBar","LoadingBarMask","LoadingBarProgress","STATUS_CARD_TONE","StyledToast","TextBox","ToastProps","closable","description","React","ReactNode","onClose","radius","title","status","duration","updatedAt","ROLES","error","warning","success","info","const","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","props","$","_c","restProps","t0","undefined","cardTone","buttonTone","role","prefersReducedMotion","visualDuration","t1","type","bounce","transition","hasDuration","isFinite","t2","Symbol","for","initial","t3","animate","t4","exit","t5","t6","t7","content","t8","t9","verticalAlign","t10","t11","scaleX","delay","ease","t12","container","y","scale","zIndex","hidden","opacity","visible","when","delayChildren","slideIn","slideOut","ContainerVariants","willChange","Partial","Record","MotionToast","create","MotionFlex","MotionText","MotionLoadingBar","MotionLoadingBarProgress","useSyncExternalStore","useMounted","subscribe","_temp","_temp2","createGlobalScopedContext","ToastContextValue","ToastContext","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","gap","gapX","gapY","gridTemplateColumns","gridTemplateRows","restProps","t0","undefined","t1","t2","t3","t4","t5","t6","t7","t8","t9","React","JSX","Element","styled","Grid","useLayer","ToastLayerProps","children","React","ReactNode","padding","paddingX","paddingY","gap","ToastLayer","props","$","_c","t0","t1","undefined","zIndex","t2","t3","StyledLayer","toastId","generateToastId","String","AnimatePresence","startTransition","useMemo","useState","useMounted","LayerProvider","Toast","ToastContext","ToastLayer","ToastLayerProps","generateToastId","ToastContextValue","ToastParams","ToastState","dismiss","id","updatedAt","params","ToastProviderProps","Omit","children","React","ReactNode","zOffset","ToastProvider","props","$","_c","padding","paddingX","paddingY","gap","t0","undefined","t1","Symbol","for","state","setState","mounted","t2","push","duration","prevState","filter","toast","currentState","toast_0","toast_1","Date","now","version","value","t3","map","_temp","t4","dismiss_0","id_0","params_0","closable","description","status","title","useContext","isRecord","ToastContext","ToastContextValue","useToast","value","Error","version","TreeState","_findPrevItemElement","state","itemElements","HTMLElement","focusedElement","idx","indexOf","els","slice","len","length","i","itemKey","getAttribute","segments","split","pop","p","expanded","j","push","k","join","_findNextItemElement","_focusItemElement","el","focus","firstChild","createGlobalScopedContext","TreeContextValue","TreeContext","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Stack","_findNextItemElement","_findPrevItemElement","_focusItemElement","TreeContext","TreeContextValue","TreeState","TreeProps","gap","space","Tree","props","forwardedRef","$","_c","children","onFocus","restProps","t0","undefined","ref","focusedElement","setFocusedElement","focusedElementRef","t1","Symbol","for","path","t2","itemElements","setItemElements","t3","state","setState","stateRef","t4","current","t5","t6","t7","t8","t9","element","path_0","expanded","selected","s","s_0","newState","registerItem","t10","path_1","expanded_0","s_1","itemState","setExpanded","t11","t12","version","level","contextValue","t13","event","key","preventDefault","nextEl","prevEl","itemKey","getAttribute","itemState_0","s_2","itemState_1","itemPath","split","pop","parentKey","join","parentState","focus","focusedKey","s_3","itemState_2","handleKeyDown","t14","event_0","target","handleFocus","t15","_itemElements","Array","from","querySelectorAll","HTMLElement","t16","t17","t18","css","getTheme_v2","_cardColorStyle","rem","ThemeProps","treeItemRootStyle","ReturnType","treeItemRootColorStyle","props","$tone","color","theme","tone","selectable","enabled","pressed","hovered","selected","TreeItemBoxStyleProps","$level","treeItemBoxStyle","space","useContext","TreeContext","TreeContextValue","useTree","tree","Error","Stack","useTree","TreeGroupProps","expanded","TreeGroup","props","$","_c","children","restProps","t0","undefined","tree","t1","t2","gap","ToggleArrowRightIcon","startTransition","useCallback","useEffect","useId","useMemo","useRef","useState","styled","ThemeFontWeightKey","Box","Flex","Text","ElementType","treeItemBoxStyle","TreeItemBoxStyleProps","treeItemRootColorStyle","treeItemRootStyle","TreeContext","TreeGroup","useTree","TreeItemProps","expanded","fontSize","icon","React","linkAs","linkProps","HTMLProps","HTMLAnchorElement","Record","padding","gap","space","text","ReactNode","weight","StyledTreeItem","li","TreeItemBox","a","ToggleArrowText","TreeItem","props","$","_c","IconComponent","children","href","idProp","muted","onClick","restProps","t0","t1","t2","t3","t4","id","selected","expandedProp","undefined","rootElement","_setRootElement","t5","Symbol","for","node","setRootElement","treeitemRef","tree","path","registerItem","setExpanded","setFocusedElement","_id","t6","t7","itemPath","concat","join","t8","itemPath_0","itemKey","itemState","state","focused","focusedElement","tabIndex","t9","level","t10","contextValue","t11","event","target","HTMLElement","getAttribute","closest","stopPropagation","handleClick","t12","event_0","key","el","current","click","handleKeyDown","t13","t14","t15","t16","visibility","pointerEvents","t17","t18","transform","t19","t20","t21","content","t22","t23","t24","t25","t26","t27","_isScrollable","el","Node","Element","style","window","getComputedStyle","overflowX","includes","overflowY","ArrayPropPrimitive","useArrayProp","_val","_defaultVal","Error","ClickOutsideListener","event","MouseEvent","ClickOutsideElements","HTMLElement","useClickOutside","_listener","_elementsArg","_boundaryElement","Error","useElementRect","_element","Error","useForwardedRef","_ref","Error","useMatchMedia","usePrefersDark","t0","getServerSnapshot","undefined","_temp","CSSObject","ThemeProps","responsiveFont","ResponsiveFontStyleProps","responsiveLabelFont","props","css","getTheme_v2","ThemeProps","labelBaseStyle","props","$accent","$muted","ReturnType","font","theme","code","family","forwardRef","styled","ThemeFontWeightKey","responsiveLabelFont","responsiveTextAlignStyle","_getArrayProp","ElementType","Props","TextAlign","SpanWithTextOverflow","labelBaseStyle","LabelOwnProps","accent","align","muted","size","textOverflow","weight","LabelProps","E","StyledLabel","div","$accent","$align","$muted","$size","$weight","LabelComponent","Label","props","ref","$","_c","childrenProp","restProps","t0","t1","children","undefined","t2","t3","t4","React","JSX","Element","CSSObject","getTheme_v2","focusRingStyle","_responsive","rem","ThemeProps","AvatarRootStyleProps","ResponsiveAvatarSizeStyleProps","avatarStyle","root","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","display","transform","opacity","props","$color","avatar","theme","boxShadow","focusRing","responsiveAvatarSizeStyle","media","$size","size","avatarSize","sizes","width","height","borderRadius","position","strokeWidth","strokeDasharray","strokeLinecap","forwardRef","useCallback","useEffect","useId","useState","ReactIs","styled","ThemeColorAvatarColorKey","_getArrayProp","useTheme_v2","AvatarPosition","AvatarSize","AvatarStatus","ElementType","Props","Label","avatarStyle","responsiveAvatarSizeStyle","AvatarOwnProps","__unstable_hideInnerStroke","animateArrowFrom","arrowPosition","color","initials","onImageLoadError","event","Error","size","src","status","title","AvatarProps","E","StyledAvatar","div","$color","$size","root","Arrow","arrow","BgStroke","ellipse","bgStroke","Stroke","stroke","Initials","InitialsLabel","AvatarImage","svg","image","AvatarComponent","Avatar","props","ref","$","_c","arrowPositionProp","asProp","restProps","t0","t1","t2","as","undefined","sizeProp","avatar","isValidElementType","avatarSize","sizes","_sizeRem","_radius","elementId","setArrowPosition","imageFailed","setImageFailed","imageId","t3","t4","raf","requestAnimationFrame","cancelAnimationFrame","t5","t6","t7","handleImageError","T0","t8","t9","t10","t11","t12","map","_temp","t13","React","JSX","Element","s","forwardRef","css","styled","getTheme_v2","EMPTY_RECORD","_getArrayProp","_responsive","rem","ThemeProps","AvatarSize","Label","_responsiveAvatarCounterSizeStyle","props","$size","avatar","media","theme","size","avatarSize","sizes","borderRadius","minWidth","height","_avatarCounterBaseStyle","space","StyledAvatarCounter","div","AvatarCounterProps","count","tone","AvatarCounter","ref","$","_c","t0","sizeProp","undefined","T0","T1","t1","t2","t3","t4","t5","map","_temp","t6","t7","s","Children","cloneElement","forwardRef","isValidElement","css","styled","getTheme_v2","EMPTY_RECORD","_getArrayProp","_responsive","rem","ThemeProps","AvatarSize","AvatarCounter","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","props","$size","avatar","media","theme","size","avatarSize","sizes","marginLeft","distance","StyledAvatarStack","div","AvatarStackProps","children","React","ReactNode","maxLength","tone","AvatarStack","ref","$","_c","childrenProp","restProps","t0","t1","maxLengthProp","undefined","sizeProp","T0","t2","t3","t4","t5","t6","t7","t8","toArray","filter","Math","max","t9","len","length","visibleCount","extraCount","visibleChildren","slice","t10","child","childIndex","String","map","CSSObject","BadgeStyleProps","badgeStyle","props","$tone","display","verticalAlign","forwardRef","styled","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","BadgeTone","ElementType","Props","Box","BoxOwnProps","Text","ResponsiveRadiusProps","badgeStyle","BadgeStyleProps","BadgeOwnProps","fontSize","mode","tone","BadgeProps","E","StyledBadge","BadgeComponent","Badge","props","ref","$","_c","children","restProps","t0","t1","t2","t3","padding","radius","undefined","t4","t5","t6","t7","React","JSX","Element","css","getTheme_v2","focusRingBorderStyle","focusRingStyle","rem","ThemeProps","checkboxBaseStyles","ReturnType","inputElementStyles","props","color","input","radius","theme","focusRing","checkbox","size","default","enabled","border","width","bg","fg","offset","invalid","muted","disabled","readOnly","CheckmarkIcon","RemoveIcon","forwardRef","useEffect","useImperativeHandle","useRef","styled","useCustomValidity","checkboxBaseStyles","inputElementStyles","CheckboxProps","indeterminate","customValidity","StyledCheckbox","div","Input","input","Checkbox","props","forwardedRef","$","_c","checked","className","disabled","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","t2","t3","undefined","t4","t5","t6","t7","t8","CSSObject","ThemeProps","responsiveFont","FontWeightStyleProps","ResponsiveFontSizeStyleProps","responsiveCodeFontStyle","props","css","ExecutionContext","getTheme_v2","codeSyntaxHighlightingStyle","theme","color","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","codeBaseStyle","ReturnType","forwardRef","lazy","Suspense","styled","ThemeFontWeightKey","responsiveCodeFontStyle","FontWeightStyleProps","ResponsiveFontSizeStyleProps","_getArrayProp","ElementType","Props","codeBaseStyle","LazyRefractor","CodeOwnProps","language","size","weight","CodeProps","E","StyledCode","pre","CodeComponent","Code","props","ref","$","_c","children","restProps","t0","undefined","t1","t2","t3","t4","t5","t6","React","JSX","Element","CSSObject","ThemeProps","responsiveFont","ResponsiveFontStyleProps","responsiveHeadingFont","props","css","getTheme_v2","ThemeProps","HeadingStyleProps","headingBaseStyle","props","ReturnType","$accent","$muted","font","theme","code","family","heading","weights","bold","forwardRef","styled","ThemeFontWeightKey","responsiveHeadingFont","responsiveTextAlignStyle","ResponsiveFontStyleProps","ResponsiveTextAlignStyleProps","_getArrayProp","ElementType","Props","TextAlign","SpanWithTextOverflow","headingBaseStyle","HeadingStyleProps","HeadingOwnProps","accent","align","muted","size","textOverflow","weight","HeadingProps","E","StyledHeading","div","HeadingComponent","Heading","props","ref","$","_c","childrenProp","restProps","t0","t1","t2","children","undefined","t3","t4","t5","t6","React","JSX","Element","css","getTheme_v2","focusRingBorderStyle","focusRingStyle","rem","ThemeProps","radioBaseStyle","ReturnType","inputElementStyle","props","color","input","theme","dist","radio","size","markSize","default","enabled","bg","border","width","fg","focusRing","invalid","muted","readOnly","disabled","forwardRef","useImperativeHandle","useRef","styled","useCustomValidity","inputElementStyle","radioBaseStyle","RadioProps","customValidity","StyledRadio","div","Input","input","Radio","props","forwardedRef","$","_c","className","disabled","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","undefined","t2","t3","t4","t5","t6","css","CSSObject","ThemeFontSize","getTheme_v2","focusRingBorderStyle","focusRingStyle","_responsive","rem","responsiveInputPaddingIconRightStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","ThemeProps","rootStyle","ReturnType","inputBaseStyle","props","font","theme","text","family","inputColorStyle","color","input","default","enabled","bg","fg","border","width","hovered","focusRing","select","readOnly","disabled","textSize","size","fontSize","lineHeight","inputTextSizeStyle","$fontSize","media","sizeIndex","sizes","inputStyle","Array","$padding","$space","iconBoxStyle","selectStyle","root","iconBox","ChevronDownIcon","forwardRef","useImperativeHandle","useRef","styled","useCustomValidity","_getArrayProp","Radius","Box","Text","selectStyle","SelectProps","fontSize","gap","padding","radius","space","customValidity","StyledSelect","div","root","Input","select","$fontSize","$padding","$radius","$space","input","IconBox","iconBox","Select","props","forwardedRef","$","_c","children","disabled","readOnly","restProps","t0","t1","t2","t3","undefined","ref","t4","Symbol","for","current","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","css","getTheme_v2","focusRingStyle","rem","ThemeProps","switchBaseStyles","ReturnType","switchInputStyles","switchRepresentationStyles","props","color","input","theme","default","enabled","border","bg","switch","width","height","focusRing","fg","hovered","disabled","readOnly","switchTrackStyles","switchThumbStyles","$checked","$indeterminate","trackWidth","trackHeight","trackPadding","padding","size","checkedOffset","indeterminateOffset","checked","transitionDurationMs","transitionTimingFunction","forwardRef","useEffect","useImperativeHandle","useRef","styled","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switchThumbStyles","switchTrackStyles","SwitchProps","indeterminate","StyledSwitch","span","Input","input","Representation","Track","Thumb","$checked","$indeterminate","Switch","props","forwardedRef","$","_c","checked","className","disabled","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","t2","t3","undefined","t4","t5","t6","t7","t8","t9","forwardRef","useImperativeHandle","useRef","styled","ThemeFontWeightKey","useCustomValidity","_getArrayProp","responsiveInputPaddingStyle","TextInputResponsivePaddingStyleProps","textInputBaseStyle","textInputFontSizeStyle","TextInputInputStyleProps","textInputRepresentationStyle","TextInputRepresentationStyleProps","textInputRootStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useRootTheme","ResponsiveRadiusProps","TextAreaProps","__unstable_disableFocusRing","border","customValidity","fontSize","padding","weight","StyledTextArea","span","InputRoot","Input","textarea","Presentation","div","TextArea","props","forwardedRef","$","_c","restProps","t0","t1","t2","t3","t4","disabled","radius","undefined","ref","rootTheme","t5","Symbol","for","current","t6","scheme","t7","tone","t8","t9","t10","t11","t12","t13","t14","t15","t16","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","useDelayedState","Delay","TooltipDelayGroupContext","TooltipDelayGroupContextValue","TooltipDelayGroupProviderProps","children","React","ReactNode","delay","TooltipDelayGroupProvider","props","$","_c","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","open","closeDelay","close","t0","t1","value","t2","useMemo","BoundaryElementContext","BoundaryElementContextValue","BoundaryElementProviderProps","children","React","ReactNode","element","HTMLElement","BoundaryElementProvider","props","$","_c","t0","version","value","t1","ConditionalWrapper","_props","Error","findMaxBreakpoints","media","width","ret","i","length","bp","push","findMinBreakpoints","forwardRef","useImperativeHandle","useMemo","useState","useElementSize","useTheme_v2","findMaxBreakpoints","findMinBreakpoints","MediaQueryProps","as","React","ElementType","JSX","IntrinsicElements","media","ElementQuery","props","forwardedRef","$","_c","theme","_media","children","restProps","element","setElement","elementSize","width","border","window","innerWidth","t0","eq","length","join","undefined","max","t1","eq_0","min","t2","t3","t4","Component","PropsWithChildren","Code","ErrorBoundaryProps","onCatch","params","error","Error","info","React","ErrorInfo","ErrorBoundaryState","ErrorBoundary","state","getDerivedStateFromError","componentDidCatch","props","render","ReactNode","message","children","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","forwardRef","styled","SrOnlyProps","as","React","ElementType","JSX","IntrinsicElements","children","ReactNode","StyledSrOnly","div","SrOnly","props","ref","$","_c","t0","forwardRef","useEffect","useImperativeHandle","useRef","useState","styled","_isScrollable","_ResizeObserver","StackOwnProps","useTheme_v2","VirtualListChangeOpts","fromIndex","gap","itemHeight","scrollHeight","scrollTop","toIndex","VirtualListProps","as","React","ElementType","JSX","IntrinsicElements","getItemKey","item","Item","itemIndex","items","onChange","opts","renderItem","ReactNode","StyledVirtualList","div","ItemWrapper","VirtualList","props","forwardedRef","$","_c","restProps","t0","t1","t2","undefined","t3","space","ref","wrapperRef","setScrollTop","setScrollHeight","setItemHeight","t4","Symbol","for","current","t5","firstElement","firstChild","HTMLElement","offsetHeight","t6","t7","t8","scrollEl","findScrollable","parentNode","handleScroll","addEventListener","passive","ro","entries","contentRect","height","observe","removeEventListener","unobserve","disconnect","handleScroll_0","window","scrollY","handleResize","innerHeight","len","length","Math","max","floor","ceil","t10","t9","t11","children","useChildren","t12","t13","t14","_itemIndex","node","key","top","slice","map","ParentNode","_scrollEl"],"sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.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/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/hooks/useClickOutsideEvent.ts","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/hooks/useGlobalKeyDown.ts","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/utils/layer/layer.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/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/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/styles/grid/gridStyle.ts","../src/core/primitives/grid/grid.tsx","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx","../src/core/helpers/scroll.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/usePrefersDark.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/styles/font/codeFontStyle.ts","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/styles/font/headingFontStyle.ts","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltip.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.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 _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {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 gridColumnStart,\n gridColumnEnd,\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 gridRowStart,\n gridRowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={_getArrayProp(gridColumn)}\n $columnStart={_getArrayProp(gridColumnStart)}\n $columnEnd={_getArrayProp(gridColumnEnd)}\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(gridRow)}\n $rowStart={_getArrayProp(gridRowStart)}\n $rowEnd={_getArrayProp(gridRowEnd)}\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.\n */\n space?: never\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 = 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)\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?: never\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 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 fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary = _floatingBoundary ?? boundaryElementContext.element\n const referenceBoundary = _referenceBoundary ?? boundaryElementContext.element\n // Max-width uses BoundaryElementProvider when present; otherwise the floating\n // boundary (same element the old `boundaryElement` prop used for both).\n const boundaryElement = boundaryElementContext.element ?? floatingBoundary\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.\n */\n space?: never\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 const {as, gap, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={_getArrayProp(gap)}\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.\n */\n space?: never\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 = 3,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\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)\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 {SpinnerIcon} from '@sanity/icons/Spinner'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Box} from '../../primitives/box/box'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers/element'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n // oxlint-disable-next-line no-noninteractive-element-to-interactive-role, prefer-tag-over-role\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types/placement'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n forwardRef,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n startTransition,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_raf} from '../../helpers/animation'\nimport {_hasFocus, focusFirstDescendant} from '../../helpers/focus'\nimport {Box, BoxProps} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {TextInput} from '../../primitives/textInput/textInput'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function Autocomplete<Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n // Element refs that need to be accessed during render\n const [inputElement, _setInputElement] = useState<HTMLInputElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setInputElement = useCallback((node: HTMLInputElement | null) => {\n startTransition(() => _setInputElement(node))\n }, [])\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward inputElement state to inputElementRef\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n inputElementRef,\n () => inputElement,\n [inputElement],\n )\n // Forward inputElement to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = _getArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n // oxlint-disable-next-line no-unsafe-type-assertion\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = 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 const openButtonPadding = padding.map((v) => Math.max(v - 1, 0))\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"listbox\"\n gap={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return (\n <RenderPopover\n content={content}\n hidden={!expanded}\n inputElement={inputElement}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n resultsPopoverElementRef={resultsPopoverElementRef}\n renderPopover={renderPopover}\n />\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setInputElement}\n // oxlint-disable-next-line prefer-tag-over-role, role-has-required-aria-props\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n {results}\n </StyledAutocomplete>\n )\n})\n\nfunction RenderPopover({\n renderPopover,\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n resultsPopoverElementRef,\n}: {\n renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n return renderPopover(\n {\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n },\n resultsPopoverElementRef,\n )\n}\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => React.JSX.Element\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 {styled} from 'styled-components'\n\nimport {Button} from '../../primitives/button/button'\n\nexport const StyledBreadcrumbs = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {Box} from '../../primitives/box/box'\nimport {Popover} from '../../primitives/popover/popover'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, gap = 2, maxLength, separator, ...restProps} = props\n const space = _getArrayProp(gap)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n })\n\n return (\n <StyledBreadcrumbs data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </StyledBreadcrumbs>\n )\n})\n\nfunction useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n}: {\n collapse: () => void\n expand: () => void\n expandElementRef: React.RefObject<HTMLButtonElement | null>\n maxLength: number | undefined\n open: boolean\n popoverElementRef: React.RefObject<HTMLDivElement | null>\n // oxlint-disable-next-line no-unnecessary-type-arguments\n rawItems: React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[]\n space: number[]\n}) {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} gap={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n}\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 {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 {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerOwnProps extends BoxOwnProps, ResponsiveWidthProps {}\n\n/**\n * @public\n */\nexport type ContainerProps<E extends ElementType = 'div'> = Props<ContainerOwnProps, E>\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\nconst ContainerComponent = forwardRef(function Container(\n props: ContainerOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'width'\n >,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Container = ContainerComponent as unknown as <E extends ElementType = 'div'>(\n props: ContainerProps<E>,\n) => React.JSX.Element\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 {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers/element'\nimport {focusFirstDescendant, focusLastDescendant} from '../../helpers/focus'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Container} from '../../primitives/container/container'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsivePaddingStyle} from '../../styles/padding/paddingStyle'\nimport {ResponsivePaddingStyleProps} from '../../styles/padding/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {DialogPosition} from '../../types/dialog'\nimport {Radius} from '../../types/radius'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {Layer, LayerProps} from '../../utils/layer/layer'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const width = _getArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = _getArrayProp(cardRadiusProp)\n const padding = _getArrayProp(paddingProp)\n const position = _getArrayProp(positionProp)\n const width = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types/dialog'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","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 * @deprecated Use `gap` instead.\n */\n space?: never\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 const {as, children: childrenProp, gap, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={_getArrayProp(gap)}\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.\n */\n space?: never\n keys?: string[]\n}\n\nconst StyledHotkeys = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, gap = 0.5, keys, padding, radius, ...restProps} = props\n const spacing = _getArrayProp(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'?: never\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: never\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.\n */\n 'space'?: never\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 onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus = null,\n gap = 1,\n ...restProps\n } = props\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={gap}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\n","import {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: never\n button: React.JSX.Element\n id: string\n menu?: React.JSX.Element\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: never\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: never\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: never\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: never\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: never\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n popover,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n overflow: 'auto',\n portal: true,\n // oxlint-disable-next-line no-useless-fallback-in-spread\n ...(popover || {}),\n }),\n [popover],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\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.\n */\n space?: never\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 = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.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={gap} 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.\n */\n space?: never\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 = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.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={gap} 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 {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxOwnProps} from '../../primitives/box/box'\nimport {ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxOwnProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & Omit<React.HTMLProps<HTMLDivElement>, 'height'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n // oxlint-disable-next-line no-unneeded-ternary\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={_getArrayProp(radius)}\n $visible={delay ? visible : true}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_getArrayProp, _responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function LabelSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function HeadingSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function CodeSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\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 {forwardRef} from 'react'\n\nimport {Box, BoxOwnProps} from '../../primitives/box/box'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxOwnProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {styled} from 'styled-components'\n\nimport {ThemeColorStateToneKey} from '../../../theme/system/color/_system'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {Card, type CardProps} from '../../primitives/card/card'\nimport {Flex} from '../../primitives/flex/flex'\nimport type {ButtonTone} from '../../types/button'\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport const STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nexport const BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nexport const StyledToast = styled(Card)`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n\n &[data-has-duration] {\n padding-bottom: calc(${LOADING_BAR_HEIGHT}px / 2);\n }\n`\n\nexport const LoadingBar = styled.div`\n display: flex;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left: 0px;\n right: 0px;\n pointer-events: none;\n z-index: -1;\n overflow: hidden;\n overflow: clip;\n background: transparent;\n align-items: flex-end;\n will-change: opacity;\n`\n\nexport const LoadingBarMask = styled(Card)`\n position: absolute;\n top: 0;\n left: -${LOADING_BAR_HEIGHT}px;\n right: -${LOADING_BAR_HEIGHT}px;\n bottom: ${LOADING_BAR_HEIGHT}px;\n z-index: 1;\n`\n\ntype LoadingBarProgressProps = Omit<CardProps, 'tone'> & {\n tone: ThemeColorStateToneKey\n}\nexport const LoadingBarProgress = styled<React.ComponentType<LoadingBarProgressProps>>(Card)`\n display: block;\n height: 100%;\n width: 100%;\n transform-origin: 0% 50%;\n background-color: ${(props) => {\n const {color} = getTheme_v2(props.theme)\n\n return color.button.default[props.tone].enabled.bg\n }};\n`\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {motion, stagger, type Variant, type Variants} from 'motion/react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {\n BUTTON_TONE,\n LoadingBar,\n LoadingBarMask,\n LoadingBarProgress,\n STATUS_CARD_TONE,\n StyledToast,\n TextBox,\n} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n | 'as'\n | 'height'\n | 'ref'\n | 'title'\n | 'onAnimationStart'\n | 'onDragStart'\n | 'onDragEnd'\n | 'onDrag'\n >,\n): React.JSX.Element {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration\n ? {type: 'spring' as const, visualDuration, bounce: 0.25}\n : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n forwardedAs=\"li\"\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <TextBox flex={1} padding={3}>\n <Stack gap={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionLoadingBar variants={content} transition={transition}>\n <LoadingBarMask tone={cardTone} radius={radius} />\n <MotionLoadingBarProgress\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionLoadingBar>\n )}\n </MotionToast>\n )\n}\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n delayChildren: stagger(visualDuration / 3),\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionToast = motion.create(StyledToast)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionLoadingBar = motion.create(LoadingBar)\nconst MotionLoadingBarProgress = motion.create(LoadingBarProgress)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {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 gridTemplateColumns,\n gap,\n gapX,\n gapY,\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)}\n $gap={_getArrayProp(gap)}\n $gapX={_getArrayProp(gapX)}\n $gapY={_getArrayProp(gapY)}\n $rows={_getArrayProp(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 {styled} from 'styled-components'\n\nimport {Grid} from '../../primitives/grid/grid'\nimport {useLayer} from '../../utils/layer/useLayer'\n\n/**\n * @public\n */\nexport interface ToastLayerProps {\n children: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n gap?: number | number[]\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <StyledLayer\n forwardedAs=\"ul\"\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n gridTemplateColumns={1}\n style={{zIndex}}\n >\n {children}\n </StyledLayer>\n )\n}\n\nconst StyledLayer = styled(Grid)`\n box-sizing: border-box;\n position: fixed;\n right: 0;\n bottom: 0;\n list-style: none;\n pointer-events: none;\n max-width: 420px;\n width: 100%;\n`\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'motion/react'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils/layer/layerProvider'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives/stack/stack'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n forwardedRef: React.ForwardedRef<HTMLUListElement>,\n): React.JSX.Element {\n const {children, gap = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLUListElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLUListElement | null, HTMLUListElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }),\n [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n})\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n display: block;\n padding-left: ${rem(space[2] * $level)};\n text-decoration: none;\n `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {Stack} from '../../primitives/stack/stack'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.gap}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"group\"\n gap={tree.gap}\n >\n {children}\n </Stack>\n )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons/ToggleArrowRight'\nimport {startTransition, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ElementType} from '../../types/component'\nimport {\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n treeItemRootColorStyle,\n treeItemRootStyle,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n /**\n * Additional props for the link element that is rendered when `href` is set — e.g. `next/link`'s\n * `prefetch` together with `linkAs={Link}`. Props controlled by `TreeItem` itself (`href`,\n * `role`, `tabIndex`, `aria-expanded` and the ref) take precedence.\n */\n linkProps?: React.HTMLProps<HTMLAnchorElement> & Record<string, unknown>\n padding?: number | number[]\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = styled.li(treeItemRootStyle, treeItemRootColorStyle)\n\n/**\n * Styles a plain element (rather than wrapping `Box`) so that `as={linkAs}` renders the custom\n * link component directly, the same way `<Button as={...}>` works. Wrapping `Box` with\n * `.attrs({forwardedAs: 'a'})` made styled-components pass `as=\"a\"` on to the custom component\n * (breaking e.g. `next/link`, which treats `as` as a URL override) and skip the `Box` styles.\n */\nconst TreeItemBox = styled.a<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n linkProps,\n muted,\n onClick,\n padding = 2,\n selected = false,\n gap = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, _setRootElement] = useState<HTMLLIElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setRootElement = useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])\n\n const treeitemRef = useRef<HTMLAnchorElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const [itemPath, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n {...linkProps}\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-as={typeof linkAs === 'string' ? linkAs : 'a'}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * @deprecated instead of `useArrayProp(width)` use `Array.isArray(width) ? width : [width]` instead\n * @beta\n */\nexport function useArrayProp(_val?: never, _defaultVal?: never): never {\n throw new Error(\n '`useArrayProp` was removed in @sanity/ui v4. Use `Array.isArray(value) ? value : [value]` instead.',\n )\n}\n","/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n _listener?: never,\n _elementsArg?: never,\n _boundaryElement?: never,\n): never {\n throw new Error(\n '`useClickOutside` was removed in @sanity/ui v4. Use `useClickOutsideEvent` instead.',\n )\n}\n","/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(_element?: never): never {\n throw new Error('`useElementRect` was removed in @sanity/ui v4. Use `useElementSize` instead.')\n}\n","/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef(_ref?: never): never {\n throw new Error(\n '`useForwardedRef` was removed in @sanity/ui v4. Use `useRef` and `useImperativeHandle` instead.',\n )\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {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 `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${\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 }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveLabelFont} from '../../styles/font/labelFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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 LabelProps<E extends ElementType = 'div'> = Props<LabelOwnProps, E>\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n $weight?: ThemeFontWeightKey\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst LabelComponent = forwardRef(function Label(\n props: LabelOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n})\n\n/**\n * Typographic labels.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Label = LabelComponent as unknown as <E extends ElementType = 'div'>(\n props: LabelProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': '0',\n 'opacity': '0',\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: '0',\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: '1',\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: '1',\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nfunction avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nfunction avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nfunction avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {forwardRef, useCallback, useEffect, useId, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorAvatarColorKey} from '../../../theme/system/color/_system'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types/avatar'\nimport {ElementType, Props} from '../../types/component'\nimport {Label} from '../label/label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * @public\n */\nexport type AvatarProps<E extends ElementType = 'div'> = Props<AvatarOwnProps, E>\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\nconst AvatarComponent = forwardRef(function Avatar(\n props: AvatarOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = _getArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n // oxlint-disable-next-line react-compiler\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </AvatarImage>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel\n forwardedAs=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n})\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Avatar = AvatarComponent as unknown as <E extends ElementType = 'div'>(\n props: AvatarProps<E>,\n) => React.JSX.Element\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {Label} from '../label/label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = _getArrayProp(sizeProp)\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n})\n","import {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = _getArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n})\n","import {CSSObject} from '../../../theme/system/css'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {BadgeTone} from '../../types/badge'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {Text} from '../text/text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeOwnProps extends BoxOwnProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: never\n tone?: BadgeTone\n}\n\n/**\n * @public\n */\nexport type BadgeProps<E extends ElementType = 'div'> = Props<BadgeOwnProps, E>\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\nconst BadgeComponent = forwardRef(function Badge(\n props: BadgeOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_getArrayProp(radius)}\n padding={_getArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n})\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Badge = BadgeComponent as unknown as <E extends ElementType = 'div'>(\n props: BadgeProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {RemoveIcon} from '@sanity/icons/Remove'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </StyledCheckbox>\n )\n})\n","import {CSSObject} from '../../../theme/system/css'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {FontWeightStyleProps, ResponsiveFontSizeStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(\n props: FontWeightStyleProps & ResponsiveFontSizeStyleProps & ThemeProps,\n): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {css, ExecutionContext} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef, lazy, Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveCodeFontStyle} from '../../styles/font/codeFontStyle'\nimport {FontWeightStyleProps, ResponsiveFontSizeStyleProps} from '../../styles/font/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeOwnProps {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\n/**\n * @public\n */\nexport type CodeProps<E extends ElementType = 'pre'> = Props<CodeOwnProps, E>\n\nconst StyledCode = styled.pre<FontWeightStyleProps & ResponsiveFontSizeStyleProps>(\n codeBaseStyle,\n responsiveCodeFontStyle,\n)\n\nconst CodeComponent = forwardRef(function Code(\n props: CodeOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLPreElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLPreElement>,\n) {\n const {children, language, size = 2, weight, ...restProps} = props\n\n return (\n <StyledCode\n data-ui=\"Code\"\n {...restProps}\n $size={_getArrayProp(size)}\n // oxlint-disable-next-line no-unsafe-type-assertion -- `weight` is typed as `string` in the public API; unknown weights fall back to `regular` at runtime\n $weight={weight as ThemeFontWeightKey | undefined}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </StyledCode>\n )\n})\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Code = CodeComponent as unknown as <E extends ElementType = 'pre'>(\n props: CodeProps<E>,\n) => React.JSX.Element\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 `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${\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 }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveHeadingFont} from '../../styles/font/headingFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {ResponsiveFontStyleProps, ResponsiveTextAlignStyleProps} 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 {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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 HeadingProps<E extends ElementType = 'div'> = Props<HeadingOwnProps, E>\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst HeadingComponent = forwardRef(function Heading(\n props: HeadingOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'size'\n >,\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 <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n})\n\n/**\n * Typographic headings.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Heading = HeadingComponent as unknown as <E extends ElementType = 'div'>(\n props: HeadingProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyle, radioBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </StyledRadio>\n )\n})\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontSize} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {responsiveInputPaddingIconRightStyle} from '../../styles/input/responsiveInputPaddingStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {ThemeProps} from '../../styles/types'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap = 3,\n padding = 3,\n radius = 2,\n readOnly,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n})\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${\n checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `\n }\n\n ${\n $indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `\n }\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </StyledSwitch>\n )\n})\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\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 {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n})\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?: never\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} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","import {useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","/**\n * @internal\n * @deprecated ConditionalWrapper was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.\n */\nexport function ConditionalWrapper(_props?: never): never {\n throw new Error(\n '`ConditionalWrapper` was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.',\n )\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\n\nimport {Code} from '../primitives/code/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {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","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst StyledSrOnly = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </StyledSrOnly>\n )\n})\n","import {forwardRef, useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_isScrollable} from '../../helpers/scroll'\nimport {_ResizeObserver} from '../../observers/resizeObserver'\nimport {StackOwnProps} from '../../primitives/stack/stack'\nimport {useTheme_v2} from '../../theme/useTheme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackOwnProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useChildren({\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n })\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\n\nfunction useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n space,\n toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: number\n itemHeight: number\n space: number[]\n toIndex: number\n }) {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n}\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.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","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_isEnterToClickElement","element","HTMLElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","HTMLAnchorElement","nodeName","isHTMLInputElement","HTMLInputElement","HTMLButtonElement","isHTMLSelectElement","HTMLSelectElement","isHTMLTextAreaElement","HTMLTextAreaElement","containsOrEqualsElement","contains","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","_hasFocus","element","HTMLElement","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","href","rel","type","disabled","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","focusLastDescendant","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","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","$","_c","flex","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","height","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","overflow","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","ref","restProps","sizing","t0","t1","t2","t3","as","display","margin","padding","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","styled","flexItemStyle","responsiveFlexStyle","FlexItemStyleProps","ResponsiveFlexStyleProps","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveFlexItemProps","ResponsiveFlexProps","FlexOwnProps","Omit","gap","FlexProps","E","StyledFlex","FlexComponent","Flex","props","$","_c","align","as","justify","ref","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","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","$","_c","childrenProp","ref","restProps","t0","t1","t2","children","undefined","t3","t4","t5","t6","React","JSX","Element","SpinnerIcon","keyframes","styled","Text","SpinnerProps","muted","size","rotate","StyledSpinner","Spinner","props","$","_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","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","$","_c","IconComponent","IconRightComponent","children","disabled","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","ref","restProps","t0","t1","t2","t3","t4","t5","t6","t7","t8","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","radius","undefined","justifyProp","paddingProp","radiusProp","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","spacing","t19","boxProps","t20","Boolean","t21","t22","t23","t24","t25","t26","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","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","$","_c","asProp","border","borderBottom","borderLeft","borderRight","borderTop","ref","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","ElementRectValue","width","height","ElementSize","content","border","_contentRect","DOMRectReadOnly","_ElementSizeSubscriber","elementRect","_ElementSizeObserver","subscribe","element","HTMLElement","subscriber","_ElementSizeListener","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","resizeObserver","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","invariant","PresenceChild","Activity","useState","AnimateActivityProps","mode","layoutMode","children","React","ReactNode","AnimateActivity","t0","$","_c","modeFromProps","setMode","isPresent","t1","Symbol","for","onExitComplete","Boolean","t2","undefined","t3","t4","t5","t6","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","HTMLProps","css","styled","useTheme_v2","compileCommands","getRoundedCommands","Point","StyledArrow","div","$w","w","StrokePath","path","ShapePath","Arrow","props","$","_c","h","ref","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","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","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","marginsProp","originX","originY","overflow","padding","placement","radius","ref","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","Activity","cloneElement","Ref","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","ThemeColorSchemeKey","useElementSize","useMediaIndex","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","BoxOverflow","CardTone","Placement","PopoverMargins","AnimateActivity","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","children","React","JSX","Element","constrainSize","content","ReactNode","disabled","fallbackPlacements","floatingBoundary","HTMLElement","matchReferenceWidth","modal","open","overflow","padding","placement","placementStrategy","portal","preventOverflow","referenceBoundary","referenceElement","scheme","tone","updateRef","width","ViewportOverlay","$","_c","zIndex","t0","height","inset","position","Popover","props","container","layer","boundaryElementContext","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","forwardedRef","paddingProp","restProps","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","onActivate","t23","t24","t25","t26","t27","t28","t29","radius","t30","ref","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","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","popoverNode","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","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","responsiveStackSpaceStyle","ResponsiveStackSpaceStyleProps","stackBaseStyle","StackOwnProps","gap","space","StackProps","E","StyledStack","StackComponent","Stack","props","$","_c","as","ref","restProps","t0","undefined","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","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","$","_c","IconComponent","IconRightComponent","forwardedRef","readOnly","restProps","t0","t1","t2","t3","t4","t5","t6","disabled","ref","undefined","fontSizeProp","paddingProp","radiusProp","rootTheme","t7","t8","t9","t10","$hasClearButton","Boolean","$hasIcon","$hasIconRight","$hasSuffix","$hasPrefix","t11","Symbol","for","current","handleClearMouseDown","_temp","t12","event_0","event","preventDefault","stopPropagation","focus","handleClearClick","t13","prefixNode","t14","t15","t16","t17","scheme","tone","presentationNode","t18","map","_temp2","clearButtonBoxPadding","t19","_temp3","clearButtonPadding","clearButtonProps","t20","clearButtonNode","t21","suffixNode","t22","t23","t24","t25","v","v_0","SpinnerIcon","keyframes","styled","Box","StyledAutocomplete","div","ListBox","rotate","AnimatedSpinnerIcon","useCallback","_isEnterToClickElement","AutocompleteOptionProps","children","React","ReactNode","id","onSelect","v","selected","value","AutocompleteOption","props","$","_c","t0","setTimeout","handleClick","t1","event","key","currentTarget","handleKeyDown","t2","AutocompleteMsg","AutocompleteState","autocompleteReducer","state","msg","type","activeValue","focused","query","value","listFocused","Placement","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","ChevronDownIcon","ChangeEvent","cloneElement","ElementType","FocusEvent","HTMLProps","KeyboardEvent","MouseEvent","ReactNode","Ref","startTransition","useCallback","useEffect","useImperativeHandle","useMemo","useReducer","useRef","useState","EMPTY_ARRAY","EMPTY_RECORD","_raf","_hasFocus","focusFirstDescendant","Box","BoxProps","Button","Card","Popover","PopoverProps","Stack","Text","TextInput","_getArrayProp","Radius","AnimatedSpinnerIcon","ListBox","StyledAutocomplete","AutocompleteOption","autocompleteReducer","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","AUTOCOMPLETE_POPOVER_PLACEMENT","AutocompleteOpenButtonProps","BaseAutocompleteOption","AutocompleteProps","border","customValidity","filterOption","query","option","Option","fontSize","icon","id","listBox","loading","onChange","value","onQueryChange","onSelect","openButton","openOnFocus","options","padding","popover","Omit","HTMLDivElement","prefix","radius","relatedElements","HTMLElement","renderOption","React","JSX","Element","renderPopover","props","content","hidden","inputElement","HTMLInputElement","onMouseEnter","onMouseLeave","ref","renderValue","suffix","DEFAULT_RENDER_VALUE","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","$","_c","disabled","filterOptionProp","forwardedRef","onBlur","onFocus","optionsProp","readOnly","renderOptionProp","restProps","t0","t1","t2","t3","t4","t5","t6","valueProp","undefined","paddingProp","t7","t8","t9","activeValue","focused","listFocused","state","dispatch","t10","t11","value_0","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","_setInputElement","Symbol","for","node","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","t15","listBoxId","Array","isArray","t16","find","o","currentOption","t17","t18","filter","filteredOptions","filteredOptionsLen","length","activeItemId","expanded","event","setTimeout","current","elements","concat","focusInside","document","activeElement","e","contains","type","handleRootBlur","t19","event_0","listBoxElement","focusedElement","target","listFocused_0","handleRootFocus","t20","v","focus","handleOptionSelect","t21","event_1","key","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","Node","listEl","includes","handleRootKeyDown","t22","event_2","nextQuery","currentTarget","handleInputChange","t23","dispatchOpen","t24","event_3","handleInputFocus","t25","handlePopoverMouseEnter","t26","handlePopoverMouseLeave","t27","handleClearButtonClick","t28","handleClearButtonFocus","t29","t30","t31","t32","t33","t34","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","childNodes","HTMLLIElement","t35","bb0","t36","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t37","openButtonNode","t38","bb1","t39","inputValue","event_5","handleListBoxKeyDown","t40","bb2","t41","t42","option_0","active","selected","tabIndex","t43","bb3","results","t44","t45","RenderPopover","Exclude","Parameters","v_0","v_1","Math","max","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","styled","Button","StyledBreadcrumbs","ol","ExpandButton","Children","Fragment","isValidElement","useCallback","useMemo","useRef","useState","useClickOutsideEvent","Box","Popover","Stack","Text","_getArrayProp","ExpandButton","StyledBreadcrumbs","BreadcrumbsProps","maxLength","separator","React","ReactNode","gap","space","Breadcrumbs","props","$","_c","children","ref","restProps","t0","undefined","t1","open","setOpen","expandElementRef","popoverElementRef","t2","Symbol","for","collapse","t3","expand","t4","current","t5","toArray","filter","rawItems","t6","items","useItems","t7","t8","item","itemIndex","map","len","length","beforeLength","Math","ceil","afterLength","floor","slice","useEffect","useEffectEvent","useGlobalKeyDown","onKeyDown","options","$","_c","t0","event","handleKeyDown","t1","handler","event_0","window","addEventListener","removeEventListener","t2","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveWidthStyleProps","BASE_STYLE","width","margin","containerBaseStyle","responsiveContainerWidthStyle","props","container","media","theme","$width","val","maxWidth","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveWidthProps","containerBaseStyle","responsiveContainerWidthStyle","ResponsiveWidthStyleProps","ContainerOwnProps","ContainerProps","E","StyledContainer","ContainerComponent","Container","props","$","_c","as","ref","restProps","t0","width","undefined","t1","t2","React","JSX","Element","FocusEvent","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","$","_c","children","forwardedRef","onFocus","restProps","t0","ref","style","undefined","zIndex","isTopLayer","lastFocusedRef","isTopLayerRef","t1","Symbol","for","current","t2","t3","becameTopLayer","t4","event","rootElement","target","document","handleFocus","t5","t6","Layer","css","CSSObject","getTheme_v2","_responsive","ThemeProps","DialogPosition","ResponsiveDialogPositionStyleProps","$position","dialogStyle","theme","color","display","backdrop","responsiveDialogPositionStyle","props","media","position","AnimationDialogStyleProps","$animate","animationDialogStyle","ReturnType","createGlobalScopedContext","DialogPosition","DialogContextValue","version","position","zOffset","DialogContext","useContext","DialogContext","DialogContextValue","useDialog","CloseIcon","useCallback","useEffect","useImperativeHandle","useRef","styled","ThemeColorSchemeKey","containsOrEqualsElement","isHTMLElement","focusFirstDescendant","focusLastDescendant","useClickOutsideEvent","useGlobalKeyDown","usePrefersReducedMotion","Box","Button","Card","Container","Flex","Text","ResponsivePaddingProps","ResponsiveWidthProps","_getArrayProp","responsivePaddingStyle","ResponsivePaddingStyleProps","useTheme_v2","DialogPosition","Radius","useBoundaryElement","Layer","LayerProps","useLayer","Portal","usePortal","animationDialogStyle","AnimationDialogStyleProps","dialogStyle","responsiveDialogPositionStyle","ResponsiveDialogPositionStyleProps","useDialog","DialogProps","__unstable_autoFocus","__unstable_hideCloseButton","cardRadius","cardShadow","contentRef","React","ForwardedRef","HTMLDivElement","footer","ReactNode","header","id","onActivate","onClickOutside","onClose","portal","position","scheme","zOffset","animate","DialogCardProps","children","radius","ref","Ref","shadow","isTargetWithinScope","boundaryElement","HTMLElement","portalElement","target","Node","StyledDialog","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","props","$","_c","autoFocus","hideCloseButton","forwardedContentRef","portalProp","radiusProp","forwardedRef","shadowProp","width","widthProp","elements","element","t0","t1","t2","layer","isTopLayer","labelId","showCloseButton","Boolean","showHeader","t3","Symbol","for","current","t4","t5","t6","t7","event","document","activeElement","key","preventDefault","stopPropagation","t8","event_0","target_0","t9","t10","t11","t12","t13","t14","t15","Dialog","dialog","_positionProp","_zOffsetProp","onFocus","restProps","padding","undefined","cardRadiusProp","paddingProp","_animate","positionProp","zOffsetProp","prefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","setTimeout","body","contains","cardElement_0","focus","handleRootClick","t16","t17","t18","useMemo","DialogPosition","DialogContext","DialogContextValue","DialogProviderProps","children","React","ReactNode","position","zOffset","DialogProvider","props","$","_c","t0","version","contextValue","t1","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveInlineSpaceStyleProps","inlineBaseStyle","display","verticalAlign","inlineSpaceStyle","props","media","space","theme","$space","spaceIndex","_space","padding","Children","useMemo","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","inlineBaseStyle","inlineSpaceStyle","ResponsiveInlineSpaceStyleProps","InlineOwnProps","Omit","space","gap","InlineProps","E","StyledInline","InlineComponent","Inline","props","$","_c","as","childrenProp","ref","restProps","children","t0","map","_temp","t1","t2","React","JSX","Element","child","css","styled","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","ElementType","Props","Radius","Box","Text","KBDOwnProps","fontSize","padding","radius","KBDProps","E","kbdStyle","StyledKBD","kbd","KBDComponent","KBD","props","$","_c","children","ref","restProps","t0","t1","t2","undefined","t3","t4","t5","t6","React","JSX","Element","styled","Inline","KBD","_getArrayProp","Radius","HotkeysProps","fontSize","gap","padding","radius","space","keys","StyledHotkeys","kbd","Key","Hotkeys","props","$","_c","ref","restProps","t0","undefined","t1","spacing","length","t2","Symbol","for","t3","key","i","map","t4","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","t4","t5","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","t6","event_0","element_0","currentTarget","currentIndex_3","t7","t8","t9","rafId","requestAnimationFrame","focusableElements_3","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","element_1","cancelAnimationFrame","t10","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","$","_c","children","forwardedRef","onClickOutside","onEscape","onItemClick","onItemSelect","onKeyDown","originElement","registerElement","restProps","t0","t1","t2","padding","ref","shouldFocus","gap","undefined","t3","Symbol","for","current","isTopLayer","t4","rootElementRef","activeElement","activeIndex","handleItemMouseEnter","handleItemMouseLeave","handleKeyDown","mount","unregisterElementRef","t5","handleRefChange","t6","t7","t8","t9","key","stopPropagation","t10","version","onItemMouseEnter","onItemMouseLeave","value","t11","t12","t13","cloneElement","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Popover","PopoverProps","MenuProps","MenuButtonProps","__unstable_disableRestoreFocusOnClose","boundaryElement","button","React","JSX","Element","id","menu","onClose","onOpen","placement","popover","Omit","popoverScheme","popoverRadius","portal","preventOverflow","ref","Ref","HTMLButtonElement","MenuButton","props","$","_c","t0","buttonProp","menuProp","forwardedRef","disableRestoreFocusOnClose","undefined","open","setOpen","shouldFocus","setShouldFocus","buttonElement","setButtonElement","t1","Symbol","for","menuElements","setChildMenuElements","openRef","t2","t3","current","t4","t5","t6","t7","t8","_temp","handleButtonClick","t9","event","preventDefault","handleMouseDown","t10","event_0","key","handleButtonKeyDown","t11","event_1","target","Node","contains","el","handleMenuClickOutside","t12","focus","handleMenuEscape","t13","event_2","target_0","relatedTarget","el_0","handleBlur","t14","handleItemClick","t15","el_1","els","concat","els_0","filter","_el","registerElement","t16","menuProps","t17","selected","t18","t19","t20","t21","overflow","popoverProps","t22","t23","v","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","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","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","$","_c","IconComponent","IconRightComponent","children","disabled","forwardedRef","onClick","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","restProps","selectedProp","t0","t1","t2","t3","t4","t5","as","padding","radius","ref","undefined","scheme","menu","activeElement","mount","onItemClick","onItemMouseEnter","_onItemMouseEnter","onItemMouseLeave","_onItemMouseLeave","rootElement","setRootElement","active","Boolean","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","useEffect","useState","styled","Box","BoxOwnProps","ResponsiveRadiusProps","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","skeletonStyle","StyledSkeleton","$animated","$visible","SkeletonProps","Omit","animated","delay","Skeleton","props","$","_c","radius","ref","restProps","t0","undefined","visible","setVisible","t1","t2","timeout","setTimeout","clearTimeout","t3","t4","t5","styled","ThemeFontKey","getTheme_v2","_getArrayProp","_responsive","ThemeProps","Skeleton","SkeletonProps","StyledSkeleton","$size","$style","props","font","media","theme","fontStyle","styles","sizeIndex","fontSize","sizes","capHeight","lineHeight","ascenderHeight","descenderHeight","height","TextSkeletonProps","size","LabelSkeletonProps","HeadingSkeletonProps","CodeSkeletonProps","TextSkeleton","$","_c","restProps","t0","undefined","t1","t2","LabelSkeleton","HeadingSkeleton","CodeSkeleton","useCallback","useEffect","useImperativeHandle","useRef","styled","Button","ButtonTone","TabProps","React","ElementType","ReactNode","CustomButton","Tab","props","$","_c","focused","forwardedRef","icon","id","label","onClick","onFocus","restProps","selected","t0","t1","fontSize","padding","ref","undefined","focusedRef","t2","Symbol","for","current","t3","handleBlur","t4","event","handleFocus","t5","t6","focus","t7","t8","t9","Children","cloneElement","isValidElement","useCallback","useState","styled","Inline","InlineOwnProps","TabListProps","Omit","children","Array","React","JSX","Element","CustomInline","TabList","props","$","_c","childrenProp","ref","restProps","focusedIndex","setFocusedIndex","t0","toArray","filter","t1","child","childIndex","focused","key","onFocus","map","tabs","numTabs","length","event","prevIndex","prevIndex_0","handleKeyDown","t2","Box","BoxOwnProps","TabPanelProps","TabPanel","props","$","_c","flex","restProps","t0","tabIndex","undefined","t1","children","styled","ThemeColorStateToneKey","getTheme_v2","Card","CardProps","Flex","ButtonTone","LOADING_BAR_HEIGHT","STATUS_CARD_TONE","error","warning","success","info","key","BUTTON_TONE","TextBox","StyledToast","LoadingBar","div","LoadingBarMask","LoadingBarProgressProps","Omit","tone","LoadingBarProgress","React","ComponentType","props","color","theme","button","default","enabled","bg","CloseIcon","motion","stagger","Variant","Variants","usePrefersReducedMotion","Box","Button","Flex","Stack","Text","BUTTON_TONE","LoadingBar","LoadingBarMask","LoadingBarProgress","STATUS_CARD_TONE","StyledToast","TextBox","ToastProps","closable","description","React","ReactNode","onClose","radius","title","status","duration","updatedAt","ROLES","error","warning","success","info","const","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","props","$","_c","restProps","t0","undefined","cardTone","buttonTone","role","prefersReducedMotion","visualDuration","t1","type","bounce","transition","hasDuration","isFinite","t2","Symbol","for","initial","t3","animate","t4","exit","t5","t6","t7","content","t8","t9","verticalAlign","t10","t11","scaleX","delay","ease","t12","container","y","scale","zIndex","hidden","opacity","visible","when","delayChildren","slideIn","slideOut","ContainerVariants","willChange","Partial","Record","MotionToast","create","MotionFlex","MotionText","MotionLoadingBar","MotionLoadingBarProgress","useSyncExternalStore","useMounted","subscribe","_temp","_temp2","createGlobalScopedContext","ToastContextValue","ToastContext","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","styled","responsiveGridStyle","ResponsiveGridStyleProps","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveGridProps","GridOwnProps","Omit","GridProps","E","StyledGrid","GridComponent","Grid","props","$","_c","as","autoCols","autoFlow","autoRows","children","gap","gapX","gapY","gridTemplateColumns","gridTemplateRows","ref","restProps","t0","undefined","t1","t2","t3","t4","t5","t6","t7","t8","t9","React","JSX","Element","styled","Grid","useLayer","ToastLayerProps","children","React","ReactNode","padding","paddingX","paddingY","gap","ToastLayer","props","$","_c","t0","t1","undefined","zIndex","t2","t3","StyledLayer","toastId","generateToastId","String","AnimatePresence","startTransition","useMemo","useState","useMounted","LayerProvider","Toast","ToastContext","ToastLayer","ToastLayerProps","generateToastId","ToastContextValue","ToastParams","ToastState","dismiss","id","updatedAt","params","ToastProviderProps","Omit","children","React","ReactNode","zOffset","ToastProvider","props","$","_c","padding","paddingX","paddingY","gap","t0","undefined","t1","Symbol","for","state","setState","mounted","t2","push","duration","prevState","filter","toast","currentState","toast_0","toast_1","Date","now","version","value","t3","map","_temp","t4","dismiss_0","id_0","params_0","closable","description","status","title","useContext","isRecord","ToastContext","ToastContextValue","useToast","value","Error","version","TreeState","_findPrevItemElement","state","itemElements","HTMLElement","focusedElement","idx","indexOf","els","slice","len","length","i","itemKey","getAttribute","segments","split","pop","p","expanded","j","push","k","join","_findNextItemElement","_focusItemElement","el","focus","firstChild","createGlobalScopedContext","TreeContextValue","TreeContext","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Stack","_findNextItemElement","_findPrevItemElement","_focusItemElement","TreeContext","TreeContextValue","TreeState","TreeProps","gap","space","Tree","props","$","_c","children","forwardedRef","onFocus","restProps","t0","ref","undefined","focusedElement","setFocusedElement","focusedElementRef","t1","Symbol","for","path","t2","itemElements","setItemElements","t3","state","setState","stateRef","t4","current","t5","t6","t7","t8","t9","element","path_0","expanded","selected","s","s_0","newState","registerItem","t10","path_1","expanded_0","s_1","itemState","setExpanded","t11","t12","version","level","contextValue","t13","event","key","preventDefault","nextEl","prevEl","itemKey","getAttribute","itemState_0","s_2","itemState_1","itemPath","split","pop","parentKey","join","parentState","focus","focusedKey","s_3","itemState_2","handleKeyDown","t14","event_0","target","handleFocus","t15","_itemElements","Array","from","querySelectorAll","HTMLElement","t16","t17","t18","css","getTheme_v2","_cardColorStyle","rem","ThemeProps","treeItemRootStyle","ReturnType","treeItemRootColorStyle","props","$tone","color","theme","tone","selectable","enabled","pressed","hovered","selected","TreeItemBoxStyleProps","$level","treeItemBoxStyle","space","useContext","TreeContext","TreeContextValue","useTree","tree","Error","Stack","useTree","TreeGroupProps","expanded","TreeGroup","props","$","_c","children","restProps","t0","undefined","tree","t1","t2","gap","ToggleArrowRightIcon","startTransition","useCallback","useEffect","useId","useMemo","useRef","useState","styled","ThemeFontWeightKey","Box","Flex","Text","ElementType","treeItemBoxStyle","TreeItemBoxStyleProps","treeItemRootColorStyle","treeItemRootStyle","TreeContext","TreeGroup","useTree","TreeItemProps","expanded","fontSize","icon","React","linkAs","linkProps","HTMLProps","HTMLAnchorElement","Record","padding","gap","space","text","ReactNode","weight","StyledTreeItem","li","TreeItemBox","a","ToggleArrowText","TreeItem","props","$","_c","IconComponent","children","href","idProp","muted","onClick","restProps","t0","t1","t2","t3","t4","id","selected","expandedProp","undefined","rootElement","_setRootElement","t5","Symbol","for","node","setRootElement","treeitemRef","tree","path","registerItem","setExpanded","setFocusedElement","_id","t6","t7","itemPath","concat","join","t8","itemPath_0","itemKey","itemState","state","focused","focusedElement","tabIndex","t9","level","t10","contextValue","t11","event","target","HTMLElement","getAttribute","closest","stopPropagation","handleClick","t12","event_0","key","el","current","click","handleKeyDown","t13","t14","t15","t16","visibility","pointerEvents","t17","t18","transform","t19","t20","t21","content","t22","t23","t24","t25","t26","t27","_isScrollable","el","Node","Element","style","window","getComputedStyle","overflowX","includes","overflowY","ArrayPropPrimitive","useArrayProp","_val","_defaultVal","Error","ClickOutsideListener","event","MouseEvent","ClickOutsideElements","HTMLElement","useClickOutside","_listener","_elementsArg","_boundaryElement","Error","useElementRect","_element","Error","useForwardedRef","_ref","Error","useMatchMedia","usePrefersDark","t0","getServerSnapshot","undefined","_temp","CSSObject","ThemeProps","responsiveFont","ResponsiveFontStyleProps","responsiveLabelFont","props","css","getTheme_v2","ThemeProps","labelBaseStyle","props","$accent","$muted","ReturnType","font","theme","code","family","styled","ThemeFontWeightKey","responsiveLabelFont","responsiveTextAlignStyle","_getArrayProp","ElementType","Props","TextAlign","SpanWithTextOverflow","labelBaseStyle","LabelOwnProps","accent","align","muted","size","textOverflow","weight","LabelProps","E","StyledLabel","div","$accent","$align","$muted","$size","$weight","LabelComponent","Label","props","$","_c","childrenProp","ref","restProps","t0","t1","children","undefined","t2","t3","t4","React","JSX","Element","CSSObject","getTheme_v2","focusRingStyle","_responsive","rem","ThemeProps","AvatarRootStyleProps","ResponsiveAvatarSizeStyleProps","avatarStyle","root","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","display","transform","opacity","props","$color","avatar","theme","boxShadow","focusRing","responsiveAvatarSizeStyle","media","$size","size","avatarSize","sizes","width","height","borderRadius","position","strokeWidth","strokeDasharray","strokeLinecap","useCallback","useEffect","useId","useState","ReactIs","styled","ThemeColorAvatarColorKey","_getArrayProp","useTheme_v2","AvatarPosition","AvatarSize","AvatarStatus","ElementType","Props","Label","avatarStyle","responsiveAvatarSizeStyle","AvatarOwnProps","__unstable_hideInnerStroke","animateArrowFrom","arrowPosition","color","initials","onImageLoadError","event","Error","size","src","status","title","AvatarProps","E","StyledAvatar","div","$color","$size","root","Arrow","arrow","BgStroke","ellipse","bgStroke","Stroke","stroke","Initials","InitialsLabel","AvatarImage","svg","image","AvatarComponent","Avatar","props","$","_c","arrowPositionProp","asProp","ref","restProps","t0","t1","t2","as","undefined","sizeProp","avatar","isValidElementType","avatarSize","sizes","_sizeRem","_radius","elementId","setArrowPosition","imageFailed","setImageFailed","imageId","t3","t4","raf","requestAnimationFrame","cancelAnimationFrame","t5","t6","t7","handleImageError","T0","t8","t9","t10","t11","t12","map","_temp","t13","React","JSX","Element","s","css","styled","getTheme_v2","EMPTY_RECORD","_getArrayProp","_responsive","rem","ThemeProps","AvatarSize","Label","_responsiveAvatarCounterSizeStyle","props","$size","avatar","media","theme","size","avatarSize","sizes","borderRadius","minWidth","height","_avatarCounterBaseStyle","space","StyledAvatarCounter","div","AvatarCounterProps","count","tone","AvatarCounter","$","_c","ref","t0","sizeProp","undefined","T0","T1","t1","t2","t3","t4","t5","map","_temp","t6","t7","s","Children","cloneElement","isValidElement","css","styled","getTheme_v2","EMPTY_RECORD","_getArrayProp","_responsive","rem","ThemeProps","AvatarSize","AvatarCounter","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","props","$size","avatar","media","theme","size","avatarSize","sizes","marginLeft","distance","StyledAvatarStack","div","AvatarStackProps","children","React","ReactNode","maxLength","tone","AvatarStack","$","_c","childrenProp","ref","restProps","t0","t1","maxLengthProp","undefined","sizeProp","T0","t2","t3","t4","t5","t6","t7","t8","toArray","filter","Math","max","t9","len","length","visibleCount","extraCount","visibleChildren","slice","t10","child","childIndex","String","map","CSSObject","BadgeStyleProps","badgeStyle","props","$tone","display","verticalAlign","styled","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","BadgeTone","ElementType","Props","Box","BoxOwnProps","Text","ResponsiveRadiusProps","badgeStyle","BadgeStyleProps","BadgeOwnProps","fontSize","mode","tone","BadgeProps","E","StyledBadge","BadgeComponent","Badge","props","$","_c","children","ref","restProps","t0","t1","t2","t3","padding","radius","undefined","t4","t5","t6","t7","React","JSX","Element","css","getTheme_v2","focusRingBorderStyle","focusRingStyle","rem","ThemeProps","checkboxBaseStyles","ReturnType","inputElementStyles","props","color","input","radius","theme","focusRing","checkbox","size","default","enabled","border","width","bg","fg","offset","invalid","muted","disabled","readOnly","CheckmarkIcon","RemoveIcon","useEffect","useImperativeHandle","useRef","styled","useCustomValidity","checkboxBaseStyles","inputElementStyles","CheckboxProps","indeterminate","customValidity","StyledCheckbox","div","Input","input","Checkbox","props","$","_c","checked","className","disabled","forwardedRef","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","t2","t3","undefined","t4","t5","t6","t7","t8","CSSObject","ThemeProps","responsiveFont","FontWeightStyleProps","ResponsiveFontSizeStyleProps","responsiveCodeFontStyle","props","css","ExecutionContext","getTheme_v2","codeSyntaxHighlightingStyle","theme","color","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","codeBaseStyle","ReturnType","lazy","Suspense","styled","ThemeFontWeightKey","responsiveCodeFontStyle","FontWeightStyleProps","ResponsiveFontSizeStyleProps","_getArrayProp","ElementType","Props","codeBaseStyle","LazyRefractor","CodeOwnProps","language","size","weight","CodeProps","E","StyledCode","pre","CodeComponent","Code","props","$","_c","children","ref","restProps","t0","undefined","t1","t2","t3","t4","t5","t6","React","JSX","Element","CSSObject","ThemeProps","responsiveFont","ResponsiveFontStyleProps","responsiveHeadingFont","props","css","getTheme_v2","ThemeProps","HeadingStyleProps","headingBaseStyle","props","ReturnType","$accent","$muted","font","theme","code","family","heading","weights","bold","styled","ThemeFontWeightKey","responsiveHeadingFont","responsiveTextAlignStyle","ResponsiveFontStyleProps","ResponsiveTextAlignStyleProps","_getArrayProp","ElementType","Props","TextAlign","SpanWithTextOverflow","headingBaseStyle","HeadingStyleProps","HeadingOwnProps","accent","align","muted","size","textOverflow","weight","HeadingProps","E","StyledHeading","div","HeadingComponent","Heading","props","$","_c","childrenProp","ref","restProps","t0","t1","t2","children","undefined","t3","t4","t5","t6","React","JSX","Element","css","getTheme_v2","focusRingBorderStyle","focusRingStyle","rem","ThemeProps","radioBaseStyle","ReturnType","inputElementStyle","props","color","input","theme","dist","radio","size","markSize","default","enabled","bg","border","width","fg","focusRing","invalid","muted","readOnly","disabled","useImperativeHandle","useRef","styled","useCustomValidity","inputElementStyle","radioBaseStyle","RadioProps","customValidity","StyledRadio","div","Input","input","Radio","props","$","_c","className","disabled","forwardedRef","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","undefined","t2","t3","t4","t5","t6","css","CSSObject","ThemeFontSize","getTheme_v2","focusRingBorderStyle","focusRingStyle","_responsive","rem","responsiveInputPaddingIconRightStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","ThemeProps","rootStyle","ReturnType","inputBaseStyle","props","font","theme","text","family","inputColorStyle","color","input","default","enabled","bg","fg","border","width","hovered","focusRing","select","readOnly","disabled","textSize","size","fontSize","lineHeight","inputTextSizeStyle","$fontSize","media","sizeIndex","sizes","inputStyle","Array","$padding","$space","iconBoxStyle","selectStyle","root","iconBox","ChevronDownIcon","useImperativeHandle","useRef","styled","useCustomValidity","_getArrayProp","Radius","Box","Text","selectStyle","SelectProps","fontSize","gap","padding","radius","space","customValidity","StyledSelect","div","root","Input","select","$fontSize","$padding","$radius","$space","input","IconBox","iconBox","Select","props","$","_c","children","disabled","forwardedRef","readOnly","restProps","t0","t1","t2","t3","ref","undefined","t4","Symbol","for","current","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","css","getTheme_v2","focusRingStyle","rem","ThemeProps","switchBaseStyles","ReturnType","switchInputStyles","switchRepresentationStyles","props","color","input","theme","default","enabled","border","bg","switch","width","height","focusRing","fg","hovered","disabled","readOnly","switchTrackStyles","switchThumbStyles","$checked","$indeterminate","trackWidth","trackHeight","trackPadding","padding","size","checkedOffset","indeterminateOffset","checked","transitionDurationMs","transitionTimingFunction","useEffect","useImperativeHandle","useRef","styled","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switchThumbStyles","switchTrackStyles","SwitchProps","indeterminate","StyledSwitch","span","Input","input","Representation","Track","Thumb","$checked","$indeterminate","Switch","props","$","_c","checked","className","disabled","forwardedRef","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","t2","t3","undefined","t4","t5","t6","t7","t8","t9","useImperativeHandle","useRef","styled","ThemeFontWeightKey","useCustomValidity","_getArrayProp","responsiveInputPaddingStyle","TextInputResponsivePaddingStyleProps","textInputBaseStyle","textInputFontSizeStyle","TextInputInputStyleProps","textInputRepresentationStyle","TextInputRepresentationStyleProps","textInputRootStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useRootTheme","ResponsiveRadiusProps","TextAreaProps","__unstable_disableFocusRing","border","customValidity","fontSize","padding","weight","StyledTextArea","span","InputRoot","Input","textarea","Presentation","div","TextArea","props","$","_c","forwardedRef","restProps","t0","t1","t2","t3","t4","disabled","radius","ref","undefined","rootTheme","t5","Symbol","for","current","t6","scheme","t7","tone","t8","t9","t10","t11","t12","t13","t14","t15","t16","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","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","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","originX","originY","padding","placement","radius","ref","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","Activity","cloneElement","useCallback","useEffect","useId","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","styled","useEffectEvent","ThemeColorSchemeKey","useDelayedState","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","Placement","AnimateActivity","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","$","_c","boundaryElementContext","layer","_boundaryElement","_fallbackPlacementsProp","_zOffset","childProp","forwardedRef","portalProp","restProps","t0","t1","t2","t3","t4","t5","ref","zOffset","_animate","undefined","arrowProp","placementProp","element","fallbackPlacementsProp","tooltip","prefersReducedMotion","t6","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","tooltipNode","t39","t40","ret","boundary","push","mainAxis","target","teardown","isHoveringReference","Node","contains","onMouseMove","handleMouseMove","useMemo","useDelayedState","Delay","TooltipDelayGroupContext","TooltipDelayGroupContextValue","TooltipDelayGroupProviderProps","children","React","ReactNode","delay","TooltipDelayGroupProvider","props","$","_c","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","open","closeDelay","close","t0","t1","value","t2","useMemo","BoundaryElementContext","BoundaryElementContextValue","BoundaryElementProviderProps","children","React","ReactNode","element","HTMLElement","BoundaryElementProvider","props","$","_c","t0","version","value","t1","ConditionalWrapper","_props","Error","findMaxBreakpoints","media","width","ret","i","length","bp","push","findMinBreakpoints","useImperativeHandle","useMemo","useState","useElementSize","useTheme_v2","findMaxBreakpoints","findMinBreakpoints","MediaQueryProps","as","React","ElementType","JSX","IntrinsicElements","media","ElementQuery","props","$","_c","theme","_media","children","forwardedRef","restProps","ref","element","setElement","elementSize","width","border","window","innerWidth","t0","eq","length","join","undefined","max","t1","eq_0","min","t2","t3","t4","Component","PropsWithChildren","Code","ErrorBoundaryProps","onCatch","params","error","Error","info","React","ErrorInfo","ErrorBoundaryState","ErrorBoundary","state","getDerivedStateFromError","componentDidCatch","props","render","ReactNode","message","children","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","styled","SrOnlyProps","as","React","ElementType","JSX","IntrinsicElements","children","ReactNode","StyledSrOnly","div","SrOnly","props","$","_c","ref","t0","useEffect","useImperativeHandle","useRef","useState","styled","_isScrollable","StackOwnProps","useTheme_v2","VirtualListChangeOpts","fromIndex","gap","itemHeight","scrollHeight","scrollTop","toIndex","VirtualListProps","as","React","ElementType","JSX","IntrinsicElements","getItemKey","item","Item","itemIndex","items","onChange","opts","renderItem","ReactNode","StyledVirtualList","div","ItemWrapper","VirtualList","props","$","_c","forwardedRef","restProps","t0","t1","t2","ref","undefined","t3","space","wrapperRef","setScrollTop","setScrollHeight","setItemHeight","t4","Symbol","for","current","t5","firstElement","firstChild","HTMLElement","offsetHeight","t6","t7","t8","scrollEl","findScrollable","parentNode","handleScroll","addEventListener","passive","ro","ResizeObserver","entries","contentRect","height","observe","removeEventListener","unobserve","disconnect","handleScroll_0","window","scrollY","handleResize","innerHeight","len","length","Math","max","floor","ceil","t10","t9","t11","children","useChildren","t12","t13","t14","_itemIndex","node","key","top","slice","map","ParentNode","_scrollEl"],"sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.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/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/utils/animateActivity.tsx","../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/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/hooks/useClickOutsideEvent.ts","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/hooks/useGlobalKeyDown.ts","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/utils/layer/layer.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/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/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/styles/grid/gridStyle.ts","../src/core/primitives/grid/grid.tsx","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx","../src/core/helpers/scroll.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/usePrefersDark.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/styles/font/codeFontStyle.ts","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/styles/font/headingFontStyle.ts","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltip.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.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 _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {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 {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 = function Box(\n props: BoxOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n) {\n const {\n as: asProp = 'div',\n ref,\n gridColumn,\n gridColumnStart,\n gridColumnEnd,\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 gridRowStart,\n gridRowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={_getArrayProp(gridColumn)}\n $columnStart={_getArrayProp(gridColumnStart)}\n $columnEnd={_getArrayProp(gridColumnEnd)}\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(gridRow)}\n $rowStart={_getArrayProp(gridRowStart)}\n $rowEnd={_getArrayProp(gridRowEnd)}\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 {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 = function Flex(\n props: FlexOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n) {\n const {align, as, direction = 'row', gap, justify, ref, 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 {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 = function Text(\n props: TextOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n ref,\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 {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 = function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n return (\n <StyledSpinner data-ui=\"Spinner\" {...props}>\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 {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.\n */\n space?: never\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 = function Button(\n props: ButtonOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'as' | 'width'\n >,\n) {\n const {\n children,\n disabled,\n ref,\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 = 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)\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 {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 = function Card(\n props: CardOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\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 ref,\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","/**\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","/**\n * MIT License\n *\n * Copyright (c) 2024 Motion One\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nimport {invariant, PresenceChild} from 'motion/react'\nimport {Activity, useState} from 'react'\n\ninterface AnimateActivityProps {\n mode: 'visible' | 'hidden'\n layoutMode: 'default' | 'pop'\n children: React.ReactNode\n}\n\n/**\n * Animated version of React's `Activity` that defers `mode=\"hidden\"` until\n * child exit animations have finished.\n *\n * @internal\n */\nexport function AnimateActivity({mode: modeFromProps, layoutMode, children}: AnimateActivityProps) {\n /**\n * This is the mode that we'll render.\n */\n const [mode, setMode] = useState(modeFromProps)\n\n /**\n * This is the goal state as defined by props.\n */\n const isPresent = modeFromProps === 'visible'\n\n /**\n * Immediately switch to mode=\"visible\" when the user\n * changes the mode prop.\n */\n if (isPresent && mode !== 'visible') {\n setMode('visible')\n return null\n }\n\n /**\n * Set mode to \"hidden\" only when the exit animation is complete.\n */\n const onExitComplete = () => setMode('hidden')\n\n invariant(Boolean(Activity), 'Activity component not found - upgrade to React 19.2.0 or higher')\n\n return (\n <Activity mode={mode}>\n <PresenceChild\n isPresent={isPresent}\n onExitComplete={!isPresent ? onExitComplete : undefined}\n presenceAffectsLayout={false}\n mode={layoutMode === 'pop' ? 'popLayout' : 'sync'}\n >\n {/* oxlint-disable-next-line no-unsafe-type-assertion -- PresenceChild expects a single ReactElement */}\n {children as any}\n </PresenceChild>\n </Activity>\n )\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 {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 = function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n): React.JSX.Element {\n const {width: w, height: h, radius = 0, ref, ...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, 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 = 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) {\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 ref,\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 {\n Activity,\n cloneElement,\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 {AnimateActivity} from '../../utils/animateActivity'\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?: never\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 = function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\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 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 ref: forwardedRef,\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 fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary = _floatingBoundary ?? boundaryElementContext.element\n const referenceBoundary = _referenceBoundary ?? boundaryElementContext.element\n // Max-width uses BoundaryElementProvider when present; otherwise the floating\n // boundary (same element the old `boundaryElement` prop used for both).\n const boundaryElement = boundaryElementContext.element ?? floatingBoundary\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 popoverNode = 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 ? (\n <AnimateActivity layoutMode=\"default\" mode={open ? 'visible' : 'hidden'}>\n {popoverNode}\n </AnimateActivity>\n ) : (\n <Activity mode={open ? 'visible' : 'hidden'}>{popoverNode}</Activity>\n )}\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 {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.\n */\n space?: never\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 = function Stack(\n props: StackOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {as, gap, ref, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={_getArrayProp(gap)}\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 {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.\n */\n space?: never\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 = function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n gap = 3,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n ref: forwardedRef,\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)\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 {SpinnerIcon} from '@sanity/icons/Spinner'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Box} from '../../primitives/box/box'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers/element'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n // oxlint-disable-next-line no-noninteractive-element-to-interactive-role, prefer-tag-over-role\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types/placement'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n startTransition,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_raf} from '../../helpers/animation'\nimport {_hasFocus, focusFirstDescendant} from '../../helpers/focus'\nimport {Box, BoxProps} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {TextInput} from '../../primitives/textInput/textInput'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = function Autocomplete<Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n // Element refs that need to be accessed during render\n const [inputElement, _setInputElement] = useState<HTMLInputElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setInputElement = useCallback((node: HTMLInputElement | null) => {\n startTransition(() => _setInputElement(node))\n }, [])\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward inputElement state to inputElementRef\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n inputElementRef,\n () => inputElement,\n [inputElement],\n )\n // Forward inputElement to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = _getArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n // oxlint-disable-next-line no-unsafe-type-assertion\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = 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 const openButtonPadding = padding.map((v) => Math.max(v - 1, 0))\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"listbox\"\n gap={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return (\n <RenderPopover\n content={content}\n hidden={!expanded}\n inputElement={inputElement}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n resultsPopoverElementRef={resultsPopoverElementRef}\n renderPopover={renderPopover}\n />\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setInputElement}\n // oxlint-disable-next-line prefer-tag-over-role, role-has-required-aria-props\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n {results}\n </StyledAutocomplete>\n )\n}\n\nfunction RenderPopover({\n renderPopover,\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n resultsPopoverElementRef,\n}: {\n renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n return renderPopover(\n {\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n },\n resultsPopoverElementRef,\n )\n}\n","import {useDebugValue, useEffect} from 'react'\n// TODO: switch to `useEffectEvent` from `react` once\n// https://github.com/facebook/react/issues/34818 is fixed in the lowest React\n// version we support: on React 19.2 the native hook never sees values past\n// the first render when the calling component is wrapped in `forwardRef` or\n// `memo`. This public hook runs in the fiber of whatever component calls it\n// (consumers may call it from `forwardRef` or `memo` components).\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 {styled} from 'styled-components'\n\nimport {Button} from '../../primitives/button/button'\n\nexport const StyledBreadcrumbs = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, Fragment, isValidElement, useCallback, useMemo, useRef, useState} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {Box} from '../../primitives/box/box'\nimport {Popover} from '../../primitives/popover/popover'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'type'>,\n) {\n const {children, gap = 2, maxLength, ref, separator, ...restProps} = props\n const space = _getArrayProp(gap)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n })\n\n return (\n <StyledBreadcrumbs data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </StyledBreadcrumbs>\n )\n}\n\nfunction useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n}: {\n collapse: () => void\n expand: () => void\n expandElementRef: React.RefObject<HTMLButtonElement | null>\n maxLength: number | undefined\n open: boolean\n popoverElementRef: React.RefObject<HTMLDivElement | null>\n // oxlint-disable-next-line no-unnecessary-type-arguments\n rawItems: React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[]\n space: number[]\n}) {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} gap={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n}\n","import {useEffect} from 'react'\n// TODO: switch to `useEffectEvent` from `react` once\n// https://github.com/facebook/react/issues/34818 is fixed in the lowest React\n// version we support: on React 19.2 the native hook never sees values past\n// the first render when the calling component is wrapped in `forwardRef` or\n// `memo`. This public hook runs in the fiber of whatever component calls it\n// (consumers may call it from `forwardRef` or `memo` components).\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 {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 {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerOwnProps extends BoxOwnProps, ResponsiveWidthProps {}\n\n/**\n * @public\n */\nexport type ContainerProps<E extends ElementType = 'div'> = Props<ContainerOwnProps, E>\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\nconst ContainerComponent = function Container(\n props: ContainerOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'width'\n >,\n) {\n const {as, ref, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n}\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Container = ContainerComponent as unknown as <E extends ElementType = 'div'>(\n props: ContainerProps<E>,\n) => React.JSX.Element\n","import {FocusEvent, 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 = function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {\n children,\n onActivate,\n onFocus,\n ref: forwardedRef,\n style = EMPTY_RECORD,\n ...restProps\n } = 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 = function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps}>{children}</LayerChildren>\n </LayerProvider>\n )\n}\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers/element'\nimport {focusFirstDescendant, focusLastDescendant} from '../../helpers/focus'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Container} from '../../primitives/container/container'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsivePaddingStyle} from '../../styles/padding/paddingStyle'\nimport {ResponsivePaddingStyleProps} from '../../styles/padding/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {DialogPosition} from '../../types/dialog'\nimport {Radius} from '../../types/radius'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {Layer, LayerProps} from '../../utils/layer/layer'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n ref?: React.Ref<HTMLDivElement>\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = function DialogCard(props: DialogCardProps) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n ref: forwardedRef,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const width = _getArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n}\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n ref,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = _getArrayProp(cardRadiusProp)\n const padding = _getArrayProp(paddingProp)\n const position = _getArrayProp(positionProp)\n const width = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n}\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types/dialog'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","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, 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 * @deprecated Use `gap` instead.\n */\n space?: never\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 = function Inline(\n props: InlineOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n) {\n const {as, children: childrenProp, gap, ref, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={_getArrayProp(gap)}\n forwardedAs={as}\n ref={ref}\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 {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 = function KBD(\n props: KBDOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ref, ...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 {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.\n */\n space?: never\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 = function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n) {\n const {fontSize, gap = 0.5, keys, padding, radius, ref, ...restProps} = props\n const spacing = _getArrayProp(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 // Reset the active item when the menu unmounts, or is hidden inside an <Activity> boundary\n // (which unmounts effects while preserving state), so that reopening behaves like a fresh\n // mount: `shouldFocus` applies again and `selected` items re-register through `mount`.\n useEffect(() => {\n return () => setActiveIndex(-1)\n }, [setActiveIndex])\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 {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'?: never\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: never\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.\n */\n 'space'?: never\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 = function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n) {\n const {\n children,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n ref: forwardedRef,\n registerElement,\n shouldFocus = null,\n gap = 1,\n ...restProps\n } = props\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={gap}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n}\n","import {\n cloneElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: never\n button: React.JSX.Element\n id: string\n menu?: React.JSX.Element\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: never\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: never\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: never\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: never\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: never\n ref?: React.Ref<HTMLButtonElement | null>\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = function MenuButton(props: MenuButtonProps) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n popover,\n ref: forwardedRef,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n overflow: 'auto',\n portal: true,\n // oxlint-disable-next-line no-useless-fallback-in-spread\n ...(popover || {}),\n }),\n [popover],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\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.\n */\n space?: never\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 = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.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={gap} 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 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.\n */\n space?: never\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 = function MenuItem(\n props: MenuItemOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'selected' | 'tabIndex'\n >,\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 ref: forwardedRef,\n selected: selectedProp,\n gap = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.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={gap} 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 {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxOwnProps} from '../../primitives/box/box'\nimport {ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxOwnProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = function Skeleton(\n props: SkeletonProps & Omit<React.HTMLProps<HTMLDivElement>, 'height'>,\n) {\n const {animated = false, delay, radius, ref, ...restProps} = props\n // oxlint-disable-next-line no-unneeded-ternary\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={_getArrayProp(radius)}\n $visible={delay ? visible : true}\n ref={ref}\n />\n )\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_getArrayProp, _responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"text\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = function LabelSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"label\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = function HeadingSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"heading\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = function CodeSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"code\" />\n}\n","import {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 = function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\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, 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 = function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n) {\n const {children: childrenProp, ref, ...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 {Box, BoxOwnProps} from '../../primitives/box/box'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxOwnProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeColorStateToneKey} from '../../../theme/system/color/_system'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {Card, type CardProps} from '../../primitives/card/card'\nimport {Flex} from '../../primitives/flex/flex'\nimport type {ButtonTone} from '../../types/button'\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport const STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nexport const BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nexport const StyledToast = styled(Card)`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n\n &[data-has-duration] {\n padding-bottom: calc(${LOADING_BAR_HEIGHT}px / 2);\n }\n`\n\nexport const LoadingBar = styled.div`\n display: flex;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left: 0px;\n right: 0px;\n pointer-events: none;\n z-index: -1;\n overflow: hidden;\n overflow: clip;\n background: transparent;\n align-items: flex-end;\n will-change: opacity;\n`\n\nexport const LoadingBarMask = styled(Card)`\n position: absolute;\n top: 0;\n left: -${LOADING_BAR_HEIGHT}px;\n right: -${LOADING_BAR_HEIGHT}px;\n bottom: ${LOADING_BAR_HEIGHT}px;\n z-index: 1;\n`\n\ntype LoadingBarProgressProps = Omit<CardProps, 'tone'> & {\n tone: ThemeColorStateToneKey\n}\nexport const LoadingBarProgress = styled<React.ComponentType<LoadingBarProgressProps>>(Card)`\n display: block;\n height: 100%;\n width: 100%;\n transform-origin: 0% 50%;\n background-color: ${(props) => {\n const {color} = getTheme_v2(props.theme)\n\n return color.button.default[props.tone].enabled.bg\n }};\n`\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {motion, stagger, type Variant, type Variants} from 'motion/react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {\n BUTTON_TONE,\n LoadingBar,\n LoadingBarMask,\n LoadingBarProgress,\n STATUS_CARD_TONE,\n StyledToast,\n TextBox,\n} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n | 'as'\n | 'height'\n | 'ref'\n | 'title'\n | 'onAnimationStart'\n | 'onDragStart'\n | 'onDragEnd'\n | 'onDrag'\n >,\n): React.JSX.Element {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration\n ? {type: 'spring' as const, visualDuration, bounce: 0.25}\n : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n forwardedAs=\"li\"\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <TextBox flex={1} padding={3}>\n <Stack gap={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionLoadingBar variants={content} transition={transition}>\n <LoadingBarMask tone={cardTone} radius={radius} />\n <MotionLoadingBarProgress\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionLoadingBar>\n )}\n </MotionToast>\n )\n}\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n delayChildren: stagger(visualDuration / 3),\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionToast = motion.create(StyledToast)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionLoadingBar = motion.create(LoadingBar)\nconst MotionLoadingBarProgress = motion.create(LoadingBarProgress)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {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 {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 = function Grid(\n props: GridOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'rows'\n >,\n) {\n const {\n as,\n autoRows,\n autoCols,\n autoFlow,\n gridTemplateColumns,\n gap,\n gapX,\n gapY,\n gridTemplateRows,\n children,\n ref,\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)}\n $gap={_getArrayProp(gap)}\n $gapX={_getArrayProp(gapX)}\n $gapY={_getArrayProp(gapY)}\n $rows={_getArrayProp(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 {styled} from 'styled-components'\n\nimport {Grid} from '../../primitives/grid/grid'\nimport {useLayer} from '../../utils/layer/useLayer'\n\n/**\n * @public\n */\nexport interface ToastLayerProps {\n children: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n gap?: number | number[]\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <StyledLayer\n forwardedAs=\"ul\"\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n gridTemplateColumns={1}\n style={{zIndex}}\n >\n {children}\n </StyledLayer>\n )\n}\n\nconst StyledLayer = styled(Grid)`\n box-sizing: border-box;\n position: fixed;\n right: 0;\n bottom: 0;\n list-style: none;\n pointer-events: none;\n max-width: 420px;\n width: 100%;\n`\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'motion/react'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils/layer/layerProvider'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\n\nimport {Stack} from '../../primitives/stack/stack'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'align' | 'as' | 'height' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, gap = 1, onFocus, ref: forwardedRef, ...restProps} = props\n const ref = useRef<HTMLUListElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLUListElement | null, HTMLUListElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }),\n [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n display: block;\n padding-left: ${rem(space[2] * $level)};\n text-decoration: none;\n `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {Stack} from '../../primitives/stack/stack'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.gap}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"group\"\n gap={tree.gap}\n >\n {children}\n </Stack>\n )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons/ToggleArrowRight'\nimport {startTransition, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ElementType} from '../../types/component'\nimport {\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n treeItemRootColorStyle,\n treeItemRootStyle,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n /**\n * Additional props for the link element that is rendered when `href` is set — e.g. `next/link`'s\n * `prefetch` together with `linkAs={Link}`. Props controlled by `TreeItem` itself (`href`,\n * `role`, `tabIndex`, `aria-expanded` and the ref) take precedence.\n */\n linkProps?: React.HTMLProps<HTMLAnchorElement> & Record<string, unknown>\n padding?: number | number[]\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = styled.li(treeItemRootStyle, treeItemRootColorStyle)\n\n/**\n * Styles a plain element (rather than wrapping `Box`) so that `as={linkAs}` renders the custom\n * link component directly, the same way `<Button as={...}>` works. Wrapping `Box` with\n * `.attrs({forwardedAs: 'a'})` made styled-components pass `as=\"a\"` on to the custom component\n * (breaking e.g. `next/link`, which treats `as` as a URL override) and skip the `Box` styles.\n */\nconst TreeItemBox = styled.a<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n linkProps,\n muted,\n onClick,\n padding = 2,\n selected = false,\n gap = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, _setRootElement] = useState<HTMLLIElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setRootElement = useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])\n\n const treeitemRef = useRef<HTMLAnchorElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const [itemPath, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n {...linkProps}\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-as={typeof linkAs === 'string' ? linkAs : 'a'}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * @deprecated instead of `useArrayProp(width)` use `Array.isArray(width) ? width : [width]` instead\n * @beta\n */\nexport function useArrayProp(_val?: never, _defaultVal?: never): never {\n throw new Error(\n '`useArrayProp` was removed in @sanity/ui v4. Use `Array.isArray(value) ? value : [value]` instead.',\n )\n}\n","/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n _listener?: never,\n _elementsArg?: never,\n _boundaryElement?: never,\n): never {\n throw new Error(\n '`useClickOutside` was removed in @sanity/ui v4. Use `useClickOutsideEvent` instead.',\n )\n}\n","/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(_element?: never): never {\n throw new Error('`useElementRect` was removed in @sanity/ui v4. Use `useElementSize` instead.')\n}\n","/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef(_ref?: never): never {\n throw new Error(\n '`useForwardedRef` was removed in @sanity/ui v4. Use `useRef` and `useImperativeHandle` instead.',\n )\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {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 `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${\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 }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveLabelFont} from '../../styles/font/labelFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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 LabelProps<E extends ElementType = 'div'> = Props<LabelOwnProps, E>\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n $weight?: ThemeFontWeightKey\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst LabelComponent = function Label(\n props: LabelOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n ref,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n}\n\n/**\n * Typographic labels.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Label = LabelComponent as unknown as <E extends ElementType = 'div'>(\n props: LabelProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': '0',\n 'opacity': '0',\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: '0',\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: '1',\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: '1',\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nfunction avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nfunction avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nfunction avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {useCallback, useEffect, useId, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorAvatarColorKey} from '../../../theme/system/color/_system'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types/avatar'\nimport {ElementType, Props} from '../../types/component'\nimport {Label} from '../label/label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * @public\n */\nexport type AvatarProps<E extends ElementType = 'div'> = Props<AvatarOwnProps, E>\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\nconst AvatarComponent = function Avatar(\n props: AvatarOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n ref,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = _getArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n // oxlint-disable-next-line react-compiler\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </AvatarImage>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel\n forwardedAs=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n}\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Avatar = AvatarComponent as unknown as <E extends ElementType = 'div'>(\n props: AvatarProps<E>,\n) => React.JSX.Element\n","import {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {Label} from '../label/label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = function AvatarCounter(\n props: AvatarCounterProps & {ref?: React.Ref<HTMLDivElement>},\n) {\n const {count, ref, size: sizeProp = 1} = props\n const size = _getArrayProp(sizeProp)\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n}\n","import {Children, cloneElement, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport const AvatarStack = function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n ref,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = _getArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {BadgeTone} from '../../types/badge'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {Text} from '../text/text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeOwnProps extends BoxOwnProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: never\n tone?: BadgeTone\n}\n\n/**\n * @public\n */\nexport type BadgeProps<E extends ElementType = 'div'> = Props<BadgeOwnProps, E>\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\nconst BadgeComponent = function Badge(\n props: BadgeOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n) {\n const {\n children,\n fontSize = 1,\n padding = 1,\n radius = 'full',\n ref,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_getArrayProp(radius)}\n padding={_getArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n}\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Badge = BadgeComponent as unknown as <E extends ElementType = 'div'>(\n props: BadgeProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {RemoveIcon} from '@sanity/icons/Remove'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </StyledCheckbox>\n )\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {FontWeightStyleProps, ResponsiveFontSizeStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(\n props: FontWeightStyleProps & ResponsiveFontSizeStyleProps & ThemeProps,\n): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {css, ExecutionContext} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {lazy, Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveCodeFontStyle} from '../../styles/font/codeFontStyle'\nimport {FontWeightStyleProps, ResponsiveFontSizeStyleProps} from '../../styles/font/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeOwnProps {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\n/**\n * @public\n */\nexport type CodeProps<E extends ElementType = 'pre'> = Props<CodeOwnProps, E>\n\nconst StyledCode = styled.pre<FontWeightStyleProps & ResponsiveFontSizeStyleProps>(\n codeBaseStyle,\n responsiveCodeFontStyle,\n)\n\nconst CodeComponent = function Code(\n props: CodeOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLPreElement>, 'as' | 'size'>,\n) {\n const {children, language, ref, size = 2, weight, ...restProps} = props\n\n return (\n <StyledCode\n data-ui=\"Code\"\n {...restProps}\n $size={_getArrayProp(size)}\n // oxlint-disable-next-line no-unsafe-type-assertion -- `weight` is typed as `string` in the public API; unknown weights fall back to `regular` at runtime\n $weight={weight as ThemeFontWeightKey | undefined}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </StyledCode>\n )\n}\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Code = CodeComponent as unknown as <E extends ElementType = 'pre'>(\n props: CodeProps<E>,\n) => React.JSX.Element\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 `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${\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 }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveHeadingFont} from '../../styles/font/headingFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {ResponsiveFontStyleProps, ResponsiveTextAlignStyleProps} 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 {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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 HeadingProps<E extends ElementType = 'div'> = Props<HeadingOwnProps, E>\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst HeadingComponent = function Heading(\n props: HeadingOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'size'\n >,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n ref,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n}\n\n/**\n * Typographic headings.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Heading = HeadingComponent as unknown as <E extends ElementType = 'div'>(\n props: HeadingProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyle, radioBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n) {\n const {\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </StyledRadio>\n )\n}\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontSize} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {responsiveInputPaddingIconRightStyle} from '../../styles/input/responsiveInputPaddingStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {ThemeProps} from '../../styles/types'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap = 3,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${\n checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `\n }\n\n ${\n $indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `\n }\n `\n}\n","import {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </StyledSwitch>\n )\n}\n","import {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\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 {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n ref: forwardedRef,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n}\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, 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 = 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) {\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 ref,\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 {\n Activity,\n cloneElement,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\n// TODO: switch to `useEffectEvent` from `react` once\n// https://github.com/facebook/react/issues/34818 is fixed in the lowest React\n// version we support: on React 19.2 the native hook never sees values past\n// the first render when the calling component is wrapped in `forwardRef` or\n// `memo`, and consumers may wrap `Tooltip` in `memo`.\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 {AnimateActivity} from '../../utils/animateActivity'\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?: never\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 = function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\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 ref: forwardedRef,\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 tooltipNode = 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 ? (\n <AnimateActivity layoutMode=\"default\" mode={showTooltip ? 'visible' : 'hidden'}>\n {tooltipNode}\n </AnimateActivity>\n ) : (\n <Activity mode={showTooltip ? 'visible' : 'hidden'}>{tooltipNode}</Activity>\n )}\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} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","import {useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","/**\n * @internal\n * @deprecated ConditionalWrapper was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.\n */\nexport function ConditionalWrapper(_props?: never): never {\n throw new Error(\n '`ConditionalWrapper` was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.',\n )\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ref: forwardedRef, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n}\n","// oxlint-disable-next-line no-restricted-imports -- error boundaries require a class component; React has no function-component equivalent for `getDerivedStateFromError`/`componentDidCatch`\nimport {Component, PropsWithChildren} from 'react'\n\nimport {Code} from '../primitives/code/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {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","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst StyledSrOnly = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n) {\n const {as, children, ref} = props\n\n return (\n <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </StyledSrOnly>\n )\n}\n","import {useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_isScrollable} from '../../helpers/scroll'\nimport {StackOwnProps} from '../../primitives/stack/stack'\nimport {useTheme_v2} from '../../theme/useTheme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = function VirtualList(\n props: VirtualListProps &\n StackOwnProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange'>,\n): React.JSX.Element {\n const {\n as = 'div',\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n ref: forwardedRef,\n renderItem,\n ...restProps\n } = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useChildren({\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n })\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </StyledVirtualList>\n )\n}\n\nfunction useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n space,\n toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: number\n itemHeight: number\n space: number[]\n toIndex: number\n }) {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n}\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n"],"mappings":"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"}
|