Command Palette
poyraz/command-paletteFreeComponent
Poyraz Soft Glass command-palette component with standardized floating and overlay behavior.
Install it
npx shadcn@latest add https://ui.poyrazavsever.com/r/command-palette.jsonSource
1"use client";23import * as React from "react";4import * as DialogPrimitive from "@radix-ui/react-dialog";5import { VisuallyHidden } from "@radix-ui/react-visually-hidden";6import { Search, X } from "lucide-react";78import { cn } from "@/lib/utils";9import {10 floatingItemVariants,11 overlaySurfaceVariants,12 overlayVariants,13 type FloatingItemProps,14 type OverlayProps,15 type OverlaySurfaceProps,16} from "@/components/ui/recipes";1718/* ================================================================== */19/* COMMAND PALETTE — Cmd+K global search / command overlay */20/* ================================================================== */2122/* ── Context ──────────────────────────────────────────────────────── */2324interface CommandPaletteContextValue {25 search: string;26 setSearch: React.Dispatch<React.SetStateAction<string>>;27 selectedItemId: string | null;28 setSelectedItemId: React.Dispatch<React.SetStateAction<string | null>>;29}3031const CommandPaletteCtx = React.createContext<CommandPaletteContextValue>({32 search: "",33 setSearch: () => {},34 selectedItemId: null,35 setSelectedItemId: () => {},36});3738/* ── Root ─────────────────────────────────────────────────────────── */3940interface CommandPaletteProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root> {41 children: React.ReactNode;42}4344function CommandPalette({ children, ...props }: CommandPaletteProps) {45 const [search, setSearch] = React.useState("");46 const [selectedItemId, setSelectedItemId] = React.useState<string | null>(null);4748 // Reset search when closed49 const handleOpenChange = (open: boolean) => {50 if (!open) {51 setSearch("");52 setSelectedItemId(null);53 }54 props.onOpenChange?.(open);55 };5657 return (58 <CommandPaletteCtx.Provider value={{ search, setSearch, selectedItemId, setSelectedItemId }}>59 <DialogPrimitive.Root {...props} onOpenChange={handleOpenChange}>60 {children}61 </DialogPrimitive.Root>62 </CommandPaletteCtx.Provider>63 );64}65CommandPalette.displayName = "CommandPalette";6667/* ── Trigger ──────────────────────────────────────────────────────── */6869// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from poyraz
All 71 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | poyraz | Components | Free | 2 deps | |
| Alertalert | poyraz | Components | Free | 2 deps | |
| Announcement Barannouncement-bar | poyraz | Components | Free | 2 deps | |
| Autocompleteautocomplete | poyraz | Components | Free | 1 dep | |
| Avataravatar | poyraz | Components | Free | 2 deps | |
| Badgebadge | poyraz | Components | Free | 1 dep | |
| Bg Patternbg-pattern | poyraz | Components | Free | no deps | |
| Breadcrumbbreadcrumb | poyraz | Components | Free | 1 dep |
