Files
shadcn-ui/apps/v4/public/r/styles/base-nova/tooltip-example.json
shadcn 47c47eaed2 feat: add docs for base-ui components (#9304)
* feat: add base and radix docs

* feat: transform code for display

* fix

* fix

* fix

* fix

* fix

* chore: remove claude files

* fix

* fix

* fix

* chore: run format:write

* fix

* feat: add more examples

* fix

* feat: add aspect-ratio

* feat: add avatar

* feat: add badge

* feat: add breadcrumb

* fix

* feat: add button

* fix

* fix

* fix

* feat: add calendar and card

* feat: add carousel

* fix: chart

* feat: add checkbox

* feat: add collapsible

* feat: add combobox

* feat: add command

* feat: add context menu

* feat: add data-table dialog and drawer

* feat: dropdown-menu

* feat: add date-picker

* feat: add empty

* feat: add field and hover-card

* fix: input

* feat: add input

* feat: add input-group

* feat: add input-otp

* feat: add item

* feat: add kbd and label

* feat: add menubar

* feat: add native-select

* feat: add more components

* feat: more components

* feat: more components

* feat: add skeleton, slider and sonner

* feat: add spinner and switch

* feat: add more components

* fix: tabs

* fix: tabs

* feat: add docs for sidebar

* fix

* fix

* fi

* docs: update

* fix: create page

* fix

* fix

* chore: add changelog

* fix
2026-01-20 19:31:38 +04:00

19 lines
5.2 KiB
JSON

{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/tooltip-example.tsx",
"content": "\"use client\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/base-nova/components/example\"\nimport { Button } from \"@/registry/base-nova/ui/button\"\nimport { Kbd } from \"@/registry/base-nova/ui/kbd\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/base-nova/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function TooltipExample() {\n return (\n <ExampleWrapper>\n <TooltipBasic />\n <TooltipSides />\n <TooltipWithIcon />\n <TooltipLongContent />\n <TooltipDisabled />\n <TooltipWithKeyboard />\n <TooltipOnLink />\n <TooltipFormatted />\n </ExampleWrapper>\n )\n}\n\nfunction TooltipBasic() {\n return (\n <Example title=\"Basic\">\n <Tooltip>\n <TooltipTrigger render={<Button variant=\"outline\" className=\"w-fit\" />}>\n Show Tooltip\n </TooltipTrigger>\n <TooltipContent>\n <p>Add to library</p>\n </TooltipContent>\n </Tooltip>\n </Example>\n )\n}\n\nfunction TooltipSides() {\n return (\n <Example title=\"Sides\">\n <div className=\"flex flex-wrap gap-2\">\n {([\"top\", \"right\", \"bottom\", \"left\"] as const).map((side) => (\n <Tooltip key={side}>\n <TooltipTrigger\n render={<Button variant=\"outline\" className=\"w-fit capitalize\" />}\n >\n {side}\n </TooltipTrigger>\n <TooltipContent side={side}>\n <p>Add to library</p>\n </TooltipContent>\n </Tooltip>\n ))}\n </div>\n </Example>\n )\n}\n\nfunction TooltipWithIcon() {\n return (\n <Example title=\"With Icon\">\n <Tooltip>\n <TooltipTrigger render={<Button variant=\"ghost\" size=\"icon\" />}>\n <IconPlaceholder\n lucide=\"InfoIcon\"\n tabler=\"IconInfoCircle\"\n hugeicons=\"AlertCircleIcon\"\n phosphor=\"InfoIcon\"\n remixicon=\"RiInformationLine\"\n />\n <span className=\"sr-only\">Info</span>\n </TooltipTrigger>\n <TooltipContent>\n <p>Additional information</p>\n </TooltipContent>\n </Tooltip>\n </Example>\n )\n}\n\nfunction TooltipLongContent() {\n return (\n <Example title=\"Long Content\">\n <Tooltip>\n <TooltipTrigger render={<Button variant=\"outline\" className=\"w-fit\" />}>\n Show Tooltip\n </TooltipTrigger>\n <TooltipContent>\n To learn more about how this works, check out the docs. If you have\n any questions, please reach out to us.\n </TooltipContent>\n </Tooltip>\n </Example>\n )\n}\n\nfunction TooltipDisabled() {\n return (\n <Example title=\"Disabled\">\n <Tooltip>\n <TooltipTrigger render={<span className=\"inline-block w-fit\" />}>\n <Button variant=\"outline\" disabled>\n Disabled\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>This feature is currently unavailable</p>\n </TooltipContent>\n </Tooltip>\n </Example>\n )\n}\n\nfunction TooltipWithKeyboard() {\n return (\n <Example title=\"With Keyboard Shortcut\">\n <Tooltip>\n <TooltipTrigger render={<Button variant=\"outline\" size=\"icon-sm\" />}>\n <IconPlaceholder\n lucide=\"SaveIcon\"\n tabler=\"IconDeviceFloppy\"\n hugeicons=\"FloppyDiskIcon\"\n phosphor=\"FloppyDiskIcon\"\n remixicon=\"RiSaveLine\"\n />\n </TooltipTrigger>\n <TooltipContent className=\"pr-1.5\">\n <div className=\"flex items-center gap-2\">\n Save Changes <Kbd>S</Kbd>\n </div>\n </TooltipContent>\n </Tooltip>\n </Example>\n )\n}\n\nfunction TooltipOnLink() {\n return (\n <Example title=\"On Link\">\n <Tooltip>\n <TooltipTrigger\n render={\n <a\n href=\"#\"\n className=\"text-primary w-fit text-sm underline-offset-4 hover:underline\"\n onClick={(e) => e.preventDefault()}\n />\n }\n >\n Learn more\n </TooltipTrigger>\n <TooltipContent>\n <p>Click to read the documentation</p>\n </TooltipContent>\n </Tooltip>\n </Example>\n )\n}\n\nfunction TooltipFormatted() {\n return (\n <Example title=\"Formatted Content\">\n <Tooltip>\n <TooltipTrigger render={<Button variant=\"outline\" className=\"w-fit\" />}>\n Status\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"flex flex-col gap-1\">\n <p className=\"font-semibold\">Active</p>\n <p className=\"text-xs opacity-80\">Last updated 2 hours ago</p>\n </div>\n </TooltipContent>\n </Tooltip>\n </Example>\n )\n}\n",
"type": "registry:example"
}
],
"type": "registry:example"
}