@tamagui/tooltip 1.2.17 → 1.2.18

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.
@@ -74,6 +74,7 @@ const Tooltip = (0, import_core.withStaticProperties)(
74
74
  delay: delayProp,
75
75
  restMs = typeof delayProp === "undefined" ? 500 : typeof delayProp === "number" ? delayProp : 0,
76
76
  onOpenChange: onOpenChangeProp,
77
+ focus,
77
78
  ...restProps
78
79
  } = props;
79
80
  const popperScope = (0, import_popover.usePopoverScope)(__scopePopover);
@@ -98,7 +99,7 @@ const Tooltip = (0, import_core.withStaticProperties)(
98
99
  });
99
100
  const { getReferenceProps, getFloatingProps } = (0, import_react_dom_interactions.useInteractions)([
100
101
  (0, import_react_dom_interactions.useHover)(floating.context, { delay, restMs }),
101
- (0, import_react_dom_interactions.useFocus)(floating.context),
102
+ (0, import_react_dom_interactions.useFocus)(floating.context, focus),
102
103
  (0, import_react_dom_interactions.useRole)(floating.context, { role: "tooltip" }),
103
104
  (0, import_react_dom_interactions.useDismiss)(floating.context),
104
105
  (0, import_react_dom_interactions.useDelayGroup)(floating.context, { id })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Tooltip.tsx"],
4
- "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n focus?: {\n enabled?: boolean\n keyboardOnly?: boolean\n }\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n focus,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context, focus),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["open", "props"]
7
7
  }
@@ -57,6 +57,7 @@ const Tooltip = withStaticProperties(
57
57
  delay: delayProp,
58
58
  restMs = typeof delayProp === "undefined" ? 500 : typeof delayProp === "number" ? delayProp : 0,
59
59
  onOpenChange: onOpenChangeProp,
60
+ focus,
60
61
  ...restProps
61
62
  } = props;
62
63
  const popperScope = usePopoverScope(__scopePopover);
@@ -81,7 +82,7 @@ const Tooltip = withStaticProperties(
81
82
  });
82
83
  const { getReferenceProps, getFloatingProps } = useInteractions([
83
84
  useHover(floating.context, { delay, restMs }),
84
- useFocus(floating.context),
85
+ useFocus(floating.context, focus),
85
86
  useRole(floating.context, { role: "tooltip" }),
86
87
  useDismiss(floating.context),
87
88
  useDelayGroup(floating.context, { id })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Tooltip.tsx"],
4
- "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n focus?: {\n enabled?: boolean\n keyboardOnly?: boolean\n }\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n focus,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context, focus),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["open", "props"]
7
7
  }
@@ -57,6 +57,7 @@ const Tooltip = withStaticProperties(
57
57
  delay: delayProp,
58
58
  restMs = typeof delayProp === "undefined" ? 500 : typeof delayProp === "number" ? delayProp : 0,
59
59
  onOpenChange: onOpenChangeProp,
60
+ focus,
60
61
  ...restProps
61
62
  } = props;
62
63
  const popperScope = usePopoverScope(__scopePopover);
@@ -81,7 +82,7 @@ const Tooltip = withStaticProperties(
81
82
  });
82
83
  const { getReferenceProps, getFloatingProps } = useInteractions([
83
84
  useHover(floating.context, { delay, restMs }),
84
- useFocus(floating.context),
85
+ useFocus(floating.context, focus),
85
86
  useRole(floating.context, { role: "tooltip" }),
86
87
  useDismiss(floating.context),
87
88
  useDelayGroup(floating.context, { id })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Tooltip.tsx"],
4
- "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
- "mappings": "AAuCM;AAvCN,OAAO;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAqB,UAAU,OAAO,4BAA4B;AAElE,SAAS,+BAA8C;AACvD,SAAS,yBAAyB;AAClC;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,QAAqB,wBAAwB;AACtD,YAAY,WAAW;AAEvB,MAAM,iBAAiB,MAAM;AAAA,EAC3B,CACE,EAAE,gBAAgB,GAAG,MAAM,GAC3B,QACG;AACH,UAAM,cAAc,gBAAgB,cAAc;AAClD,UAAM,SAAS,iBAAiB,iBAAiB,YAAY,eAAe,CAAC;AAC7E,UAAM,UAAU,MAAM,QAAQ,OAAO,QAAQ,kBAAkB,QAAQ,SAAS,EAAE;AAClF,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,qBAAmB;AAAA,QACnB,WAAW;AAAA,QACX;AAAA,QACA,eAAc;AAAA,QACd;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAEA,MAAM,eAAe,MAAM,WAAW,CAAC,OAA0B,QAAa;AAC5E,SAAO,oBAAC,gBAAa,eAAc,gBAAe,KAAW,GAAG,OAAO;AACzE,CAAC;AAsBM,MAAM,eAAe,CAAC,EAAE,UAAU,MAAM,MAAwC;AACrF,SACE,oBAAC,sBAAmB,OAAO,MAAM,QAAQ,MAAM,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,CAAC,GAC1E,UACH;AAEJ;AAEO,MAAM,UAAU;AAAA,EACpB,CAAC,UAAgD;AAChD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,SAAS,OAAO,cAAc,cAC1B,MACA,OAAO,cAAc,WACrB,YACA;AAAA,MACJ,cAAc;AAAA,MACd,GAAG;AAAA,IACL,IAAI;AACJ,UAAM,cAAc,gBAAgB,cAAc;AAClD,UAAM,aAAa,MAAM,OAA0B,IAAI;AACvD,UAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM,SAAS,KAAK;AAClE,UAAM,EAAE,OAAO,YAAY,aAAa,IAAI,qBAAqB;AACjE,UAAM,QAAQ,aAAa;AAC3B,UAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,KAAK;AAC5C,UAAM,KAAK,MAAM;AAEjB,UAAM,eAAe,SAAS,CAACA,UAAS;AACtC,cAAQA,KAAI;AACZ,UAAIA,OAAM;AACR,qBAAa,EAAE;AAAA,MACjB;AACA,2DAAmBA;AAAA,IACrB,CAAC;AAED,UAAM,gBAA+B,CAACC,WAAU;AAE9C,YAAM,WAAW,YAAY;AAAA,QAC3B,GAAGA;AAAA,QACH;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,EAAE,mBAAmB,iBAAiB,IAAI,gBAAgB;AAAA,QAC9D,SAAS,SAAS,SAAS,EAAE,OAAO,OAAO,CAAC;AAAA,QAC5C,SAAS,SAAS,OAAO;AAAA,QACzB,QAAQ,SAAS,SAAS,EAAE,MAAM,UAAU,CAAC;AAAA,QAC7C,WAAW,SAAS,OAAO;AAAA,QAC3B,cAAc,SAAS,SAAS,EAAE,GAAG,CAAC;AAAA,MACxC,CAAC;AACD,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,qBAAqB,MAAM,YAAY,eAAe,CAAC,IAAI,OAAO,IAAI,CAAC;AAC7E,UAAM,oBAAoB,MAAM,YAAY,MAAM,mBAAmB,IAAI,GAAG,CAAC,CAAC;AAC9E,UAAM,uBAAuB,MAAM,YAAY,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AAClF,UAAM,YAAY,MAAM;AACxB,UAAM,gBAAgB,kBAAkB,QAAQ,SAAS,EAAE,EAAE;AAC7D,UAAM,OAAO,IAAI;AAEjB,WACE,oBAAC,wBAAwB,UAAxB,EAAiC,OAAO,oBAEvC,8BAAC,UAAO,MAA2B,GAAG,aAAc,GAAG,WACrD;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,YAAY;AAAA,QACzB;AAAA,QACA;AAAA,QACA,iBAAiB;AAAA,QACjB,UAAS;AAAA,QACT;AAAA,QACA,cAAc;AAAA,QACd,cAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QAEC;AAAA;AAAA,IACH,GACF,GACF;AAAA,EAEJ;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AACF;AAEA,QAAQ,cAAc;AAEtB,MAAM,SAAS,MAAM;AAAC;",
4
+ "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n focus?: {\n enabled?: boolean\n keyboardOnly?: boolean\n }\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n focus,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context, focus),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["open", "props"]
7
7
  }
@@ -53,6 +53,7 @@ const Tooltip = withStaticProperties(
53
53
  delay: delayProp,
54
54
  restMs = typeof delayProp === "undefined" ? 500 : typeof delayProp === "number" ? delayProp : 0,
55
55
  onOpenChange: onOpenChangeProp,
56
+ focus,
56
57
  ...restProps
57
58
  } = props;
58
59
  const popperScope = usePopoverScope(__scopePopover);
@@ -77,7 +78,7 @@ const Tooltip = withStaticProperties(
77
78
  });
78
79
  const { getReferenceProps, getFloatingProps } = useInteractions([
79
80
  useHover(floating.context, { delay, restMs }),
80
- useFocus(floating.context),
81
+ useFocus(floating.context, focus),
81
82
  useRole(floating.context, { role: "tooltip" }),
82
83
  useDismiss(floating.context),
83
84
  useDelayGroup(floating.context, { id })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Tooltip.tsx"],
4
- "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n focus?: {\n enabled?: boolean\n keyboardOnly?: boolean\n }\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n focus,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context, focus),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["open", "props"]
7
7
  }
@@ -53,6 +53,7 @@ const Tooltip = withStaticProperties(
53
53
  delay: delayProp,
54
54
  restMs = typeof delayProp === "undefined" ? 500 : typeof delayProp === "number" ? delayProp : 0,
55
55
  onOpenChange: onOpenChangeProp,
56
+ focus,
56
57
  ...restProps
57
58
  } = props;
58
59
  const popperScope = usePopoverScope(__scopePopover);
@@ -77,7 +78,7 @@ const Tooltip = withStaticProperties(
77
78
  });
78
79
  const { getReferenceProps, getFloatingProps } = useInteractions([
79
80
  useHover(floating.context, { delay, restMs }),
80
- useFocus(floating.context),
81
+ useFocus(floating.context, focus),
81
82
  useRole(floating.context, { role: "tooltip" }),
82
83
  useDismiss(floating.context),
83
84
  useDelayGroup(floating.context, { id })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Tooltip.tsx"],
4
- "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport { Popper, PopperProps, usePopperContext } from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"TooltipContent\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"TooltipArrow\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n focus?: {\n enabled?: boolean\n keyboardOnly?: boolean\n }\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nexport const Tooltip = withStaticProperties(\n ((props: ScopedProps<TooltipProps, 'Popover'>) => {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n focus,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context, focus),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n }) as React.FC<TooltipProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n }\n)\n\nTooltip.displayName = 'Tooltip'\n\nconst voidFn = () => {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["open", "props"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/tooltip",
3
- "version": "1.2.17",
3
+ "version": "1.2.18",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -24,17 +24,17 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@floating-ui/react-dom-interactions": "0.8.1",
27
- "@tamagui/compose-refs": "^1.2.17",
28
- "@tamagui/core": "^1.2.17",
29
- "@tamagui/create-context": "^1.2.17",
30
- "@tamagui/floating": "^1.2.17",
31
- "@tamagui/get-size": "^1.2.17",
32
- "@tamagui/polyfill-dev": "^1.2.17",
33
- "@tamagui/popover": "^1.2.17",
34
- "@tamagui/popper": "^1.2.17",
35
- "@tamagui/stacks": "^1.2.17",
36
- "@tamagui/text": "^1.2.17",
37
- "@tamagui/use-controllable-state": "^1.2.17"
27
+ "@tamagui/compose-refs": "^1.2.18",
28
+ "@tamagui/core": "^1.2.18",
29
+ "@tamagui/create-context": "^1.2.18",
30
+ "@tamagui/floating": "^1.2.18",
31
+ "@tamagui/get-size": "^1.2.18",
32
+ "@tamagui/polyfill-dev": "^1.2.18",
33
+ "@tamagui/popover": "^1.2.18",
34
+ "@tamagui/popper": "^1.2.18",
35
+ "@tamagui/stacks": "^1.2.18",
36
+ "@tamagui/text": "^1.2.18",
37
+ "@tamagui/use-controllable-state": "^1.2.18"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "react": "*",
@@ -42,7 +42,7 @@
42
42
  "react-native": "*"
43
43
  },
44
44
  "devDependencies": {
45
- "@tamagui/build": "^1.2.17",
45
+ "@tamagui/build": "^1.2.18",
46
46
  "react": "^18.2.0",
47
47
  "react-dom": "^18.2.0",
48
48
  "react-native": "*"
package/src/Tooltip.tsx CHANGED
@@ -57,6 +57,10 @@ const TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {
57
57
  export type TooltipProps = PopperProps & {
58
58
  children?: React.ReactNode
59
59
  onOpenChange?: (open: boolean) => void
60
+ focus?: {
61
+ enabled?: boolean
62
+ keyboardOnly?: boolean
63
+ }
60
64
  groupId?: string
61
65
  restMs?: number
62
66
  delay?:
@@ -94,6 +98,7 @@ export const Tooltip = withStaticProperties(
94
98
  ? delayProp
95
99
  : 0,
96
100
  onOpenChange: onOpenChangeProp,
101
+ focus,
97
102
  ...restProps
98
103
  } = props
99
104
  const popperScope = usePopoverScope(__scopePopover)
@@ -121,7 +126,7 @@ export const Tooltip = withStaticProperties(
121
126
  })
122
127
  const { getReferenceProps, getFloatingProps } = useInteractions([
123
128
  useHover(floating.context, { delay, restMs }),
124
- useFocus(floating.context),
129
+ useFocus(floating.context, focus),
125
130
  useRole(floating.context, { role: 'tooltip' }),
126
131
  useDismiss(floating.context),
127
132
  useDelayGroup(floating.context, { id }),
@@ -5,6 +5,10 @@ import * as React from 'react';
5
5
  export type TooltipProps = PopperProps & {
6
6
  children?: React.ReactNode;
7
7
  onOpenChange?: (open: boolean) => void;
8
+ focus?: {
9
+ enabled?: boolean;
10
+ keyboardOnly?: boolean;
11
+ };
8
12
  groupId?: string;
9
13
  restMs?: number;
10
14
  delay?: number | {
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../src/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;AAa9B,OAAO,EAAE,UAAU,EAAyC,MAAM,eAAe,CAAA;AAcjF,OAAO,EAAU,WAAW,EAAoB,MAAM,iBAAiB,CAAA;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA4B9B,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EACF,MAAM,GACN;QACE,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACN,CAAA;AAED,KAAK,KAAK,GACN,MAAM,GACN,OAAO,CAAC;IACN,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAC,CAAA;AAEN,eAAO,MAAM,YAAY;eAAsC,GAAG;WAAS,KAAK;iBAM/E,CAAA;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFnB,CAAA"}
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../src/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;AAa9B,OAAO,EAAE,UAAU,EAAyC,MAAM,eAAe,CAAA;AAcjF,OAAO,EAAU,WAAW,EAAoB,MAAM,iBAAiB,CAAA;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA4B9B,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EACF,MAAM,GACN;QACE,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACN,CAAA;AAED,KAAK,KAAK,GACN,MAAM,GACN,OAAO,CAAC;IACN,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAC,CAAA;AAEN,eAAO,MAAM,YAAY;eAAsC,GAAG;WAAS,KAAK;iBAM/E,CAAA;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFnB,CAAA"}