mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-07-09 06:55:07 +00:00
* 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
19 lines
5.2 KiB
JSON
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"
|
|
} |