@sanity/ui 4.2.4 → 4.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/arrow-CZ-Lw1QO.js.map +1 -1
- package/dist/autocomplete.js.map +1 -1
- package/dist/breadcrumbs.js.map +1 -1
- package/dist/button-Wii-24Xu.js.map +1 -1
- package/dist/code.js.map +1 -1
- package/dist/factory-BzXTX8_Q.js.map +1 -1
- package/dist/flex-CpiAc-4D.js.map +1 -1
- package/dist/getElementRef-Jw7gY0eV.js.map +1 -1
- package/dist/getScopedTheme-C-sZsyAz.js.map +1 -1
- package/dist/getTheme_v2-y09KqtEb.js.map +1 -1
- package/dist/grid-BVZEj_Xe.js.map +1 -1
- package/dist/hotkeys-DEMStMQ5.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/layer-B0tlPeLT.js.map +1 -1
- package/dist/menu.js.map +1 -1
- package/dist/popover-DR6UQQvq.js.map +1 -1
- package/dist/refractor-CC48DwHi.js.map +1 -1
- package/dist/responsiveFont-CilwaORG.js.map +1 -1
- package/dist/stack-SbGBZ0x3.js.map +1 -1
- package/dist/textInput-Yp5lnvZK.js.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/toast.js.map +1 -1
- package/dist/tooltip.js.map +1 -1
- package/dist/useClickOutsideEvent-wGLGWBZN.js.map +1 -1
- package/dist/useElementSize-BJvbGHq8.js.map +1 -1
- package/dist/useLayer-CUKYjJYq.js.map +1 -1
- package/package.json +6 -6
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 <Box className={dialogHeader} data-ui=\"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 </Box>\n )","<Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>","footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )","<Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"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 </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>","<Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"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 </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>","<Container className={dialogContainer} data-ui=\"DialogCard\" display=\"flex\" width={width}>\n <Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"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 </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>","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])","clsx(dialogLayer, animate && dialogAnimated, className)","animate && dialogAnimated","<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 $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\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 $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\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)","clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )","(delay ? visible : true) ? skeletonVisible : skeletonHidden","animated ? skeletonAnimated : skeletonStatic","<StyledSkeleton\n data-ui=\"Skeleton\"\n {...restProps}\n $radius={_getArrayProp(radius)}\n className={clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )}\n ref={ref}\n />","size = 2","_getArrayProp(size)","<StyledSkeleton data-ui=\"TextSkeleton\" {...restProps} $size={$size} $style=\"text\" />","<StyledSkeleton data-ui=\"LabelSkeleton\" {...restProps} $size={$size} $style=\"label\" />","<StyledSkeleton data-ui=\"HeadingSkeleton\" {...restProps} $size={$size} $style=\"heading\" />","<StyledSkeleton data-ui=\"CodeSkeleton\" {...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]","clsx(tab, className)","<Button\n className={clsx(tab, className)}\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 )","clsx(tabList, className)","<Inline\n className={clsx(tabList, className)}\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </Inline>","<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 }","[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","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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\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","<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 className={clsx(treeItem, restProps.className)}\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>","StyledTreeItem","selected ? '' : undefined","clsx(treeItem, restProps.className)","\"TreeItem\"","() => 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 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])","<div className={avatarArrow}>\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 </div>","!imageFailed && src && (\n <svg className={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 <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\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 <div className={avatarArrow}>\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 </div>\n\n {!imageFailed && src && (\n <svg className={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 <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\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 </div>\n </>\n )}\n </StyledAvatar>","StyledAvatar","(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\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 </div>\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","clsx(avatarStack, className)","\"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\n className={clsx(avatarStack, className)}\n data-ui=\"AvatarStack\"\n {...restProps}\n ref={ref}\n $size={size}\n >\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]","clsx(checkbox, className)","<Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Checkbox__input\"\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>","<div className={clsx(checkbox, className)} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Checkbox__input\"\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 </div>","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","clsx(radio, className)","<Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Radio__input\"\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />","!disabled && readOnly ? '' : undefined","customValidity ? '' : undefined","disabled || readOnly","<span />","<div className={clsx(radio, className)} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Radio__input\"\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>","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>","<div className={select} 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 </div>","() => ref.current","() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }","[indeterminate]","clsx(switchRoot, className)","<input\n className={switchInput}\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 data-ui=\"Switch__track\" />","<Representation aria-hidden data-name=\"representation\" data-ui=\"Switch__representation\">\n <Track data-ui=\"Switch__track\" />\n <Thumb $checked={checked} $indeterminate={indeterminate} data-ui=\"Switch__thumb\" />\n </Representation>","<span className={clsx(switchRoot, className)} data-ui=\"Switch\" style={style}>\n <input\n className={switchInput}\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\" data-ui=\"Switch__representation\">\n <Track data-ui=\"Switch__track\" />\n <Thumb $checked={checked} $indeterminate={indeterminate} data-ui=\"Switch__thumb\" />\n </Representation>\n </span>","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 data-ui=\"TextArea__input\"\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 data-ui=\"TextArea__presentation\"\n />","border ? '' : undefined","<span className={textAreaRoot} data-ui=\"TextArea\">\n <span className={inputRoot}>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n data-ui=\"TextArea__input\"\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 data-ui=\"TextArea__presentation\"\n />\n </span>\n </span>","{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 }","[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 }","clsx(virtualList, className)","{height}","<div ref={wrapperRef} style={{height}}>\n {children}\n </div>","<Component\n className={clsx(virtualList, className)}\n data-ui=\"VirtualList\"\n ref={ref}\n {...restProps}\n >\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </Component>","{\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","[\n <div key={0} className={virtualListItem}>\n {renderItem(items[0])}\n </div>,\n ]","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 <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\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 <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\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.css.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/skeleton/skeleton.css.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.css.ts","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.css.ts","../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/tree.css.ts","../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.css.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.css.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.css.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.css.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.css.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.css.ts","../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 */\nexport const Container: <E extends ElementType = 'div'>(\n props: ContainerProps<E>,\n) => React.JSX.Element = ContainerComponent\n","import {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 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","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 {globalStyle, keyframes, style} from '@vanilla-extract/css'\n\nexport const dialogLayer = style({\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n selectors: {\n '&:not([hidden])': {\n display: 'flex',\n },\n },\n})\n\nconst zoomIn = keyframes({\n from: {opacity: 0, transform: 'scale(0.95)'},\n to: {opacity: 1, transform: 'scale(1)'},\n})\n\nconst fadeIn = keyframes({\n from: {opacity: 0},\n to: {opacity: 1},\n})\n\nexport const dialogAnimated = style({\n animation: `${fadeIn} 200ms ease-out`,\n})\n\nglobalStyle(`${dialogAnimated} > [data-ui='DialogCard']`, {\n animation: `${zoomIn} 200ms ease-out`,\n})\n\nexport const dialogContainer = style({\n width: '100%',\n height: '100%',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nexport const dialogCard = style({\n width: '100%',\n minHeight: 0,\n maxHeight: '100%',\n overflow: ['hidden', 'clip'],\n})\n\nexport const dialogLayout = style({\n minHeight: 0,\n width: '100%',\n})\n\nexport const dialogHeader = style({\n position: 'relative',\n zIndex: 2,\n})\n\nexport const dialogContent = style({\n position: 'relative',\n zIndex: 1,\n overflow: 'auto',\n outline: 'none',\n})\n\nexport const dialogFooter = style({\n position: 'relative',\n zIndex: 3,\n})\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {clsx} from 'clsx/lite'\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 dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\nimport {\n dialogAnimated,\n dialogCard,\n dialogContainer,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayer,\n dialogLayout,\n} from './dialog.css'\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\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle)\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 <Container className={dialogContainer} data-ui=\"DialogCard\" display=\"flex\" width={width}>\n <Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"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 </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>\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 className,\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 $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\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 {keyframes, style} from '@vanilla-extract/css'\n\nconst shimmer = keyframes({\n from: {transform: 'translateX(-100%)'},\n to: {transform: 'translateX(100%)'},\n})\n\nexport const skeleton = style({\n 'transition': 'opacity 200ms ease-in',\n '@media': {\n 'screen and (prefers-reduced-motion: reduce)': {\n backgroundColor: 'var(--card-skeleton-color-from)',\n },\n },\n})\n\nexport const skeletonVisible = style({\n opacity: 1,\n})\n\nexport const skeletonHidden = style({\n opacity: 0,\n})\n\nexport const skeletonAnimated = style({\n '@media': {\n 'screen and (prefers-reduced-motion: no-preference)': {\n backgroundColor: 'var(--card-skeleton-color-from)',\n contain: 'paint',\n WebkitMaskImage: 'linear-gradient(#fff, #fff)',\n maskImage: 'linear-gradient(#fff, #fff)',\n selectors: {\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n backgroundImage: `linear-gradient(\n to right,\n transparent,\n var(--card-skeleton-color-to),\n transparent\n )`,\n pointerEvents: 'none',\n willChange: 'transform',\n animationName: shimmer,\n animationTimingFunction: 'ease-in-out',\n animationIterationCount: 'infinite',\n animationDuration: '2000ms',\n },\n },\n },\n },\n})\n\nexport const skeletonStatic = style({\n '@media': {\n 'screen and (prefers-reduced-motion: no-preference)': {\n backgroundColor: 'var(--card-skeleton-color-from)',\n },\n },\n})\n","import {clsx} from 'clsx/lite'\nimport {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'\n\nimport {\n skeleton,\n skeletonAnimated,\n skeletonHidden,\n skeletonStatic,\n skeletonVisible,\n} from './skeleton.css'\n\nconst StyledSkeleton = styled(Box)<ResponsiveRadiusStyleProps>(responsiveRadiusStyle)\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, className, 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 data-ui=\"Skeleton\"\n {...restProps}\n $radius={_getArrayProp(radius)}\n className={clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )}\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 data-ui=\"TextSkeleton\" {...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 data-ui=\"LabelSkeleton\" {...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 data-ui=\"HeadingSkeleton\" {...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 data-ui=\"CodeSkeleton\" {...restProps} $size={$size} $style=\"code\" />\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const tab = style({\n maxWidth: '100%',\n})\n","import {clsx} from 'clsx/lite'\nimport {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {Button} from '../../primitives/button/button'\nimport {ButtonTone} from '../../types/button'\n\nimport {tab} from './tab.css'\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\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 className,\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 <Button\n className={clsx(tab, className)}\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 {globalStyle, style} from '@vanilla-extract/css'\n\nexport const tabList = style({})\n\n// Limits the width of tabs in the tablist\nglobalStyle(`${tabList} > div`, {\n display: 'inline-block',\n verticalAlign: 'middle',\n maxWidth: '100%',\n boxSizing: 'border-box',\n})\n","import {clsx} from 'clsx/lite'\nimport {Children, cloneElement, isValidElement, useCallback, useState} from 'react'\n\nimport {Inline, InlineOwnProps} from '../../primitives/inline/inline'\n\nimport {tabList} from './tabList.css'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineOwnProps, 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n/**\n * @public\n */\nexport function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n) {\n const {children: childrenProp, className, 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 <Inline\n className={clsx(tabList, className)}\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </Inline>\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 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 {globalStyle, style} from '@vanilla-extract/css'\n\nexport const treeItem = style({\n selectors: {\n \"&[role='treeitem']\": {\n outline: 'none',\n },\n },\n})\n\nglobalStyle(`${treeItem}[role='none'] > [role='treeitem']`, {\n outline: 'none',\n cursor: 'default',\n borderRadius: '3px',\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--treeitem-fg-color)',\n})\n\nglobalStyle(`${treeItem}[role='none'] > [role='treeitem']:focus`, {\n position: 'relative',\n})\n\nglobalStyle(`${treeItem}[role='treeitem'] > div`, {\n cursor: 'default',\n borderRadius: '3px',\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--treeitem-fg-color)',\n})\n\nglobalStyle(`${treeItem}[role='treeitem']:focus > div`, {\n position: 'relative',\n})\n\nexport const treeItemToggleArrow = style({\n transition: 'transform 100ms',\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons/ToggleArrowRight'\nimport {clsx} from 'clsx/lite'\nimport {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 {treeItemBoxStyle, TreeItemBoxStyleProps, treeItemRootColorStyle} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\nimport {treeItem, treeItemToggleArrow} from './tree.css'\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(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\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 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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\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 className={clsx(treeItem, restProps.className)}\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 className={clsx(treeItem, restProps.className)}\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 */\nexport const Label: <E extends ElementType = 'div'>(props: LabelProps<E>) => React.JSX.Element =\n LabelComponent\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 function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n","import {globalStyle, style} from '@vanilla-extract/css'\n\nexport const avatarArrow = style({\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 selectors: {\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n },\n})\n\nglobalStyle(`${avatarArrow} > svg`, {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n})\n\nglobalStyle(`${avatarArrow} > svg:not([hidden])`, {\n display: 'block',\n})\n\nexport const avatarImage = style({\n position: 'relative',\n})\n\nexport const avatarBgStroke = style({\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n})\n\nexport const avatarStroke = style({\n strokeWidth: '2px',\n stroke: 'var(--avatar-bg-color)',\n selectors: {\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n },\n})\n\nexport const avatarStack = style({\n whiteSpace: 'nowrap',\n})\n\nglobalStyle(`${avatarStack} > div`, {\n verticalAlign: 'top',\n})\n\nglobalStyle(`${avatarStack} > div:not([hidden])`, {\n display: 'inline-block',\n})\n\nexport const avatarInitials = style({\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 selectors: {\n '&:not([hidden])': {\n display: 'flex',\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 {avatarRootStyle, responsiveAvatarSizeStyle} from './styles'\n\nimport {avatarArrow, avatarBgStroke, avatarImage, avatarInitials, avatarStroke} from './avatar.css'\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 avatarRootStyle,\n)\n\n// Stays on styled-components: `color: inherit` must beat Label's runtime\n// `color: var(--card-fg-color)` at equal specificity, which needs both rules in\n// the runtime stylesheet.\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\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 // Adjusted during render rather than in an effect, so no committed frame\n // shows the initials for an image that has not tried to load yet.\n // https://react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n const [prevSrc, setPrevSrc] = useState(src)\n\n if (prevSrc !== src) {\n setPrevSrc(src)\n if (src) setImageFailed(false)\n }\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 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 <div className={avatarArrow}>\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 </div>\n\n {!imageFailed && src && (\n <svg className={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 <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\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 </div>\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 {clsx} from 'clsx/lite'\nimport {Children, cloneElement, isValidElement} from 'react'\nimport {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\nimport {avatarStack} from './avatar.css'\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[]}>(responsiveAvatarStackSizeStyle)\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 className,\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\n className={clsx(avatarStack, className)}\n data-ui=\"AvatarStack\"\n {...restProps}\n ref={ref}\n $size={size}\n >\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 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 {style} from '@vanilla-extract/css'\n\nexport const checkbox = style({\n position: 'relative',\n display: 'inline-block',\n})\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {RemoveIcon} from '@sanity/icons/Remove'\nimport {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyles} from './styles'\n\nimport {checkbox} from './checkbox.css'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\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 <div className={clsx(checkbox, className)} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Checkbox__input\"\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 </div>\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 */\nexport const Heading: <E extends ElementType = 'div'>(props: HeadingProps<E>) => React.JSX.Element =\n HeadingComponent\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 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 {style} from '@vanilla-extract/css'\n\nexport const radio = style({\n position: 'relative',\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\n})\n","import {clsx} from 'clsx/lite'\nimport {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyle} from './styles'\n\nimport {radio} from './radio.css'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\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 <div className={clsx(radio, className)} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Radio__input\"\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>\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 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 input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const select = style({\n position: 'relative',\n width: ['-moz-available', '-webkit-fill-available', 'stretch'],\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\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\nimport {select} from './select.css'\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 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 <div className={select} 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 </div>\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/* 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 {style} from '@vanilla-extract/css'\n\nexport const switchRoot = style({\n position: 'relative',\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\n})\n\n// Visually hides the input element while keeping it interactive, placed above\n// the representation element\nexport const switchInput = style({\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 zIndex: 1,\n})\n","import {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {switchRepresentationStyles, switchThumbStyles, switchTrackStyles} from './styles'\n\nimport {switchInput, switchRoot} from './switch.css'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\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 <span className={clsx(switchRoot, className)} data-ui=\"Switch\" style={style}>\n <input\n className={switchInput}\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\" data-ui=\"Switch__representation\">\n <Track data-ui=\"Switch__track\" />\n <Thumb $checked={checked} $indeterminate={indeterminate} data-ui=\"Switch__thumb\" />\n </Representation>\n </span>\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} 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\nimport {inputRoot, textAreaRoot} from '../../styles/input/textInput.css'\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 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 <span className={textAreaRoot} data-ui=\"TextArea\">\n <span className={inputRoot}>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n data-ui=\"TextArea__input\"\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 data-ui=\"TextArea__presentation\"\n />\n </span>\n </span>\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 {style} from '@vanilla-extract/css'\n\nexport const virtualList = style({\n position: 'relative',\n})\n\nexport const virtualListItem = style({\n position: 'absolute',\n left: 0,\n right: 0,\n})\n","import {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef, useState} from 'react'\n\nimport {_isScrollable} from '../../helpers/scroll'\nimport {StackOwnProps} from '../../primitives/stack/stack'\nimport {useTheme_v2} from '../../theme/useTheme'\n\nimport {virtualList, virtualListItem} from './virtualList.css'\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\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 className,\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 // 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\n className={clsx(virtualList, className)}\n data-ui=\"VirtualList\"\n ref={ref}\n {...restProps}\n >\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </Component>\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 [\n <div key={0} className={virtualListItem}>\n {renderItem(items[0])}\n </div>,\n ]\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 <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\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":["_createColorTheme","_hexToRgb","_hslToRgb","_multiply","_parseColor","_rgbToHex","_rgbToHsl","_rgba","_screen","width = 2","_getArrayProp(width)","<StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />","_c","_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 <Box className={dialogHeader} data-ui=\"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 </Box>\n )","<Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>","footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )","<Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"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 </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>","<Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"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 </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>","<Container className={dialogContainer} data-ui=\"DialogCard\" display=\"flex\" width={width}>\n <Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"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 </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>","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])","clsx(dialogLayer, animate && dialogAnimated, className)","animate && dialogAnimated","<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 $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\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 $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\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>","_c","{\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","_c","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)","clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )","(delay ? visible : true) ? skeletonVisible : skeletonHidden","animated ? skeletonAnimated : skeletonStatic","<StyledSkeleton\n data-ui=\"Skeleton\"\n {...restProps}\n $radius={_getArrayProp(radius)}\n className={clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )}\n ref={ref}\n />","StyledSkeleton","_c","size = 2","_getArrayProp(size)","<StyledSkeleton data-ui=\"TextSkeleton\" {...restProps} $size={$size} $style=\"text\" />","<StyledSkeleton data-ui=\"LabelSkeleton\" {...restProps} $size={$size} $style=\"label\" />","<StyledSkeleton data-ui=\"HeadingSkeleton\" {...restProps} $size={$size} $style=\"heading\" />","<StyledSkeleton data-ui=\"CodeSkeleton\" {...restProps} $size={$size} $style=\"code\" />","_c","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]","clsx(tab, className)","<Button\n className={clsx(tab, className)}\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","_c","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 )","clsx(tabList, className)","<Inline\n className={clsx(tabList, className)}\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </Inline>","_c","<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","_c","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 }","[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","_c","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","_c","expandedProp = false","fontSize = 1","padding = 2","selected = false","gap = 2","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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\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","<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 className={clsx(treeItem, restProps.className)}\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>","StyledTreeItem","selected ? '' : undefined","clsx(treeItem, restProps.className)","\"TreeItem\"","_c","() => false","getServerSnapshot = () => false","_temp","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>","_c","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 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])","<div className={avatarArrow}>\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 </div>","!imageFailed && src && (\n <svg className={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 <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\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 <div className={avatarArrow}>\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 </div>\n\n {!imageFailed && src && (\n <svg className={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 <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\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 </div>\n </>\n )}\n </StyledAvatar>","StyledAvatar","(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\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 </div>\n </>\n )","typeof as === 'string' ? as : undefined","\"Avatar\"","_c","_Fragment","_temp","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>","_c","_temp","maxLengthProp = 4","sizeProp = 1","StyledAvatarStack","clsx(avatarStack, className)","\"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\n className={clsx(avatarStack, className)}\n data-ui=\"AvatarStack\"\n {...restProps}\n ref={ref}\n $size={size}\n >\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>","_c","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>","_c","() => ref.current","() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }","[indeterminate]","clsx(checkbox, className)","<Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Checkbox__input\"\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>","<div className={clsx(checkbox, className)} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Checkbox__input\"\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 </div>","Input","_c","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>","_c","() => ref.current","clsx(radio, className)","<Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Radio__input\"\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />","!disabled && readOnly ? '' : undefined","customValidity ? '' : undefined","disabled || readOnly","<span />","<div className={clsx(radio, className)} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Radio__input\"\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>","Input","_c","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>","<div className={select} 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 </div>","Input","_c","() => ref.current","() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }","[indeterminate]","clsx(switchRoot, className)","<input\n className={switchInput}\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 data-ui=\"Switch__track\" />","<Representation aria-hidden data-name=\"representation\" data-ui=\"Switch__representation\">\n <Track data-ui=\"Switch__track\" />\n <Thumb $checked={checked} $indeterminate={indeterminate} data-ui=\"Switch__thumb\" />\n </Representation>","<span className={clsx(switchRoot, className)} data-ui=\"Switch\" style={style}>\n <input\n className={switchInput}\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\" data-ui=\"Switch__representation\">\n <Track data-ui=\"Switch__track\" />\n <Thumb $checked={checked} $indeterminate={indeterminate} data-ui=\"Switch__thumb\" />\n </Representation>\n </span>","_c","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 data-ui=\"TextArea__input\"\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 data-ui=\"TextArea__presentation\"\n />","border ? '' : undefined","<span className={textAreaRoot} data-ui=\"TextArea\">\n <span className={inputRoot}>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n data-ui=\"TextArea__input\"\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 data-ui=\"TextArea__presentation\"\n />\n </span>\n </span>","_c","{version: 0.0, element}","useMemo(() => ({version: 0.0, element}), [element])","<BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>","BoundaryElementContext.Provider","_c","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>","_c","() => 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","_c","as = 'div'","<Component aria-hidden className={srOnly} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Component>","_c","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 }","[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 }","clsx(virtualList, className)","{height}","<div ref={wrapperRef} style={{height}}>\n {children}\n </div>","<Component\n className={clsx(virtualList, className)}\n data-ui=\"VirtualList\"\n ref={ref}\n {...restProps}\n >\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </Component>","{\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","[\n <div key={0} className={virtualListItem}>\n {renderItem(items[0])}\n </div>,\n ]","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 <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\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 <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\n )\n }","_c","$tone","\"backgroundColor\"","\"position\"","\"boxSizing\"","\"userSelect\"","\"boxShadow\"","\"WebkitFontSmoothing\"","\"appearance\"","\"margin\"","\"padding\"","\"border\"","\"font\"","\"color\"","\"outline\"","\"width\"","\"height\"","\"borderRadius\"","\"cursor\""],"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.css.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/skeleton/skeleton.css.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.css.ts","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.css.ts","../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/tree.css.ts","../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.css.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.css.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.css.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.css.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.css.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.css.ts","../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 */\nexport const Container: <E extends ElementType = 'div'>(\n props: ContainerProps<E>,\n) => React.JSX.Element = ContainerComponent\n","import {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 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","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 {globalStyle, keyframes, style} from '@vanilla-extract/css'\n\nexport const dialogLayer = style({\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n selectors: {\n '&:not([hidden])': {\n display: 'flex',\n },\n },\n})\n\nconst zoomIn = keyframes({\n from: {opacity: 0, transform: 'scale(0.95)'},\n to: {opacity: 1, transform: 'scale(1)'},\n})\n\nconst fadeIn = keyframes({\n from: {opacity: 0},\n to: {opacity: 1},\n})\n\nexport const dialogAnimated = style({\n animation: `${fadeIn} 200ms ease-out`,\n})\n\nglobalStyle(`${dialogAnimated} > [data-ui='DialogCard']`, {\n animation: `${zoomIn} 200ms ease-out`,\n})\n\nexport const dialogContainer = style({\n width: '100%',\n height: '100%',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nexport const dialogCard = style({\n width: '100%',\n minHeight: 0,\n maxHeight: '100%',\n overflow: ['hidden', 'clip'],\n})\n\nexport const dialogLayout = style({\n minHeight: 0,\n width: '100%',\n})\n\nexport const dialogHeader = style({\n position: 'relative',\n zIndex: 2,\n})\n\nexport const dialogContent = style({\n position: 'relative',\n zIndex: 1,\n overflow: 'auto',\n outline: 'none',\n})\n\nexport const dialogFooter = style({\n position: 'relative',\n zIndex: 3,\n})\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {clsx} from 'clsx/lite'\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 dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\nimport {\n dialogAnimated,\n dialogCard,\n dialogContainer,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayer,\n dialogLayout,\n} from './dialog.css'\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\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle)\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 <Container className={dialogContainer} data-ui=\"DialogCard\" display=\"flex\" width={width}>\n <Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"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 </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>\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 className,\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 $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\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 {keyframes, style} from '@vanilla-extract/css'\n\nconst shimmer = keyframes({\n from: {transform: 'translateX(-100%)'},\n to: {transform: 'translateX(100%)'},\n})\n\nexport const skeleton = style({\n 'transition': 'opacity 200ms ease-in',\n '@media': {\n 'screen and (prefers-reduced-motion: reduce)': {\n backgroundColor: 'var(--card-skeleton-color-from)',\n },\n },\n})\n\nexport const skeletonVisible = style({\n opacity: 1,\n})\n\nexport const skeletonHidden = style({\n opacity: 0,\n})\n\nexport const skeletonAnimated = style({\n '@media': {\n 'screen and (prefers-reduced-motion: no-preference)': {\n backgroundColor: 'var(--card-skeleton-color-from)',\n contain: 'paint',\n WebkitMaskImage: 'linear-gradient(#fff, #fff)',\n maskImage: 'linear-gradient(#fff, #fff)',\n selectors: {\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n backgroundImage: `linear-gradient(\n to right,\n transparent,\n var(--card-skeleton-color-to),\n transparent\n )`,\n pointerEvents: 'none',\n willChange: 'transform',\n animationName: shimmer,\n animationTimingFunction: 'ease-in-out',\n animationIterationCount: 'infinite',\n animationDuration: '2000ms',\n },\n },\n },\n },\n})\n\nexport const skeletonStatic = style({\n '@media': {\n 'screen and (prefers-reduced-motion: no-preference)': {\n backgroundColor: 'var(--card-skeleton-color-from)',\n },\n },\n})\n","import {clsx} from 'clsx/lite'\nimport {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'\n\nimport {\n skeleton,\n skeletonAnimated,\n skeletonHidden,\n skeletonStatic,\n skeletonVisible,\n} from './skeleton.css'\n\nconst StyledSkeleton = styled(Box)<ResponsiveRadiusStyleProps>(responsiveRadiusStyle)\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, className, 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 data-ui=\"Skeleton\"\n {...restProps}\n $radius={_getArrayProp(radius)}\n className={clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )}\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 data-ui=\"TextSkeleton\" {...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 data-ui=\"LabelSkeleton\" {...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 data-ui=\"HeadingSkeleton\" {...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 data-ui=\"CodeSkeleton\" {...restProps} $size={$size} $style=\"code\" />\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const tab = style({\n maxWidth: '100%',\n})\n","import {clsx} from 'clsx/lite'\nimport {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {Button} from '../../primitives/button/button'\nimport {ButtonTone} from '../../types/button'\n\nimport {tab} from './tab.css'\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\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 className,\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 <Button\n className={clsx(tab, className)}\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 {globalStyle, style} from '@vanilla-extract/css'\n\nexport const tabList = style({})\n\n// Limits the width of tabs in the tablist\nglobalStyle(`${tabList} > div`, {\n display: 'inline-block',\n verticalAlign: 'middle',\n maxWidth: '100%',\n boxSizing: 'border-box',\n})\n","import {clsx} from 'clsx/lite'\nimport {Children, cloneElement, isValidElement, useCallback, useState} from 'react'\n\nimport {Inline, InlineOwnProps} from '../../primitives/inline/inline'\n\nimport {tabList} from './tabList.css'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineOwnProps, 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n/**\n * @public\n */\nexport function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n) {\n const {children: childrenProp, className, 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 <Inline\n className={clsx(tabList, className)}\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </Inline>\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 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 {globalStyle, style} from '@vanilla-extract/css'\n\nexport const treeItem = style({\n selectors: {\n \"&[role='treeitem']\": {\n outline: 'none',\n },\n },\n})\n\nglobalStyle(`${treeItem}[role='none'] > [role='treeitem']`, {\n outline: 'none',\n cursor: 'default',\n borderRadius: '3px',\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--treeitem-fg-color)',\n})\n\nglobalStyle(`${treeItem}[role='none'] > [role='treeitem']:focus`, {\n position: 'relative',\n})\n\nglobalStyle(`${treeItem}[role='treeitem'] > div`, {\n cursor: 'default',\n borderRadius: '3px',\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--treeitem-fg-color)',\n})\n\nglobalStyle(`${treeItem}[role='treeitem']:focus > div`, {\n position: 'relative',\n})\n\nexport const treeItemToggleArrow = style({\n transition: 'transform 100ms',\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons/ToggleArrowRight'\nimport {clsx} from 'clsx/lite'\nimport {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 {treeItemBoxStyle, TreeItemBoxStyleProps, treeItemRootColorStyle} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\nimport {treeItem, treeItemToggleArrow} from './tree.css'\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(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\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 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 <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\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 className={clsx(treeItem, restProps.className)}\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 className={clsx(treeItem, restProps.className)}\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 */\nexport const Label: <E extends ElementType = 'div'>(props: LabelProps<E>) => React.JSX.Element =\n LabelComponent\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 function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n","import {globalStyle, style} from '@vanilla-extract/css'\n\nexport const avatarArrow = style({\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 selectors: {\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n },\n})\n\nglobalStyle(`${avatarArrow} > svg`, {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n})\n\nglobalStyle(`${avatarArrow} > svg:not([hidden])`, {\n display: 'block',\n})\n\nexport const avatarImage = style({\n position: 'relative',\n})\n\nexport const avatarBgStroke = style({\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n})\n\nexport const avatarStroke = style({\n strokeWidth: '2px',\n stroke: 'var(--avatar-bg-color)',\n selectors: {\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n },\n})\n\nexport const avatarStack = style({\n whiteSpace: 'nowrap',\n})\n\nglobalStyle(`${avatarStack} > div`, {\n verticalAlign: 'top',\n})\n\nglobalStyle(`${avatarStack} > div:not([hidden])`, {\n display: 'inline-block',\n})\n\nexport const avatarInitials = style({\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 selectors: {\n '&:not([hidden])': {\n display: 'flex',\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 {avatarRootStyle, responsiveAvatarSizeStyle} from './styles'\n\nimport {avatarArrow, avatarBgStroke, avatarImage, avatarInitials, avatarStroke} from './avatar.css'\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 avatarRootStyle,\n)\n\n// Stays on styled-components: `color: inherit` must beat Label's runtime\n// `color: var(--card-fg-color)` at equal specificity, which needs both rules in\n// the runtime stylesheet.\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\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 // Adjusted during render rather than in an effect, so no committed frame\n // shows the initials for an image that has not tried to load yet.\n // https://react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n const [prevSrc, setPrevSrc] = useState(src)\n\n if (prevSrc !== src) {\n setPrevSrc(src)\n if (src) setImageFailed(false)\n }\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 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 <div className={avatarArrow}>\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 </div>\n\n {!imageFailed && src && (\n <svg className={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 <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\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 </div>\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 {clsx} from 'clsx/lite'\nimport {Children, cloneElement, isValidElement} from 'react'\nimport {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\nimport {avatarStack} from './avatar.css'\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[]}>(responsiveAvatarStackSizeStyle)\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 className,\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\n className={clsx(avatarStack, className)}\n data-ui=\"AvatarStack\"\n {...restProps}\n ref={ref}\n $size={size}\n >\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 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 {style} from '@vanilla-extract/css'\n\nexport const checkbox = style({\n position: 'relative',\n display: 'inline-block',\n})\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {RemoveIcon} from '@sanity/icons/Remove'\nimport {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyles} from './styles'\n\nimport {checkbox} from './checkbox.css'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\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 <div className={clsx(checkbox, className)} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Checkbox__input\"\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 </div>\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 */\nexport const Heading: <E extends ElementType = 'div'>(props: HeadingProps<E>) => React.JSX.Element =\n HeadingComponent\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 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 {style} from '@vanilla-extract/css'\n\nexport const radio = style({\n position: 'relative',\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\n})\n","import {clsx} from 'clsx/lite'\nimport {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyle} from './styles'\n\nimport {radio} from './radio.css'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\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 <div className={clsx(radio, className)} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n data-ui=\"Radio__input\"\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>\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 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 input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const select = style({\n position: 'relative',\n width: ['-moz-available', '-webkit-fill-available', 'stretch'],\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\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\nimport {select} from './select.css'\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 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 <div className={select} 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 </div>\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/* 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 {style} from '@vanilla-extract/css'\n\nexport const switchRoot = style({\n position: 'relative',\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\n})\n\n// Visually hides the input element while keeping it interactive, placed above\n// the representation element\nexport const switchInput = style({\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 zIndex: 1,\n})\n","import {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {switchRepresentationStyles, switchThumbStyles, switchTrackStyles} from './styles'\n\nimport {switchInput, switchRoot} from './switch.css'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\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 <span className={clsx(switchRoot, className)} data-ui=\"Switch\" style={style}>\n <input\n className={switchInput}\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\" data-ui=\"Switch__representation\">\n <Track data-ui=\"Switch__track\" />\n <Thumb $checked={checked} $indeterminate={indeterminate} data-ui=\"Switch__thumb\" />\n </Representation>\n </span>\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} 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\nimport {inputRoot, textAreaRoot} from '../../styles/input/textInput.css'\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 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 <span className={textAreaRoot} data-ui=\"TextArea\">\n <span className={inputRoot}>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n data-ui=\"TextArea__input\"\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 data-ui=\"TextArea__presentation\"\n />\n </span>\n </span>\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 {style} from '@vanilla-extract/css'\n\nexport const virtualList = style({\n position: 'relative',\n})\n\nexport const virtualListItem = style({\n position: 'absolute',\n left: 0,\n right: 0,\n})\n","import {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef, useState} from 'react'\n\nimport {_isScrollable} from '../../helpers/scroll'\nimport {StackOwnProps} from '../../primitives/stack/stack'\nimport {useTheme_v2} from '../../theme/useTheme'\n\nimport {virtualList, virtualListItem} from './virtualList.css'\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\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 className,\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 // 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\n className={clsx(virtualList, className)}\n data-ui=\"VirtualList\"\n ref={ref}\n {...restProps}\n >\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </Component>\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 [\n <div key={0} className={virtualListItem}>\n {renderItem(items[0])}\n </div>,\n ]\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 <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\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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"}
|