ui/tooltip: refactor tooltip

This commit is contained in:
Johannes Kirschbauer
2025-08-21 17:35:13 +02:00
parent d9685acc37
commit 6afe8695de
3 changed files with 23 additions and 23 deletions

View File

@@ -55,23 +55,14 @@ export const Label = (props: LabelProps) => {
<Tooltip
placement="top"
inverted={props.inverted}
trigger={
<Icon
icon="Info"
color="tertiary"
inverted={props.inverted}
size={props.size == "default" ? "0.85em" : "0.75rem"}
/>
}
description={props.tooltip}
>
<Typography
hierarchy="body"
size="xs"
weight="medium"
inverted={!props.inverted}
>
{props.tooltip}
</Typography>
<Icon
icon="Info"
color="tertiary"
inverted={props.inverted}
size={props.size == "default" ? "0.85em" : "0.75rem"}
/>
</Tooltip>
)}
</props.labelComponent>

View File

@@ -1,4 +1,4 @@
div.tooltip-content {
.tooltipContent {
@apply z-50 px-2 py-0.5 bg-inv-4 rounded-[0.125rem] leading-none;
max-width: min(calc(100vw - 16px), 380px);

View File

@@ -1,31 +1,40 @@
import "./Tooltip.css";
import {
Tooltip as KTooltip,
TooltipRootProps as KTooltipRootProps,
} from "@kobalte/core/tooltip";
import cx from "classnames";
import { JSX } from "solid-js";
import styles from "./Tooltip.module.css";
import { Typography } from "../Typography/Typography";
export interface TooltipProps extends KTooltipRootProps {
inverted?: boolean;
trigger: JSX.Element;
children: JSX.Element;
description: JSX.Element;
animation?: "bounce";
}
export const Tooltip = (props: TooltipProps) => {
return (
<KTooltip {...props}>
<KTooltip.Trigger>{props.trigger}</KTooltip.Trigger>
<KTooltip.Trigger>{props.children}</KTooltip.Trigger>
<KTooltip.Portal>
<KTooltip.Content
class={cx("tooltip-content", {
inverted: props.inverted,
class={cx(styles.tooltipContent, {
[styles.inverted]: props.inverted,
"animate-bounce": props.animation == "bounce",
})}
>
{props.placement == "bottom" && <KTooltip.Arrow />}
{props.children}
<Typography
hierarchy="body"
size="s"
weight="medium"
color="primary"
inverted={!props.inverted}
>
{props.description}
</Typography>
{props.placement == "top" && <KTooltip.Arrow />}
</KTooltip.Content>
</KTooltip.Portal>