import {Children, createContext, useContext, useMemo} from 'react' import {View} from 'react-native' import {Popover} from 'radix-ui' import {atoms as a, flatten, select, useTheme} from '#/alf' import {transparentifyColor} from '#/alf/util/colorGeneration' import { ARROW_SIZE, BUBBLE_MAX_WIDTH, MIN_EDGE_SPACE, } from '#/components/Tooltip/const' import {Text} from '#/components/Typography' type TooltipContextType = { position: 'top' | 'bottom' } const TooltipContext = createContext({ position: 'bottom', }) export function Outer({ children, position = 'bottom', visible, onVisibleChange, }: { children: React.ReactNode position?: 'top' | 'bottom' visible: boolean onVisibleChange: (visible: boolean) => void }) { const ctx = useMemo(() => ({position}), [position]) return ( {children} ) } export function Target({children}: {children: React.ReactNode}) { return ( {children} ) } export function Content({ children, label, }: { children: React.ReactNode label: string }) { const t = useTheme() const {position} = useContext(TooltipContext) return ( {children} ) } export function TextBubble({children}: {children: React.ReactNode}) { const c = Children.toArray(children) return ( {c.map((child, i) => ( {child} ))} ) }