@sanity/ui 4.0.4 → 4.0.5

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.
Files changed (58) hide show
  1. package/dist/{arrow-D0mvjJMb.js → arrow-BaqZdFUX.js} +5 -5
  2. package/dist/arrow-BaqZdFUX.js.map +1 -0
  3. package/dist/autocomplete.js +7 -7
  4. package/dist/autocomplete.js.map +1 -1
  5. package/dist/breadcrumbs.js +6 -6
  6. package/dist/breadcrumbs.js.map +1 -1
  7. package/dist/{button-QO2lWHVH.js → button-DpAiERt1.js} +6 -6
  8. package/dist/button-DpAiERt1.js.map +1 -0
  9. package/dist/code.js +1 -1
  10. package/dist/code.js.map +1 -1
  11. package/dist/codeFontStyle-aWvllgWi.js.map +1 -1
  12. package/dist/element-BYgCE_iK.js.map +1 -1
  13. package/dist/factory-BA3gEfyI.js.map +1 -1
  14. package/dist/{flex-C9NHtXFi.js → flex-C6SsHFy8.js} +3 -3
  15. package/dist/flex-C6SsHFy8.js.map +1 -0
  16. package/dist/getElementRef-5HZQ-Owu.js.map +1 -1
  17. package/dist/getScopedTheme-C-sZsyAz.js.map +1 -1
  18. package/dist/getTheme_v2-y09KqtEb.js.map +1 -1
  19. package/dist/{grid-Cr7qKmZQ.js → grid-3kBnMOwF.js} +3 -3
  20. package/dist/grid-3kBnMOwF.js.map +1 -0
  21. package/dist/helpers-JV5y3U_M.js.map +1 -1
  22. package/dist/{hotkeys-DyrSy500.js → hotkeys-BYRfM-HW.js} +10 -10
  23. package/dist/hotkeys-BYRfM-HW.js.map +1 -0
  24. package/dist/index.js +57 -57
  25. package/dist/index.js.map +1 -1
  26. package/dist/{layer-DcsNupeg.js → layer-DsScTlqC.js} +3 -3
  27. package/dist/layer-DsScTlqC.js.map +1 -0
  28. package/dist/menu.js +8 -8
  29. package/dist/menu.js.map +1 -1
  30. package/dist/{popover-5fEUllFf.js → popover-C2DFbwZu.js} +6 -6
  31. package/dist/popover-C2DFbwZu.js.map +1 -0
  32. package/dist/popover.js +1 -1
  33. package/dist/refractor-CC48DwHi.js.map +1 -1
  34. package/dist/responsiveFont-BwYElGq4.js.map +1 -1
  35. package/dist/{stack-B2zXPxzb.js → stack-wyPeapSx.js} +4 -4
  36. package/dist/stack-wyPeapSx.js.map +1 -0
  37. package/dist/{textInput-CgNWWr7H.js → textInput-DW447nYT.js} +14 -14
  38. package/dist/textInput-DW447nYT.js.map +1 -0
  39. package/dist/theme.js.map +1 -1
  40. package/dist/toast.js +11 -11
  41. package/dist/toast.js.map +1 -1
  42. package/dist/tooltip.js +5 -5
  43. package/dist/tooltip.js.map +1 -1
  44. package/dist/useClickOutsideEvent-DbLUuPQ6.js.map +1 -1
  45. package/dist/useElementSize-BJvbGHq8.js.map +1 -1
  46. package/dist/{useLayer-UpfaKlm7.js → useLayer-Dhme0dcp.js} +11 -11
  47. package/dist/useLayer-Dhme0dcp.js.map +1 -0
  48. package/package.json +3 -3
  49. package/dist/arrow-D0mvjJMb.js.map +0 -1
  50. package/dist/button-QO2lWHVH.js.map +0 -1
  51. package/dist/flex-C9NHtXFi.js.map +0 -1
  52. package/dist/grid-Cr7qKmZQ.js.map +0 -1
  53. package/dist/hotkeys-DyrSy500.js.map +0 -1
  54. package/dist/layer-DcsNupeg.js.map +0 -1
  55. package/dist/popover-5fEUllFf.js.map +0 -1
  56. package/dist/stack-B2zXPxzb.js.map +0 -1
  57. package/dist/textInput-CgNWWr7H.js.map +0 -1
  58. package/dist/useLayer-UpfaKlm7.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["buildTheme","HSL","_HSL","RGB","_RGB","ThemeColorButtonModeKey","_ThemeColorButtonModeKey","ThemeColorSchemeKey","_ThemeColorSchemeKey","ThemeColorSyntax","_ThemeColorSyntax","ThemeFont","_ThemeFont","ThemeFontKey","_ThemeFontKey","ThemeFonts","_ThemeFonts","ThemeFontSize","_ThemeFontSize","ThemeFontWeight","_ThemeFontWeight","ThemeFontWeightKey","_ThemeFontWeightKey","ThemeLayer","_ThemeLayer","ThemeBoxShadow","ThemeShadow","_ThemeShadow","ThemeStyles","BaseTheme","_BaseTheme","RootTheme","_RootTheme","Theme","_Theme","BoxShadow","Styles","createColorTheme","_createColorTheme","multiply","_multiply","screen","_screen","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","parseColor","_parseColor","rgba","_rgba","studioTheme","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","ResponsiveWidthStyleProps","BASE_STYLE","width","margin","containerBaseStyle","responsiveContainerWidthStyle","props","container","media","theme","$width","val","maxWidth","styled","_getArrayProp","ElementType","Props","Box","BoxOwnProps","ResponsiveWidthProps","containerBaseStyle","responsiveContainerWidthStyle","ResponsiveWidthStyleProps","ContainerOwnProps","ContainerProps","E","StyledContainer","ContainerComponent","props","$","_c","as","ref","restProps","t0","width","undefined","t1","t2","Container","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","useCallback","useEffect","useImperativeHandle","useRef","styled","ThemeColorSchemeKey","containsOrEqualsElement","isHTMLElement","focusFirstDescendant","focusLastDescendant","useClickOutsideEvent","useGlobalKeyDown","usePrefersReducedMotion","Box","Button","Card","Container","Flex","Text","ResponsivePaddingProps","ResponsiveWidthProps","_getArrayProp","responsivePaddingStyle","ResponsivePaddingStyleProps","useTheme_v2","DialogPosition","Radius","useBoundaryElement","Layer","LayerProps","useLayer","Portal","usePortal","animationDialogStyle","AnimationDialogStyleProps","dialogStyle","responsiveDialogPositionStyle","ResponsiveDialogPositionStyleProps","useDialog","DialogProps","__unstable_autoFocus","__unstable_hideCloseButton","cardRadius","cardShadow","contentRef","React","ForwardedRef","HTMLDivElement","footer","ReactNode","header","id","onActivate","onClickOutside","onClose","portal","position","scheme","zOffset","animate","DialogCardProps","children","radius","ref","Ref","shadow","isTargetWithinScope","boundaryElement","HTMLElement","portalElement","target","Node","StyledDialog","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","props","$","_c","autoFocus","hideCloseButton","forwardedContentRef","portalProp","radiusProp","forwardedRef","shadowProp","width","widthProp","elements","element","t0","t1","t2","layer","isTopLayer","labelId","showCloseButton","Boolean","showHeader","t3","Symbol","for","current","t4","t5","t6","t7","event","document","activeElement","key","preventDefault","stopPropagation","t8","event_0","target_0","t9","t10","t11","t12","t13","t14","t15","Dialog","dialog","_positionProp","_zOffsetProp","onFocus","restProps","padding","undefined","cardRadiusProp","paddingProp","_animate","positionProp","zOffsetProp","prefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","setTimeout","body","contains","cardElement_0","focus","handleRootClick","t16","t17","t18","useMemo","DialogPosition","DialogContext","DialogContextValue","DialogProviderProps","children","React","ReactNode","position","zOffset","DialogProvider","props","$","_c","t0","version","contextValue","t1","css","keyframes","keyframe","animation","skeletonStyle","$animated","$visible","useEffect","useState","styled","Box","BoxOwnProps","ResponsiveRadiusProps","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","skeletonStyle","StyledSkeleton","$animated","$visible","SkeletonProps","Omit","animated","delay","Skeleton","props","$","_c","radius","ref","restProps","t0","undefined","visible","setVisible","t1","t2","timeout","setTimeout","clearTimeout","t3","t4","t5","styled","ThemeFontKey","getTheme_v2","_getArrayProp","_responsive","ThemeProps","Skeleton","SkeletonProps","StyledSkeleton","$size","$style","props","font","media","theme","fontStyle","styles","sizeIndex","fontSize","sizes","capHeight","lineHeight","ascenderHeight","descenderHeight","height","TextSkeletonProps","size","LabelSkeletonProps","HeadingSkeletonProps","CodeSkeletonProps","TextSkeleton","$","_c","restProps","t0","undefined","t1","t2","LabelSkeleton","HeadingSkeleton","CodeSkeleton","useCallback","useEffect","useImperativeHandle","useRef","styled","Button","ButtonTone","TabProps","React","ElementType","ReactNode","CustomButton","Tab","props","$","_c","focused","forwardedRef","icon","id","label","onClick","onFocus","restProps","selected","t0","t1","fontSize","padding","ref","undefined","focusedRef","t2","Symbol","for","current","t3","handleBlur","t4","event","handleFocus","t5","t6","focus","t7","t8","t9","Children","cloneElement","isValidElement","useCallback","useState","styled","Inline","InlineOwnProps","TabListProps","Omit","children","Array","React","JSX","Element","CustomInline","TabList","props","$","_c","childrenProp","ref","restProps","focusedIndex","setFocusedIndex","t0","toArray","filter","t1","child","childIndex","focused","key","onFocus","map","tabs","numTabs","length","event","prevIndex","prevIndex_0","handleKeyDown","t2","Box","BoxOwnProps","TabPanelProps","TabPanel","props","$","_c","flex","restProps","t0","tabIndex","undefined","t1","children","TreeState","_findPrevItemElement","state","itemElements","HTMLElement","focusedElement","idx","indexOf","els","slice","len","length","i","itemKey","getAttribute","segments","split","pop","p","expanded","j","push","k","join","_findNextItemElement","_focusItemElement","el","focus","firstChild","createGlobalScopedContext","TreeContextValue","TreeContext","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Stack","_findNextItemElement","_findPrevItemElement","_focusItemElement","TreeContext","TreeContextValue","TreeState","TreeProps","gap","space","Tree","props","$","_c","children","forwardedRef","onFocus","restProps","t0","ref","undefined","focusedElement","setFocusedElement","focusedElementRef","t1","Symbol","for","path","t2","itemElements","setItemElements","t3","state","setState","stateRef","t4","current","t5","t6","t7","t8","t9","element","path_0","expanded","selected","s","s_0","newState","registerItem","t10","path_1","expanded_0","s_1","itemState","setExpanded","t11","t12","version","level","contextValue","t13","event","key","preventDefault","nextEl","prevEl","itemKey","getAttribute","itemState_0","s_2","itemState_1","itemPath","split","pop","parentKey","join","parentState","focus","focusedKey","s_3","itemState_2","handleKeyDown","t14","event_0","target","handleFocus","t15","_itemElements","Array","from","querySelectorAll","HTMLElement","t16","t17","t18","css","getTheme_v2","_cardColorStyle","rem","ThemeProps","treeItemRootStyle","ReturnType","treeItemRootColorStyle","props","$tone","color","theme","tone","selectable","enabled","pressed","hovered","selected","TreeItemBoxStyleProps","$level","treeItemBoxStyle","space","useContext","TreeContext","TreeContextValue","useTree","tree","Error","Stack","useTree","TreeGroupProps","expanded","TreeGroup","props","$","_c","children","restProps","t0","undefined","tree","t1","t2","gap","ToggleArrowRightIcon","startTransition","useCallback","useEffect","useId","useMemo","useRef","useState","styled","ThemeFontWeightKey","Box","Flex","Text","ElementType","treeItemBoxStyle","TreeItemBoxStyleProps","treeItemRootColorStyle","treeItemRootStyle","TreeContext","TreeGroup","useTree","TreeItemProps","expanded","fontSize","icon","React","linkAs","linkProps","HTMLProps","HTMLAnchorElement","Record","padding","gap","space","text","ReactNode","weight","StyledTreeItem","li","TreeItemBox","a","ToggleArrowText","TreeItem","props","$","_c","IconComponent","children","href","idProp","muted","onClick","restProps","t0","t1","t2","t3","t4","id","selected","expandedProp","undefined","rootElement","_setRootElement","t5","Symbol","for","node","setRootElement","treeitemRef","tree","path","registerItem","setExpanded","setFocusedElement","_id","t6","t7","itemPath","concat","join","t8","itemPath_0","itemKey","itemState","state","focused","focusedElement","tabIndex","t9","level","t10","contextValue","t11","event","target","HTMLElement","getAttribute","closest","stopPropagation","handleClick","t12","event_0","key","el","current","click","handleKeyDown","t13","t14","t15","t16","visibility","pointerEvents","t17","t18","transform","t19","t20","t21","content","t22","t23","t24","t25","t26","t27","_isScrollable","el","Node","Element","style","window","getComputedStyle","overflowX","includes","overflowY","ArrayPropPrimitive","useArrayProp","_val","_defaultVal","Error","ClickOutsideListener","event","MouseEvent","ClickOutsideElements","HTMLElement","useClickOutside","_listener","_elementsArg","_boundaryElement","Error","useElementRect","_element","Error","useForwardedRef","_ref","Error","useMatchMedia","usePrefersDark","t0","getServerSnapshot","undefined","_temp","CSSObject","ThemeProps","responsiveFont","ResponsiveFontStyleProps","responsiveLabelFont","props","css","getTheme_v2","ThemeProps","labelBaseStyle","props","$accent","$muted","ReturnType","font","theme","code","family","styled","ThemeFontWeightKey","responsiveLabelFont","responsiveTextAlignStyle","_getArrayProp","ElementType","Props","TextAlign","SpanWithTextOverflow","labelBaseStyle","LabelOwnProps","accent","align","muted","size","textOverflow","weight","LabelProps","E","StyledLabel","div","$accent","$align","$muted","$size","$weight","LabelComponent","props","$","_c","childrenProp","ref","restProps","t0","t1","children","undefined","t2","t3","t4","Label","React","JSX","Element","CSSObject","getTheme_v2","focusRingStyle","_responsive","rem","ThemeProps","AvatarRootStyleProps","ResponsiveAvatarSizeStyleProps","avatarStyle","root","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","display","transform","opacity","props","$color","avatar","theme","boxShadow","focusRing","responsiveAvatarSizeStyle","media","$size","size","avatarSize","sizes","width","height","borderRadius","position","strokeWidth","strokeDasharray","strokeLinecap","useCallback","useEffect","useId","useState","ReactIs","styled","ThemeColorAvatarColorKey","_getArrayProp","useTheme_v2","AvatarPosition","AvatarSize","AvatarStatus","ElementType","Props","Label","avatarStyle","responsiveAvatarSizeStyle","AvatarOwnProps","__unstable_hideInnerStroke","animateArrowFrom","arrowPosition","color","initials","onImageLoadError","event","Error","size","src","status","title","AvatarProps","E","StyledAvatar","div","$color","$size","root","Arrow","arrow","BgStroke","ellipse","bgStroke","Stroke","stroke","Initials","InitialsLabel","AvatarImage","svg","image","AvatarComponent","props","$","_c","arrowPositionProp","asProp","ref","restProps","t0","t1","t2","as","undefined","sizeProp","avatar","isValidElementType","avatarSize","sizes","_sizeRem","_radius","elementId","setArrowPosition","imageFailed","setImageFailed","imageId","t3","t4","raf","requestAnimationFrame","cancelAnimationFrame","t5","t6","t7","handleImageError","T0","t8","t9","t10","t11","t12","map","_temp","t13","s","Avatar","React","JSX","Element","css","styled","getTheme_v2","EMPTY_RECORD","_getArrayProp","_responsive","rem","ThemeProps","AvatarSize","Label","_responsiveAvatarCounterSizeStyle","props","$size","avatar","media","theme","size","avatarSize","sizes","borderRadius","minWidth","height","_avatarCounterBaseStyle","space","StyledAvatarCounter","div","AvatarCounterProps","count","tone","AvatarCounter","$","_c","ref","t0","sizeProp","undefined","T0","T1","t1","t2","t3","t4","t5","map","_temp","t6","t7","s","Children","cloneElement","isValidElement","css","styled","getTheme_v2","EMPTY_RECORD","_getArrayProp","_responsive","rem","ThemeProps","AvatarSize","AvatarCounter","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","props","$size","avatar","media","theme","size","avatarSize","sizes","marginLeft","distance","StyledAvatarStack","div","AvatarStackProps","children","React","ReactNode","maxLength","tone","AvatarStack","$","_c","childrenProp","ref","restProps","t0","t1","maxLengthProp","undefined","sizeProp","T0","t2","t3","t4","t5","t6","t7","t8","toArray","filter","Math","max","t9","len","length","visibleCount","extraCount","visibleChildren","slice","t10","child","childIndex","String","map","CSSObject","BadgeStyleProps","badgeStyle","props","$tone","display","verticalAlign","styled","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","BadgeTone","ElementType","Props","Box","BoxOwnProps","Text","ResponsiveRadiusProps","badgeStyle","BadgeStyleProps","BadgeOwnProps","fontSize","mode","tone","BadgeProps","E","StyledBadge","BadgeComponent","Badge","props","$","_c","children","ref","restProps","t0","t1","t2","t3","padding","radius","undefined","t4","t5","t6","t7","React","JSX","Element","css","getTheme_v2","focusRingBorderStyle","focusRingStyle","rem","ThemeProps","checkboxBaseStyles","ReturnType","inputElementStyles","props","color","input","radius","theme","focusRing","checkbox","size","default","enabled","border","width","bg","fg","offset","invalid","muted","disabled","readOnly","CheckmarkIcon","RemoveIcon","useEffect","useImperativeHandle","useRef","styled","useCustomValidity","checkboxBaseStyles","inputElementStyles","CheckboxProps","indeterminate","customValidity","StyledCheckbox","div","Input","input","Checkbox","props","$","_c","checked","className","disabled","forwardedRef","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","t2","t3","undefined","t4","t5","t6","t7","t8","CSSObject","ThemeProps","responsiveFont","ResponsiveFontStyleProps","responsiveHeadingFont","props","css","getTheme_v2","ThemeProps","HeadingStyleProps","headingBaseStyle","props","ReturnType","$accent","$muted","font","theme","code","family","heading","weights","bold","styled","ThemeFontWeightKey","responsiveHeadingFont","responsiveTextAlignStyle","ResponsiveFontStyleProps","ResponsiveTextAlignStyleProps","_getArrayProp","ElementType","Props","TextAlign","SpanWithTextOverflow","headingBaseStyle","HeadingStyleProps","HeadingOwnProps","accent","align","muted","size","textOverflow","weight","HeadingProps","E","StyledHeading","div","HeadingComponent","props","$","_c","childrenProp","ref","restProps","t0","t1","t2","children","undefined","t3","t4","t5","t6","Heading","React","JSX","Element","css","getTheme_v2","focusRingBorderStyle","focusRingStyle","rem","ThemeProps","radioBaseStyle","ReturnType","inputElementStyle","props","color","input","theme","dist","radio","size","markSize","default","enabled","bg","border","width","fg","focusRing","invalid","muted","readOnly","disabled","useImperativeHandle","useRef","styled","useCustomValidity","inputElementStyle","radioBaseStyle","RadioProps","customValidity","StyledRadio","div","Input","input","Radio","props","$","_c","className","disabled","forwardedRef","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","undefined","t2","t3","t4","t5","t6","css","CSSObject","ThemeFontSize","getTheme_v2","focusRingBorderStyle","focusRingStyle","_responsive","rem","responsiveInputPaddingIconRightStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","ThemeProps","rootStyle","ReturnType","inputBaseStyle","props","font","theme","text","family","inputColorStyle","color","input","default","enabled","bg","fg","border","width","hovered","focusRing","select","readOnly","disabled","textSize","size","fontSize","lineHeight","inputTextSizeStyle","$fontSize","media","sizeIndex","sizes","inputStyle","Array","$padding","$space","iconBoxStyle","selectStyle","root","iconBox","ChevronDownIcon","useImperativeHandle","useRef","styled","useCustomValidity","_getArrayProp","Radius","Box","Text","selectStyle","SelectProps","fontSize","gap","padding","radius","space","customValidity","StyledSelect","div","root","Input","select","$fontSize","$padding","$radius","$space","input","IconBox","iconBox","Select","props","$","_c","children","disabled","forwardedRef","readOnly","restProps","t0","t1","t2","t3","ref","undefined","t4","Symbol","for","current","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","css","getTheme_v2","focusRingStyle","rem","ThemeProps","switchBaseStyles","ReturnType","switchInputStyles","switchRepresentationStyles","props","color","input","theme","default","enabled","border","bg","switch","width","height","focusRing","fg","hovered","disabled","readOnly","switchTrackStyles","switchThumbStyles","$checked","$indeterminate","trackWidth","trackHeight","trackPadding","padding","size","checkedOffset","indeterminateOffset","checked","transitionDurationMs","transitionTimingFunction","useEffect","useImperativeHandle","useRef","styled","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switchThumbStyles","switchTrackStyles","SwitchProps","indeterminate","StyledSwitch","span","Input","input","Representation","Track","Thumb","$checked","$indeterminate","Switch","props","$","_c","checked","className","disabled","forwardedRef","readOnly","restProps","style","ref","t0","Symbol","for","current","t1","t2","t3","undefined","t4","t5","t6","t7","t8","t9","useImperativeHandle","useRef","styled","ThemeFontWeightKey","useCustomValidity","_getArrayProp","responsiveInputPaddingStyle","TextInputResponsivePaddingStyleProps","textInputBaseStyle","textInputFontSizeStyle","TextInputInputStyleProps","textInputRepresentationStyle","TextInputRepresentationStyleProps","textInputRootStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useRootTheme","ResponsiveRadiusProps","TextAreaProps","__unstable_disableFocusRing","border","customValidity","fontSize","padding","weight","StyledTextArea","span","InputRoot","Input","textarea","Presentation","div","TextArea","props","$","_c","forwardedRef","restProps","t0","t1","t2","t3","t4","disabled","radius","ref","undefined","rootTheme","t5","Symbol","for","current","t6","scheme","t7","tone","t8","t9","t10","t11","t12","t13","t14","t15","t16","useMemo","BoundaryElementContext","BoundaryElementContextValue","BoundaryElementProviderProps","children","React","ReactNode","element","HTMLElement","BoundaryElementProvider","props","$","_c","t0","version","value","t1","ConditionalWrapper","_props","Error","useImperativeHandle","useMemo","useState","useElementSize","useTheme_v2","findMaxBreakpoints","findMinBreakpoints","MediaQueryProps","as","React","ElementType","JSX","IntrinsicElements","media","ElementQuery","props","$","_c","theme","_media","children","forwardedRef","restProps","ref","element","setElement","elementSize","width","border","window","innerWidth","t0","eq","length","join","undefined","max","t1","eq_0","min","t2","t3","t4","Component","PropsWithChildren","ErrorBoundaryProps","onCatch","params","error","Error","info","React","ErrorInfo","ErrorBoundaryState","ErrorBoundary","state","getDerivedStateFromError","componentDidCatch","props","render","ReactNode","message","children","useMemo","useSyncExternalStore","PortalContext","PortalContextValue","PortalProviderProps","boundaryElement","HTMLElement","children","React","ReactNode","element","__unstable_elements","Record","PortalProvider","props","$","_c","elements","fallbackElement","emptySubscribe","_temp","_temp2","t0","t1","t2","version","value","t3","document","body","srOnly","SrOnlyProps","as","React","ElementType","JSX","IntrinsicElements","children","ReactNode","SrOnly","props","$","_c","t0","ref","undefined","Component","t1","useEffect","useImperativeHandle","useRef","useState","styled","_isScrollable","StackOwnProps","useTheme_v2","VirtualListChangeOpts","fromIndex","gap","itemHeight","scrollHeight","scrollTop","toIndex","VirtualListProps","as","React","ElementType","JSX","IntrinsicElements","getItemKey","item","Item","itemIndex","items","onChange","opts","renderItem","ReactNode","StyledVirtualList","div","ItemWrapper","VirtualList","props","$","_c","forwardedRef","restProps","t0","t1","t2","ref","undefined","t3","space","wrapperRef","setScrollTop","setScrollHeight","setItemHeight","t4","Symbol","for","current","t5","firstElement","firstChild","HTMLElement","offsetHeight","t6","t7","t8","scrollEl","findScrollable","parentNode","handleScroll","addEventListener","passive","ro","ResizeObserver","entries","contentRect","height","observe","removeEventListener","unobserve","disconnect","handleScroll_0","window","scrollY","handleResize","innerHeight","len","length","Math","max","floor","ceil","t10","t9","t11","children","useChildren","t12","t13","t14","t15","_itemIndex","node","key","top","slice","map","ParentNode","_scrollEl"],"sources":["../src/core/_compat.ts","../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/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx","../src/core/helpers/scroll.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/usePrefersDark.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/styles/font/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/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.css.ts","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {buildTheme} from '../theme/build/buildTheme'\nimport {type HSL as _HSL, type RGB as _RGB} from '../theme/build/lib/color-fns/types'\nimport {\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n} from '../theme/system/color/_system'\nimport {type ThemeColorSyntax as _ThemeColorSyntax} from '../theme/system/color/syntax'\nimport {\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n} from '../theme/system/font'\nimport {type ThemeLayer as _ThemeLayer} from '../theme/system/layer'\nimport {type ThemeBoxShadow, type ThemeShadow as _ThemeShadow} from '../theme/system/shadow'\nimport {type ThemeStyles} from '../theme/system/styles'\nimport {\n type BaseTheme as _BaseTheme,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n} from '../theme/system/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nimport {createColorTheme as _createColorTheme} from '../theme/build/_deprecated/color/factory'\nimport {multiply as _multiply} from '../theme/build/lib/color-fns/blend/multiply'\nimport {screen as _screen} from '../theme/build/lib/color-fns/blend/screen'\nimport {\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n} from '../theme/build/lib/color-fns/convert'\nimport {parseColor as _parseColor} from '../theme/build/lib/color-fns/parse'\nimport {rgba as _rgba} from '../theme/build/lib/color-fns/rgba'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\n// oxlint-disable-next-line no-deprecated\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerOwnProps extends BoxOwnProps, ResponsiveWidthProps {}\n\n/**\n * @public\n */\nexport type ContainerProps<E extends ElementType = 'div'> = Props<ContainerOwnProps, E>\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\nfunction ContainerComponent(\n props: ContainerOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'width'\n >,\n) {\n const {as, ref, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n}\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Container = ContainerComponent as unknown as <E extends ElementType = 'div'>(\n props: ContainerProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers/element'\nimport {focusFirstDescendant, focusLastDescendant} from '../../helpers/focus'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Container} from '../../primitives/container/container'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsivePaddingStyle} from '../../styles/padding/paddingStyle'\nimport {ResponsivePaddingStyleProps} from '../../styles/padding/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {DialogPosition} from '../../types/dialog'\nimport {Radius} from '../../types/radius'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {Layer, LayerProps} from '../../utils/layer/layer'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n ref?: React.Ref<HTMLDivElement>\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nfunction DialogCard(props: DialogCardProps) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n ref: forwardedRef,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const width = _getArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n}\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n ref,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = _getArrayProp(cardRadiusProp)\n const padding = _getArrayProp(paddingProp)\n const position = _getArrayProp(positionProp)\n const width = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n}\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types/dialog'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxOwnProps} from '../../primitives/box/box'\nimport {ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxOwnProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton(props: SkeletonProps & Omit<React.HTMLProps<HTMLDivElement>, 'height'>) {\n const {animated = false, delay, radius, ref, ...restProps} = props\n // oxlint-disable-next-line no-unneeded-ternary\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={_getArrayProp(radius)}\n $visible={delay ? visible : true}\n ref={ref}\n />\n )\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_getArrayProp, _responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"text\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"label\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"heading\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"code\" />\n}\n","import {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../primitives/button/button'\nimport {ButtonTone} from '../../types/button'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n // oxlint-disable-next-line no-redundant-type-constituents\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n}\n","import {Children, cloneElement, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineOwnProps} from '../../primitives/inline/inline'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineOwnProps, 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n) {\n const {children: childrenProp, ref, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n}\n","import {Box, BoxOwnProps} from '../../primitives/box/box'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxOwnProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\n\nimport {Stack} from '../../primitives/stack/stack'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'align' | 'as' | 'height' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, gap = 1, onFocus, ref: forwardedRef, ...restProps} = props\n const ref = useRef<HTMLUListElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLUListElement | null, HTMLUListElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }),\n [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n display: block;\n padding-left: ${rem(space[2] * $level)};\n text-decoration: none;\n `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {Stack} from '../../primitives/stack/stack'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.gap}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"group\"\n gap={tree.gap}\n >\n {children}\n </Stack>\n )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons/ToggleArrowRight'\nimport {startTransition, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ElementType} from '../../types/component'\nimport {\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n treeItemRootColorStyle,\n treeItemRootStyle,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n /**\n * Additional props for the link element that is rendered when `href` is set — e.g. `next/link`'s\n * `prefetch` together with `linkAs={Link}`. Props controlled by `TreeItem` itself (`href`,\n * `role`, `tabIndex`, `aria-expanded` and the ref) take precedence.\n */\n linkProps?: React.HTMLProps<HTMLAnchorElement> & Record<string, unknown>\n padding?: number | number[]\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = styled.li(treeItemRootStyle, treeItemRootColorStyle)\n\n/**\n * Styles a plain element (rather than wrapping `Box`) so that `as={linkAs}` renders the custom\n * link component directly, the same way `<Button as={...}>` works. Wrapping `Box` with\n * `.attrs({forwardedAs: 'a'})` made styled-components pass `as=\"a\"` on to the custom component\n * (breaking e.g. `next/link`, which treats `as` as a URL override) and skip the `Box` styles.\n */\nconst TreeItemBox = styled.a<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n linkProps,\n muted,\n onClick,\n padding = 2,\n selected = false,\n gap = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, _setRootElement] = useState<HTMLLIElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setRootElement = useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])\n\n const treeitemRef = useRef<HTMLAnchorElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const [itemPath, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n {...linkProps}\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-as={typeof linkAs === 'string' ? linkAs : 'a'}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * @deprecated instead of `useArrayProp(width)` use `Array.isArray(width) ? width : [width]` instead\n * @beta\n */\nexport function useArrayProp(_val?: never, _defaultVal?: never): never {\n throw new Error(\n '`useArrayProp` was removed in @sanity/ui v4. Use `Array.isArray(value) ? value : [value]` instead.',\n )\n}\n","/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n _listener?: never,\n _elementsArg?: never,\n _boundaryElement?: never,\n): never {\n throw new Error(\n '`useClickOutside` was removed in @sanity/ui v4. Use `useClickOutsideEvent` instead.',\n )\n}\n","/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(_element?: never): never {\n throw new Error('`useElementRect` was removed in @sanity/ui v4. Use `useElementSize` instead.')\n}\n","/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef(_ref?: never): never {\n throw new Error(\n '`useForwardedRef` was removed in @sanity/ui v4. Use `useRef` and `useImperativeHandle` instead.',\n )\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${\n $accent &&\n css`\n color: var(--card-accent-fg-color);\n `\n }\n\n ${\n $muted &&\n css`\n color: var(--card-muted-fg-color);\n `\n }\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n /* ...and aren't squeezed by resets that set max-width: 100% */\n max-width: unset;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveLabelFont} from '../../styles/font/labelFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\n/**\n * @public\n */\nexport type LabelProps<E extends ElementType = 'div'> = Props<LabelOwnProps, E>\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n $weight?: ThemeFontWeightKey\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nfunction LabelComponent(\n props: LabelOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n ref,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n}\n\n/**\n * Typographic labels.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Label = LabelComponent as unknown as <E extends ElementType = 'div'>(\n props: LabelProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': '0',\n 'opacity': '0',\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: '0',\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: '1',\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: '1',\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nfunction avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nfunction avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nfunction avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {useCallback, useEffect, useId, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorAvatarColorKey} from '../../../theme/system/color/_system'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types/avatar'\nimport {ElementType, Props} from '../../types/component'\nimport {Label} from '../label/label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * @public\n */\nexport type AvatarProps<E extends ElementType = 'div'> = Props<AvatarOwnProps, E>\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\nfunction AvatarComponent(\n props: AvatarOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n ref,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = _getArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n // oxlint-disable-next-line react-compiler\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </AvatarImage>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel\n forwardedAs=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n}\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Avatar = AvatarComponent as unknown as <E extends ElementType = 'div'>(\n props: AvatarProps<E>,\n) => React.JSX.Element\n","import {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {Label} from '../label/label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport function AvatarCounter(props: AvatarCounterProps & {ref?: React.Ref<HTMLDivElement>}) {\n const {count, ref, size: sizeProp = 1} = props\n const size = _getArrayProp(sizeProp)\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n}\n","import {Children, cloneElement, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport function AvatarStack(props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n ref,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = _getArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {BadgeTone} from '../../types/badge'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {Text} from '../text/text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeOwnProps extends BoxOwnProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: never\n tone?: BadgeTone\n}\n\n/**\n * @public\n */\nexport type BadgeProps<E extends ElementType = 'div'> = Props<BadgeOwnProps, E>\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\nconst BadgeComponent = function Badge(\n props: BadgeOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n) {\n const {\n children,\n fontSize = 1,\n padding = 1,\n radius = 'full',\n ref,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_getArrayProp(radius)}\n padding={_getArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n}\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Badge = BadgeComponent as unknown as <E extends ElementType = 'div'>(\n props: BadgeProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {RemoveIcon} from '@sanity/icons/Remove'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </StyledCheckbox>\n )\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {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 /* ...and aren't squeezed by resets that set max-width: 100% */\n max-width: unset;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveHeadingFont} from '../../styles/font/headingFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {ResponsiveFontStyleProps, ResponsiveTextAlignStyleProps} from '../../styles/font/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\n/**\n * @public\n */\nexport type HeadingProps<E extends ElementType = 'div'> = Props<HeadingOwnProps, E>\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nfunction HeadingComponent(\n props: HeadingOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'size'\n >,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n ref,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n}\n\n/**\n * Typographic headings.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Heading = HeadingComponent as unknown as <E extends ElementType = 'div'>(\n props: HeadingProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyle, radioBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport function Radio(props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps) {\n const {\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </StyledRadio>\n )\n}\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontSize} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {responsiveInputPaddingIconRightStyle} from '../../styles/input/responsiveInputPaddingStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {ThemeProps} from '../../styles/types'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport function Select(props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap = 3,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${\n checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `\n }\n\n ${\n $indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `\n }\n `\n}\n","import {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </StyledSwitch>\n )\n}\n","import {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {\n responsiveInputPaddingStyle,\n TextInputResponsivePaddingStyleProps,\n} from '../../styles/input/responsiveInputPaddingStyle'\nimport {\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n} from '../../styles/input/textInputStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport function TextArea(props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n ref: forwardedRef,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n}\n","import {useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","/**\n * @internal\n * @deprecated ConditionalWrapper was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.\n */\nexport function ConditionalWrapper(_props?: never): never {\n throw new Error(\n '`ConditionalWrapper` was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.',\n )\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ref: forwardedRef, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n}\n","import {Component, PropsWithChildren} from 'react'\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 // A plain element rather than the `Code` primitive: `Code` lives on the\n // `@sanity/ui/code` entry point (it lazy-loads `react-refractor`), and\n // the root entry point must not reference that module graph.\n return (\n <pre data-ui=\"ErrorBoundary\">\n <code>{message}</code>\n </pre>\n )\n }\n\n return this.props.children\n }\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n // oxlint-disable-next-line no-deprecated\n const {boundaryElement, children, element, __unstable_elements: elements} = props\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nconst emptySubscribe = () => () => {}\n","import {style} from '@vanilla-extract/css'\n\nexport const srOnly = style({\n display: 'block',\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: ['hidden', 'clip'],\n})\n","import {srOnly} from './srOnly.css'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\n/**\n * @public\n */\nexport function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n) {\n const {as = 'div', children, ref} = props\n // Rendering the polymorphic `as` needs one concrete element type for JSX to\n // type-check the div-flavored props (the same widening styled-components'\n // `as` prop performed here before).\n // oxlint-disable-next-line no-unsafe-type-assertion\n const Component = as as 'div'\n\n return (\n <Component aria-hidden className={srOnly} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Component>\n )\n}\n","import {useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_isScrollable} from '../../helpers/scroll'\nimport {StackOwnProps} from '../../primitives/stack/stack'\nimport {useTheme_v2} from '../../theme/useTheme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport function VirtualList(\n props: VirtualListProps &\n StackOwnProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange'>,\n): React.JSX.Element {\n const {\n as = 'div',\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n ref: forwardedRef,\n renderItem,\n ...restProps\n } = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useChildren({\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n })\n\n return (\n // 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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"}
1
+ {"version":3,"file":"index.js","names":["width = 2","_getArrayProp(width)","<StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />","_getArrayProp(radiusProp)","_getArrayProp(shadowProp)","_getArrayProp(widthProp)","() => ref.current","() => contentRef.current","() => {\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]","(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 }","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 )","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 })","target","event","() => [ref.current]","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 )","<DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>","footer && <DialogFooter>{footer}</DialogFooter>","<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>","<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>","<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>","autoFocus = true","hideCloseButton = false","cardRadiusProp = 4","cardShadow = 3","paddingProp = 3","widthProp = 0","_animate = false","_getArrayProp(cardRadiusProp)","_getArrayProp(paddingProp)","_getArrayProp(positionProp)","_getArrayProp(zOffsetProp)","(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 }","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 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 }","cardElement","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])","<div ref={preDivRef} tabIndex={0} />","<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>","<div ref={postDivRef} tabIndex={0} />","<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>","<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 version: 0.0,\n position,\n zOffset,\n }","useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )","<DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>","DialogContext.Provider","animated = false","() => {\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]","_getArrayProp(radius)","<StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={_getArrayProp(radius)}\n $visible={delay ? visible : true}\n ref={ref}\n />","delay ? visible : true","size = 2","_getArrayProp(size)","<StyledSkeleton {...restProps} $size={$size} $style=\"text\" />","<StyledSkeleton {...restProps} $size={$size} $style=\"label\" />","<StyledSkeleton {...restProps} $size={$size} $style=\"heading\" />","<StyledSkeleton {...restProps} $size={$size} $style=\"code\" />","fontSize = 1","padding = 2","() => ref.current","() => {\n focusedRef.current = false\n }","useCallback(() => {\n focusedRef.current = false\n }, [])","(event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n }","useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )","() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }","[focused]","<CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />","selected ? 'true' : 'false'","selected ? 0 : -1","children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )","(child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n })","(event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n }","prevIndex","useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )","<CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>","<Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>","children","props.tabIndex === undefined ? 0 : props.tabIndex","gap = 1","[]","useMemo(() => [], [])","{}","() => ref.current","() => {\n focusedElementRef.current = focusedElement\n }","[focusedElement]","() => {\n stateRef.current = state\n }","[state]","(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 }","path","s","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 )","(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 }","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 version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }","focusedElement || itemElements[0] || null","useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }),\n [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],\n )","(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 }","itemState","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 )","(event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n }","event","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 if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n // oxlint-disable-next-line react/exhaustive-effect-dependencies\n }","[children]","<Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>","<TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>\n </TreeContext.Provider>","TreeContext.Provider","expanded = false","<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>","!expanded","gap","expandedProp = false","fontSize = 1","padding = 2","selected = false","gap = 2","(node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }","useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])","itemPath","itemPath.join('/')","[itemPath, itemPath.join('/')]","useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])","{...tree, level: tree.level + 1, path: itemPath}","tree.level + 1","useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\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 }","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 )","(event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n }","event","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 if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }","[expanded, itemKey, registerItem, rootElement, selected]","{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }","IconComponent || children ? 'visible' : 'hidden'","IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )","!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )","<Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>","<Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>","<Flex padding={padding}>\n <Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>","<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>","typeof linkAs === 'string' ? linkAs : 'a'","level","children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>","<TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>","TreeContext.Provider","<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>","selected ? '' : undefined","<TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>","children && <TreeGroup expanded={expanded}>{children}</TreeGroup>","<TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>","<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>","() => false","getServerSnapshot = () => false","muted = false","size = 2","<SpanWithTextOverflow>{children}</SpanWithTextOverflow>","<span>{children}</span>","_getArrayProp(align)","_getArrayProp(size)","<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>","color = 'gray'","status = 'online'","sizeProp = 1","() => {\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 // oxlint-disable-next-line react/set-state-in-effect\n if (src) setImageFailed(false)\n }","[src]","() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }","useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])","<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>","!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 )","(s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\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>","StyledAvatar","(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 )","typeof as === 'string' ? as : undefined","\"Avatar\"","sizeProp = 1","Label","StyledAvatarCounter","\"span\"","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 })","size","\"AvatarCounter\"","ref","(s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\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>","<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>","maxLengthProp = 4","sizeProp = 1","StyledAvatarStack","\"AvatarStack\"","restProps","ref","size","len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )","len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )","visibleChildren.map((child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))","_getArrayProp(sizeProp)","(child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\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>","fontSize = 1","padding = 1","radius = 'full'","tone = 'default'","_getArrayProp(radius)","_getArrayProp(padding)","<Text size={fontSize}>{children}</Text>","<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>","() => ref.current","() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }","[indeterminate]","<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 />","!disabled && readOnly ? '' : undefined","customValidity ? '' : undefined","disabled || readOnly","<span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>","<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>","accent = false","muted = false","size = 2","<SpanWithTextOverflow>{children}</SpanWithTextOverflow>","_getArrayProp(align)","_getArrayProp(size)","<span>{children}</span>","<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>","() => ref.current","<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 />","!disabled && readOnly ? '' : undefined","customValidity ? '' : undefined","disabled || readOnly","<span />","<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>","fontSize = 2","gap = 3","padding = 3","radius = 2","() => ref.current","_getArrayProp(fontSize)","_getArrayProp(padding)","_getArrayProp(radius)","_getArrayProp(gap)","<Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>","disabled || readOnly","!disabled && readOnly ? '' : undefined","<ChevronDownIcon />","<Text size={fontSize}>\n <ChevronDownIcon />\n </Text>","<IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>","<StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>","() => ref.current","() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }","[indeterminate]","<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 />","!disabled && readOnly ? '' : undefined","indeterminate !== true && checked","disabled || readOnly","<Track />","<Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>","<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>","border = true","disabled = false","fontSize = 2","padding = 3","radius = 2","() => ref.current","_getArrayProp(fontSize)","_getArrayProp(padding)","_getArrayProp(0)","<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 />","scheme","tone","rootTheme.scheme","rootTheme.tone","_getArrayProp(radius)","<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 />","border ? '' : undefined","<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>","{version: 0.0, element}","useMemo(() => ({version: 0.0, element}), [element])","<BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>","BoundaryElementContext.Provider","eq.length ? eq.join(' ') : undefined","useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])","eq","useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])","() => element","[\n element,\n ]","<div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>","() => document.body","() => null","{\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }","boundaryElement || null","element || fallbackElement","useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])","<PortalContext.Provider value={value}>{children}</PortalContext.Provider>","PortalContext.Provider","as = 'div'","<Component aria-hidden className={srOnly} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Component>","as = 'div'","gap = 0","items = []","() => ref.current","() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n // oxlint-disable-next-line react/exhaustive-effect-dependencies\n }","[renderItem]","(): (() => 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 }","[]","handleScroll","[fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex]","() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }","{\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n }","{height}","<div ref={wrapperRef} style={{height}}>\n {children}\n </div>","<StyledVirtualList as={as as 'div'} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </StyledVirtualList>","as as 'div'","{\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 }","renderItem(items[0])","0","[<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]","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 })","(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 }"],"sources":["../src/core/_compat.ts","../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/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx","../src/core/helpers/scroll.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/usePrefersDark.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/styles/font/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/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.css.ts","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {buildTheme} from '../theme/build/buildTheme'\nimport {type HSL as _HSL, type RGB as _RGB} from '../theme/build/lib/color-fns/types'\nimport {\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n} from '../theme/system/color/_system'\nimport {type ThemeColorSyntax as _ThemeColorSyntax} from '../theme/system/color/syntax'\nimport {\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n} from '../theme/system/font'\nimport {type ThemeLayer as _ThemeLayer} from '../theme/system/layer'\nimport {type ThemeBoxShadow, type ThemeShadow as _ThemeShadow} from '../theme/system/shadow'\nimport {type ThemeStyles} from '../theme/system/styles'\nimport {\n type BaseTheme as _BaseTheme,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n} from '../theme/system/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nimport {createColorTheme as _createColorTheme} from '../theme/build/_deprecated/color/factory'\nimport {multiply as _multiply} from '../theme/build/lib/color-fns/blend/multiply'\nimport {screen as _screen} from '../theme/build/lib/color-fns/blend/screen'\nimport {\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n} from '../theme/build/lib/color-fns/convert'\nimport {parseColor as _parseColor} from '../theme/build/lib/color-fns/parse'\nimport {rgba as _rgba} from '../theme/build/lib/color-fns/rgba'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\n// oxlint-disable-next-line no-deprecated\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerOwnProps extends BoxOwnProps, ResponsiveWidthProps {}\n\n/**\n * @public\n */\nexport type ContainerProps<E extends ElementType = 'div'> = Props<ContainerOwnProps, E>\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\nfunction ContainerComponent(\n props: ContainerOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'width'\n >,\n) {\n const {as, ref, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n}\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Container = ContainerComponent as unknown as <E extends ElementType = 'div'>(\n props: ContainerProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers/element'\nimport {focusFirstDescendant, focusLastDescendant} from '../../helpers/focus'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Container} from '../../primitives/container/container'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsivePaddingStyle} from '../../styles/padding/paddingStyle'\nimport {ResponsivePaddingStyleProps} from '../../styles/padding/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {DialogPosition} from '../../types/dialog'\nimport {Radius} from '../../types/radius'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {Layer, LayerProps} from '../../utils/layer/layer'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n ref?: React.Ref<HTMLDivElement>\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nfunction DialogCard(props: DialogCardProps) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n ref: forwardedRef,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const width = _getArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n}\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n ref,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = _getArrayProp(cardRadiusProp)\n const padding = _getArrayProp(paddingProp)\n const position = _getArrayProp(positionProp)\n const width = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n}\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types/dialog'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxOwnProps} from '../../primitives/box/box'\nimport {ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxOwnProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton(props: SkeletonProps & Omit<React.HTMLProps<HTMLDivElement>, 'height'>) {\n const {animated = false, delay, radius, ref, ...restProps} = props\n // oxlint-disable-next-line no-unneeded-ternary\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={_getArrayProp(radius)}\n $visible={delay ? visible : true}\n ref={ref}\n />\n )\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_getArrayProp, _responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"text\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"label\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"heading\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} $style=\"code\" />\n}\n","import {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../primitives/button/button'\nimport {ButtonTone} from '../../types/button'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n // oxlint-disable-next-line no-redundant-type-constituents\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n}\n","import {Children, cloneElement, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineOwnProps} from '../../primitives/inline/inline'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineOwnProps, 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n) {\n const {children: childrenProp, ref, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n}\n","import {Box, BoxOwnProps} from '../../primitives/box/box'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxOwnProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\n\nimport {Stack} from '../../primitives/stack/stack'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'align' | 'as' | 'height' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, gap = 1, onFocus, ref: forwardedRef, ...restProps} = props\n const ref = useRef<HTMLUListElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLUListElement | null, HTMLUListElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }),\n [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n // oxlint-disable-next-line react/exhaustive-effect-dependencies\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n display: block;\n padding-left: ${rem(space[2] * $level)};\n text-decoration: none;\n `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {Stack} from '../../primitives/stack/stack'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.gap}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"group\"\n gap={tree.gap}\n >\n {children}\n </Stack>\n )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons/ToggleArrowRight'\nimport {startTransition, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ElementType} from '../../types/component'\nimport {\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n treeItemRootColorStyle,\n treeItemRootStyle,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n /**\n * Additional props for the link element that is rendered when `href` is set — e.g. `next/link`'s\n * `prefetch` together with `linkAs={Link}`. Props controlled by `TreeItem` itself (`href`,\n * `role`, `tabIndex`, `aria-expanded` and the ref) take precedence.\n */\n linkProps?: React.HTMLProps<HTMLAnchorElement> & Record<string, unknown>\n padding?: number | number[]\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = styled.li(treeItemRootStyle, treeItemRootColorStyle)\n\n/**\n * Styles a plain element (rather than wrapping `Box`) so that `as={linkAs}` renders the custom\n * link component directly, the same way `<Button as={...}>` works. Wrapping `Box` with\n * `.attrs({forwardedAs: 'a'})` made styled-components pass `as=\"a\"` on to the custom component\n * (breaking e.g. `next/link`, which treats `as` as a URL override) and skip the `Box` styles.\n */\nconst TreeItemBox = styled.a<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n linkProps,\n muted,\n onClick,\n padding = 2,\n selected = false,\n gap = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, _setRootElement] = useState<HTMLLIElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setRootElement = useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])\n\n const treeitemRef = useRef<HTMLAnchorElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const [itemPath, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n {...linkProps}\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-as={typeof linkAs === 'string' ? linkAs : 'a'}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * @deprecated instead of `useArrayProp(width)` use `Array.isArray(width) ? width : [width]` instead\n * @beta\n */\nexport function useArrayProp(_val?: never, _defaultVal?: never): never {\n throw new Error(\n '`useArrayProp` was removed in @sanity/ui v4. Use `Array.isArray(value) ? value : [value]` instead.',\n )\n}\n","/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n _listener?: never,\n _elementsArg?: never,\n _boundaryElement?: never,\n): never {\n throw new Error(\n '`useClickOutside` was removed in @sanity/ui v4. Use `useClickOutsideEvent` instead.',\n )\n}\n","/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(_element?: never): never {\n throw new Error('`useElementRect` was removed in @sanity/ui v4. Use `useElementSize` instead.')\n}\n","/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef(_ref?: never): never {\n throw new Error(\n '`useForwardedRef` was removed in @sanity/ui v4. Use `useRef` and `useImperativeHandle` instead.',\n )\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${\n $accent &&\n css`\n color: var(--card-accent-fg-color);\n `\n }\n\n ${\n $muted &&\n css`\n color: var(--card-muted-fg-color);\n `\n }\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n /* ...and aren't squeezed by resets that set max-width: 100% */\n max-width: unset;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveLabelFont} from '../../styles/font/labelFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\n/**\n * @public\n */\nexport type LabelProps<E extends ElementType = 'div'> = Props<LabelOwnProps, E>\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n $weight?: ThemeFontWeightKey\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nfunction LabelComponent(\n props: LabelOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n ref,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n}\n\n/**\n * Typographic labels.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Label = LabelComponent as unknown as <E extends ElementType = 'div'>(\n props: LabelProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': '0',\n 'opacity': '0',\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: '0',\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: '1',\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: '1',\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nfunction avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nfunction avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nfunction avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {useCallback, useEffect, useId, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorAvatarColorKey} from '../../../theme/system/color/_system'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types/avatar'\nimport {ElementType, Props} from '../../types/component'\nimport {Label} from '../label/label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * @public\n */\nexport type AvatarProps<E extends ElementType = 'div'> = Props<AvatarOwnProps, E>\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\nfunction AvatarComponent(\n props: AvatarOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n ref,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = _getArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n // oxlint-disable-next-line react/set-state-in-effect\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </AvatarImage>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel\n forwardedAs=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n}\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Avatar = AvatarComponent as unknown as <E extends ElementType = 'div'>(\n props: AvatarProps<E>,\n) => React.JSX.Element\n","import {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {Label} from '../label/label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport function AvatarCounter(props: AvatarCounterProps & {ref?: React.Ref<HTMLDivElement>}) {\n const {count, ref, size: sizeProp = 1} = props\n const size = _getArrayProp(sizeProp)\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n}\n","import {Children, cloneElement, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport function AvatarStack(props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n ref,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = _getArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {BadgeTone} from '../../types/badge'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {Text} from '../text/text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeOwnProps extends BoxOwnProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: never\n tone?: BadgeTone\n}\n\n/**\n * @public\n */\nexport type BadgeProps<E extends ElementType = 'div'> = Props<BadgeOwnProps, E>\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\nconst BadgeComponent = function Badge(\n props: BadgeOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n) {\n const {\n children,\n fontSize = 1,\n padding = 1,\n radius = 'full',\n ref,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_getArrayProp(radius)}\n padding={_getArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n}\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Badge = BadgeComponent as unknown as <E extends ElementType = 'div'>(\n props: BadgeProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {RemoveIcon} from '@sanity/icons/Remove'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </StyledCheckbox>\n )\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {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 /* ...and aren't squeezed by resets that set max-width: 100% */\n max-width: unset;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveHeadingFont} from '../../styles/font/headingFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {ResponsiveFontStyleProps, ResponsiveTextAlignStyleProps} from '../../styles/font/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\n/**\n * @public\n */\nexport type HeadingProps<E extends ElementType = 'div'> = Props<HeadingOwnProps, E>\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nfunction HeadingComponent(\n props: HeadingOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'size'\n >,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n ref,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n}\n\n/**\n * Typographic headings.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Heading = HeadingComponent as unknown as <E extends ElementType = 'div'>(\n props: HeadingProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyle, radioBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport function Radio(props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps) {\n const {\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </StyledRadio>\n )\n}\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontSize} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {responsiveInputPaddingIconRightStyle} from '../../styles/input/responsiveInputPaddingStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {ThemeProps} from '../../styles/types'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport function Select(props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap = 3,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${\n checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `\n }\n\n ${\n $indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `\n }\n `\n}\n","import {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </StyledSwitch>\n )\n}\n","import {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {\n responsiveInputPaddingStyle,\n TextInputResponsivePaddingStyleProps,\n} from '../../styles/input/responsiveInputPaddingStyle'\nimport {\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n} from '../../styles/input/textInputStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport function TextArea(props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n ref: forwardedRef,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n}\n","import {useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","/**\n * @internal\n * @deprecated ConditionalWrapper was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.\n */\nexport function ConditionalWrapper(_props?: never): never {\n throw new Error(\n '`ConditionalWrapper` was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.',\n )\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ref: forwardedRef, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n}\n","import {Component, PropsWithChildren} from 'react'\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 // A plain element rather than the `Code` primitive: `Code` lives on the\n // `@sanity/ui/code` entry point (it lazy-loads `react-refractor`), and\n // the root entry point must not reference that module graph.\n return (\n <pre data-ui=\"ErrorBoundary\">\n <code>{message}</code>\n </pre>\n )\n }\n\n return this.props.children\n }\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n // oxlint-disable-next-line no-deprecated\n const {boundaryElement, children, element, __unstable_elements: elements} = props\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nconst emptySubscribe = () => () => {}\n","import {style} from '@vanilla-extract/css'\n\nexport const srOnly = style({\n display: 'block',\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: ['hidden', 'clip'],\n})\n","import {srOnly} from './srOnly.css'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\n/**\n * @public\n */\nexport function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n) {\n const {as = 'div', children, ref} = props\n // Rendering the polymorphic `as` needs one concrete element type for JSX to\n // type-check the div-flavored props (the same widening styled-components'\n // `as` prop performed here before).\n // oxlint-disable-next-line no-unsafe-type-assertion\n const Component = as as 'div'\n\n return (\n <Component aria-hidden className={srOnly} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Component>\n )\n}\n","import {useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_isScrollable} from '../../helpers/scroll'\nimport {StackOwnProps} from '../../primitives/stack/stack'\nimport {useTheme_v2} from '../../theme/useTheme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport function VirtualList(\n props: VirtualListProps &\n StackOwnProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange'>,\n): React.JSX.Element {\n const {\n as = 'div',\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n ref: forwardedRef,\n renderItem,\n ...restProps\n } = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n // oxlint-disable-next-line react/exhaustive-effect-dependencies\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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"}