agentic-ui

Tooltip

Accessible popup shown on hover/focus. Compose the styled popup parts with a raw base-ui Provider/Root for custom delay or trigger logic.

Sides

import { Button } from "@brijbyte/agentic-ui/button";
import { Tooltip } from "@brijbyte/agentic-ui/tooltip";

import "@brijbyte/agentic-ui/button.css";
import "@brijbyte/agentic-ui/tooltip.css";

export default function SidesDemo() {
  return (
    <>
      {(["top", "right", "bottom", "left"] as const).map((side) => (
        <Tooltip key={side} content={`Appears on ${side}`} side={side}>
          <Button variant="outline" size="sm">
            {side.charAt(0).toUpperCase() + side.slice(1)}
          </Button>
        </Tooltip>
      ))}
    </>
  );
}

Rich content

import { Button } from "@brijbyte/agentic-ui/button";
import { Tooltip } from "@brijbyte/agentic-ui/tooltip";

import "@brijbyte/agentic-ui/button.css";
import "@brijbyte/agentic-ui/tooltip.css";

export default function RichDemo() {
  return (
    <Tooltip
      content={
        <span>
          Keyboard shortcut:{" "}
          <kbd
            style={{
              fontFamily: "var(--font-mono)",
              fontSize: "var(--font-size-xs)",
              border: "1px solid var(--color-line)",
              borderRadius: "var(--radius-sm)",
              padding: "0 4px",
              background: "var(--color-surface-3)",
            }}
          >
            ⌘K
          </kbd>
        </span>
      }
    >
      <Button variant="ghost" size="sm">
        Command palette
      </Button>
    </Tooltip>
  );
}

Composed: base-ui Provider + styled parts

import { Tooltip as BaseTooltip } from "@base-ui/react/tooltip";
import { Button } from "@brijbyte/agentic-ui/button";
import { TooltipPositioner, TooltipPopup, TooltipArrow } from "@brijbyte/agentic-ui/tooltip";

import "@brijbyte/agentic-ui/tooltip.css";
import "@brijbyte/agentic-ui/button.css";

export default function ComposedDemo() {
  return (
    <BaseTooltip.Provider delay={300}>
      <BaseTooltip.Root>
        <BaseTooltip.Trigger
          render={
            <Button variant="outline" size="sm">
              Hover me
            </Button>
          }
        />
        <BaseTooltip.Portal>
          <TooltipPositioner side="top" sideOffset={6}>
            <TooltipPopup>
              <TooltipArrow />
              Custom delay via Provider
            </TooltipPopup>
          </TooltipPositioner>
        </BaseTooltip.Portal>
      </BaseTooltip.Root>
    </BaseTooltip.Provider>
  );
}