{ "$schema": "https://blode.co/ui/schema/registry-item.json", "name": "kbd", "title": "Kbd", "author": "Matthew Blode", "description": "A styled keyboard key indicator for displaying shortcuts and key combinations.", "files": [ { "path": "ui/kbd.tsx", "content": "import {\n ArrowCornerDownLeftIcon,\n ArrowDownIcon,\n ArrowLeftXIcon,\n ArrowUpIcon,\n ArrowWall2RightIcon,\n CmdIcon,\n ControlIcon,\n OptIcon,\n ShiftIcon,\n} from \"blode-icons-react\";\nimport { cva } from \"class-variance-authority\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\ntype KbdIcon =\n | \"mod\"\n | \"shift\"\n | \"enter\"\n | \"command\"\n | \"ctrl\"\n | \"alt\"\n | \"tab\"\n | \"backspace\"\n | \"up\"\n | \"down\";\n\nconst kbdVariants = cva(\n \"pointer-events-none inline-flex h-5 w-fit min-w-5 select-none items-center justify-center gap-1 rounded-sm px-1.5 font-medium font-sans text-xs ring-1 ring-inset [&_svg:not([class*='size-'])]:size-3\",\n {\n defaultVariants: {\n variant: \"default\",\n },\n variants: {\n variant: {\n default:\n \"bg-muted text-muted-foreground ring-border [[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background [[data-slot=tooltip-content]_&]:ring-background/20 dark:[[data-slot=tooltip-content]_&]:bg-background/10 dark:[[data-slot=tooltip-content]_&]:ring-background/10\",\n tooltip:\n \"bg-background/20 text-background ring-background/20 dark:bg-background/10 dark:ring-background/10\",\n },\n },\n },\n);\n\ninterface KbdProps extends React.ComponentProps<\"kbd\">, VariantProps {\n icon?: KbdIcon;\n}\n\nconst iconMap: Record = {\n alt: ,\n backspace: ,\n command: ,\n ctrl: ,\n down: ,\n enter: ,\n mod: ,\n shift: ,\n tab: ,\n up: ,\n};\n\nconst Kbd = ({ className, variant, children, icon, ...props }: KbdProps) => {\n const content = icon ? iconMap[icon] : children;\n\n return (\n \n {content}\n \n );\n};\n\nconst KbdGroup = ({ className, ...props }: React.ComponentProps<\"kbd\">) => (\n \n);\n\nexport { Kbd, KbdGroup };\n", "type": "registry:ui", "target": "" } ], "type": "registry:ui" }