aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/ui/kbd.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/components/ui/kbd.tsx')
-rw-r--r--apps/web/components/ui/kbd.tsx28
1 files changed, 28 insertions, 0 deletions
diff --git a/apps/web/components/ui/kbd.tsx b/apps/web/components/ui/kbd.tsx
new file mode 100644
index 00000000..5bc48405
--- /dev/null
+++ b/apps/web/components/ui/kbd.tsx
@@ -0,0 +1,28 @@
+import { cn } from "@/lib/utils";
+
+function Kbd({ className, ...props }: React.ComponentProps<"kbd">) {
+ return (
+ <kbd
+ data-slot="kbd"
+ className={cn(
+ "pointer-events-none inline-flex h-5 w-fit min-w-5 select-none items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground",
+ "[&_svg:not([class*='size-'])]:size-3",
+ "[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10",
+ className,
+ )}
+ {...props}
+ />
+ );
+}
+
+function KbdGroup({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+ <kbd
+ data-slot="kbd-group"
+ className={cn("inline-flex items-center gap-1", className)}
+ {...props}
+ />
+ );
+}
+
+export { Kbd, KbdGroup };