Skip to content

Commit 6a5c2eb

Browse files
committed
implement tooltip and popover arrows
1 parent 10957ea commit 6a5c2eb

File tree

2 files changed

+28
-17
lines changed

2 files changed

+28
-17
lines changed

src/components/ui/popover.tsx

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,28 @@ const PopoverTrigger = PopoverPrimitive.Trigger
1010
const PopoverContent = React.forwardRef<
1111
React.ElementRef<typeof PopoverPrimitive.Content>,
1212
React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>
13-
>(({ className, align = "center", sideOffset = 4, ...props }, ref) => (
14-
<PopoverPrimitive.Portal>
15-
<PopoverPrimitive.Content
16-
ref={ref}
17-
align={align}
18-
sideOffset={sideOffset}
19-
className={cn(
20-
"text-popover-foreground z-popover w-72 rounded-md border bg-background-highlight p-4 shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
21-
className
22-
)}
23-
{...props}
24-
/>
25-
</PopoverPrimitive.Portal>
26-
))
13+
>(
14+
(
15+
{ className, children, align = "center", sideOffset = 4, ...props },
16+
ref
17+
) => (
18+
<PopoverPrimitive.Portal>
19+
<PopoverPrimitive.Content
20+
ref={ref}
21+
align={align}
22+
sideOffset={sideOffset}
23+
className={cn(
24+
"text-popover-foreground z-popover w-72 rounded-md border bg-background-highlight p-4 shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
25+
className
26+
)}
27+
{...props}
28+
>
29+
{children}
30+
<PopoverPrimitive.Arrow className="fill-background-highlight" />
31+
</PopoverPrimitive.Content>
32+
</PopoverPrimitive.Portal>
33+
)
34+
)
2735
PopoverContent.displayName = PopoverPrimitive.Content.displayName
2836

2937
const PopoverClose = PopoverPrimitive.Close

src/components/ui/tooltip.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,19 @@ const TooltipTrigger = TooltipPrimitive.Trigger
1212
const TooltipContent = React.forwardRef<
1313
React.ElementRef<typeof TooltipPrimitive.Content>,
1414
React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
15-
>(({ className, sideOffset = 4, ...props }, ref) => (
15+
>(({ className, children, sideOffset = 4, ...props }, ref) => (
1616
<TooltipPrimitive.Content
1717
ref={ref}
1818
sideOffset={sideOffset}
1919
className={cn(
20-
"z-tooltip max-w-[320px] overflow-hidden rounded-md border bg-background-highlight p-4 text-sm text-body shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
20+
"z-tooltip max-w-[320px] overflow-hidden rounded-md bg-background-highlight p-4 text-sm text-body shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
2121
className
2222
)}
2323
{...props}
24-
/>
24+
>
25+
{children}
26+
<TooltipPrimitive.Arrow className="fill-background-highlight" />
27+
</TooltipPrimitive.Content>
2528
))
2629
TooltipContent.displayName = TooltipPrimitive.Content.displayName
2730

0 commit comments

Comments
 (0)