From 1a2241c40e10193c5ff7008a7b7b36cc1d855d96 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Tue, 25 Mar 2025 15:55:45 +0900 Subject: initial commit --- components/kbd.tsx | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 components/kbd.tsx (limited to 'components/kbd.tsx') diff --git a/components/kbd.tsx b/components/kbd.tsx new file mode 100644 index 00000000..86af5c6f --- /dev/null +++ b/components/kbd.tsx @@ -0,0 +1,54 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const kbdVariants = cva( + "select-none rounded border px-1.5 py-px font-mono text-[0.7rem] font-normal shadow-sm disabled:opacity-50", + { + variants: { + variant: { + default: "bg-accent text-accent-foreground", + outline: "bg-background text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface KbdProps + extends React.ComponentPropsWithoutRef<"kbd">, + VariantProps { + /** + * The title of the `abbr` element inside the `kbd` element. + * @default undefined + * @type string | undefined + * @example title="Command" + */ + abbrTitle?: string +} + +const Kbd = React.forwardRef( + ({ abbrTitle, children, className, variant, ...props }, ref) => { + return ( + + {abbrTitle ? ( + + {children} + + ) : ( + children + )} + + ) + } +) +Kbd.displayName = "Kbd" + +export { Kbd } -- cgit v1.2.3