@sanity/ui 3.5.1 → 3.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","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","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","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","deprecated_space","undefined","t1","t2","open","setOpen","expandElementRef","popoverElementRef","t3","Symbol","for","collapse","t4","expand","t5","current","t6","toArray","filter","rawItems","t7","items","useItems","t8","t9","item","itemIndex","map","len","length","beforeLength","Math","ceil","afterLength","floor","slice","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","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","cloneElement","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","ThemeColorSchemeKey","Popover","PopoverProps","Placement","Radius","MenuProps","MenuButtonProps","__unstable_disableRestoreFocusOnClose","boundaryElement","HTMLElement","button","React","JSX","Element","id","menu","onClose","onOpen","placement","popover","Omit","popoverScheme","popoverRadius","portal","preventOverflow","MenuButton","props","forwardedRef","$","_c","t0","deprecated_boundaryElement","buttonProp","menuProp","deprecated_placement","deprecated_popoverScheme","t1","deprecated_popoverRadius","deprecated_preventOverflow","disableRestoreFocusOnClose","undefined","deprecated_portal","open","setOpen","shouldFocus","setShouldFocus","buttonElement","setButtonElement","t2","Symbol","for","menuElements","setChildMenuElements","openRef","t3","t4","current","t5","t6","t7","t8","t9","_temp","handleButtonClick","t10","event","preventDefault","handleMouseDown","t11","event_0","key","handleButtonKeyDown","t12","event_1","target","Node","contains","el","handleMenuClickOutside","t13","focus","handleMenuEscape","t14","event_2","target_0","relatedTarget","el_0","handleBlur","t15","handleItemClick","t16","el_1","els","concat","els_0","filter","_el","registerElement","t17","menuProps","t18","selected","t19","t20","t21","t22","overflow","radius","scheme","popoverProps","t23","t24","v","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","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","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","deprecated_space","undefined","spacing","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","deprecated_space","spacing","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","useMemo","_getArrayProp","ArrayPropPrimitive","useArrayProp","val","defaultVal","$","_c","t0","useEffect","useRef","useState","EMPTY_ARRAY","ClickOutsideListener","event","MouseEvent","ClickOutsideElements","HTMLElement","_getElements","element","elementsArg","ret","el","Array","isArray","push","filter","Boolean","useClickOutside","listener","t0","boundaryElement","$","_c","undefined","setElement","t1","elements","setElements","elementsRef","t2","t3","prevElements","current","nextElements","length","includes","el_0","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useElementSize","useElementRect","element","elementSize","_contentRect","useImperativeHandle","useRef","useForwardedRef","ref","$","_c","innerRef","t0","Symbol","for","current","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","BadgeMode","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","t4","t5","_deprecated_mode","padding","t6","radius","t7","t8","t9","undefined","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","deprecated_space","spacing","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","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","children","condition","wrapper","React","ReactNode","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","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/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/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/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/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/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx"],"sourcesContent":["/**\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","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 {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 {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. `space` will be removed in v4.\n */\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n // oxlint-disable-next-line no-deprecated\n const {children, gap, maxLength, separator, space: deprecated_space = 2, ...restProps} = props\n const space = _getArrayProp(gap === undefined ? deprecated_space : 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 {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 {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 {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {Placement} from '../../types/placement'\nimport {Radius} from '../../types/radius'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.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?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n // oxlint-disable-next-line no-deprecated\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n // oxlint-disable-next-line no-deprecated\n placement: deprecated_placement,\n // oxlint-disable-next-line no-deprecated\n popoverScheme: deprecated_popoverScheme,\n // oxlint-disable-next-line no-deprecated\n portal: deprecated_portal = true,\n popover,\n // oxlint-disable-next-line no-deprecated\n popoverRadius: deprecated_popoverRadius,\n // oxlint-disable-next-line no-deprecated\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n // oxlint-disable-next-line no-useless-fallback-in-spread\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\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} 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 {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 columns={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. `space` will be removed in v4.\n */\n space?: number | number[]\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 // oxlint-disable-next-line no-deprecated\n const {children, gap, space: deprecated_space = 1, onFocus, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\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: spacing,\n space: spacing,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, spacing, 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={spacing}\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. `space` will be removed in v4.\n */\n space?: number | number[]\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,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 2,\n text,\n weight,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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={spacing}\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","import {useMemo} from 'react'\n\nimport {_getArrayProp} from '../styles/helpers'\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<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n return useMemo(() => _getArrayProp(val, defaultVal), [val, defaultVal])\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n // oxlint-disable-next-line no-deprecated\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.RefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\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?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = _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?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = _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 {BadgeMode, 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 // oxlint-disable-next-line no-deprecated\n mode?: BadgeMode\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 // oxlint-disable-next-line no-deprecated\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_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. `space` will be removed in v4.\n */\n space?: number | number[]\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n readOnly,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 3,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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(spacing)}\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 {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 this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n","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 {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":["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","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","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","deprecated_space","undefined","t1","t2","open","setOpen","expandElementRef","popoverElementRef","t3","Symbol","for","collapse","t4","expand","t5","current","t6","toArray","filter","rawItems","t7","items","useItems","t8","t9","item","itemIndex","map","len","length","beforeLength","Math","ceil","afterLength","floor","slice","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","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","cloneElement","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","ThemeColorSchemeKey","Popover","PopoverProps","Placement","Radius","MenuProps","MenuButtonProps","__unstable_disableRestoreFocusOnClose","boundaryElement","HTMLElement","button","React","JSX","Element","id","menu","onClose","onOpen","placement","popover","Omit","popoverScheme","popoverRadius","portal","preventOverflow","MenuButton","props","forwardedRef","$","_c","t0","deprecated_boundaryElement","buttonProp","menuProp","deprecated_placement","deprecated_popoverScheme","t1","deprecated_popoverRadius","deprecated_preventOverflow","disableRestoreFocusOnClose","undefined","deprecated_portal","open","setOpen","shouldFocus","setShouldFocus","buttonElement","setButtonElement","t2","Symbol","for","menuElements","setChildMenuElements","openRef","t3","t4","current","t5","t6","t7","t8","t9","_temp","handleButtonClick","t10","event","preventDefault","handleMouseDown","t11","event_0","key","handleButtonKeyDown","t12","event_1","target","Node","contains","el","handleMenuClickOutside","t13","focus","handleMenuEscape","t14","event_2","target_0","relatedTarget","el_0","handleBlur","t15","handleItemClick","t16","el_1","els","concat","els_0","filter","_el","registerElement","t17","menuProps","t18","selected","t19","t20","t21","t22","overflow","radius","scheme","popoverProps","t23","t24","v","css","keyframes","keyframe","animation","skeletonStyle","$animated","$visible","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","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","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","deprecated_space","undefined","spacing","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","deprecated_space","spacing","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","useMemo","_getArrayProp","ArrayPropPrimitive","useArrayProp","val","defaultVal","$","_c","t0","useEffect","useRef","useState","EMPTY_ARRAY","ClickOutsideListener","event","MouseEvent","ClickOutsideElements","HTMLElement","_getElements","element","elementsArg","ret","el","Array","isArray","push","filter","Boolean","useClickOutside","listener","t0","boundaryElement","$","_c","undefined","setElement","t1","elements","setElements","elementsRef","t2","t3","prevElements","current","nextElements","length","includes","el_0","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useElementSize","useElementRect","element","elementSize","_contentRect","useImperativeHandle","useRef","useForwardedRef","ref","$","_c","innerRef","t0","Symbol","for","current","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","BadgeMode","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","t4","t5","_deprecated_mode","padding","t6","radius","t7","t8","t9","undefined","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","deprecated_space","spacing","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","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","children","condition","wrapper","React","ReactNode","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","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","t15","_itemIndex","node","key","top","slice","map","ParentNode","_scrollEl"],"sources":["../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/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/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/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/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx"],"sourcesContent":["/**\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","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 {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 {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. `space` will be removed in v4.\n */\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n // oxlint-disable-next-line no-deprecated\n const {children, gap, maxLength, separator, space: deprecated_space = 2, ...restProps} = props\n const space = _getArrayProp(gap === undefined ? deprecated_space : 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 {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 {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 {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {Placement} from '../../types/placement'\nimport {Radius} from '../../types/radius'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.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?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n // oxlint-disable-next-line no-deprecated\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n // oxlint-disable-next-line no-deprecated\n placement: deprecated_placement,\n // oxlint-disable-next-line no-deprecated\n popoverScheme: deprecated_popoverScheme,\n // oxlint-disable-next-line no-deprecated\n portal: deprecated_portal = true,\n popover,\n // oxlint-disable-next-line no-deprecated\n popoverRadius: deprecated_popoverRadius,\n // oxlint-disable-next-line no-deprecated\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n // oxlint-disable-next-line no-useless-fallback-in-spread\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\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} 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 {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 columns={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. `space` will be removed in v4.\n */\n space?: number | number[]\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 // oxlint-disable-next-line no-deprecated\n const {children, gap, space: deprecated_space = 1, onFocus, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\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: spacing,\n space: spacing,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, spacing, 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={spacing}\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. `space` will be removed in v4.\n */\n space?: number | number[]\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,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 2,\n text,\n weight,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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={spacing}\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","import {useMemo} from 'react'\n\nimport {_getArrayProp} from '../styles/helpers'\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<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n return useMemo(() => _getArrayProp(val, defaultVal), [val, defaultVal])\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n // oxlint-disable-next-line no-deprecated\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.RefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\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?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = _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?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = _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 {BadgeMode, 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 // oxlint-disable-next-line no-deprecated\n mode?: BadgeMode\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 // oxlint-disable-next-line no-deprecated\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_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. `space` will be removed in v4.\n */\n space?: number | number[]\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n readOnly,\n // oxlint-disable-next-line no-deprecated\n space: deprecated_space = 3,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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(spacing)}\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 {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 this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n","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 {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 // styled-components 6.5 distributes PolymorphicCallProps over ElementType and hits TS2589;\n // narrow the call-site target while still passing the real value.\n // oxlint-disable-next-line no-unsafe-type-assertion\n <StyledVirtualList as={as as 'div'} 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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"}