Command
A searchable command palette component that provides quick access to navigation.
Requires JS
This component requires the command
stimulus controller.
Anatomy
Command do |c|c.triggerc.content doc.group doc.labelc.itemc.itemendc.itemc.itemendend
API Reference
Command
Name | Type | Default |
---|---|---|
open: | boolean | false |
Whether the command palette should be visible when initially rendered. When true, opens immediately on page load. | ||
modifier_key: | symbol | nil |
Modifier key for keyboard shortcut. Options: :ctrl | :alt | :shift . Used in combination with shortcut_key to create keyboard shortcuts like Ctrl+K. | ||
shortcut_key: | string | nil |
Key for keyboard shortcut (e.g., "k" for Ctrl+K). Must be used with modifier_key to create functional keyboard shortcuts. | ||
search_path: | string | nil |
URL for remote search functionality. Backend must return JSON array of { html: string, group: string } objects. Enables dynamic search results from server. | ||
search_error_text: | string | "Something went wrong, please try again." |
Error message displayed when remote search requests fail. Only relevant when using search_path. | ||
search_empty_text: | string | "No results found" |
Message shown when search returns no results, both for local filtering and remote search. | ||
search_placeholder_text: | string | "Search..." |
Placeholder text displayed in the search input field within the command palette. | ||
attributes | keyword arguments |
Command#trigger
Name | Type | |
---|---|---|
attributes | keyword arguments |
Command#content
Name | Type | |
---|---|---|
attributes | keyword arguments |
Command#group
Name | Type | |
---|---|---|
attributes | keyword arguments |
Command#label
Name | Type | |
---|---|---|
attributes | keyword arguments |
Command#item
Name | Type | Default |
---|---|---|
value: | string | nil |
URL or path to navigate to when this command item is selected. | ||
attributes | keyword arguments |
Keyboard Interactions
Key | Description |
---|---|
Space | When focus is on trigger, opens the command. |
Enter | When focus is on trigger, opens the command. When focus is on an item, selects the focused item. |
Esc | Closes the command and moves focus to trigger. |
Examples
Basic
<%= render Command.new do |c| %><%= c.trigger do %><span class="hidden lg:inline-flex">Search documentation...</span><span class="inline-flex lg:hidden">Search...</span><% end %><%= c.content do %><%= c.group do %><%= c.label { "Get Started" } %><%= c.item(value: root_path) do %><%= lucide_icon("file") %>Home<% end %><%= c.item(value: page_path("installation")) do %><%= lucide_icon("file") %>Docs<% end %><%= c.item(value: page_path("components/accordion")) do %><%= lucide_icon("file") %>Components<% end %><% end %><% end %><% end %>
<div data-controller="command" data-command-is-open-value="false" data-modifier-key="shift" data-shortcut-key="k" data-shadcn-phlexcomponents="command" class="inline-flex max-w-fit"><div style="display: none;" class="data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 pointer-events-auto" aria-hidden data-state="closed" data-command-target="overlay"></div><button role="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="command-1dec2757b5-content" data-command-target="trigger" data-action="click->command#open" data-shadcn-phlexcomponents="command-trigger" class="inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-secondary/80 px-4 py-2 has-[>svg]:px-3 bg-surface text-surface-foreground/60 dark:bg-card relative h-8 w-full justify-start pl-2.5 font-normal shadow-none sm:pr-12 md:w-40 lg:w-56 xl:w-64"><span class="hidden lg:inline-flex">Search documentation...</span><span class="inline-flex lg:hidden">Search...</span><span class="absolute top-1.5 right-1.5 hidden gap-1 sm:flex"><kbd class="bg-background text-muted-foreground pointer-events-none flex h-5 items-center justify-center gap-1 rounded border px-1 font-sans text-[0.7rem] font-medium select-none [&_svg:not([class*='size-'])]:size-3 capitalize" data-command-target="modifierKey" data-shadcn-phlexcomponents="command-kbd">shift</kbd><kbd class="bg-background text-muted-foreground pointer-events-none flex h-5 items-center justify-center gap-1 rounded border px-1 font-sans text-[0.7rem] font-medium select-none [&_svg:not([class*='size-'])]:size-3 capitalize" data-shadcn-phlexcomponents="command-kbd">k</kbd></span></button><div style="display: none;" id="command-1dec2757b5-content" tabindex="-1" role="dialog" aria-describedby="command-1dec2757b5-description" aria-labelledby="command-1dec2757b5-title" data-state="closed" data-command-target="content" data-action="command:click:outside->command#clickOutsidekeydown.up->command#highlightItem:preventkeydown.down->command#highlightItem:preventkeydown.enter->command#select" data-shadcn-phlexcomponents="command-content" class="bg-background bg-clip-padding dark:bg-neutral-900 dark:ring-neutral-800 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 duration-200 fixed gap-4 grid left-[50%] max-w-[calc(100%-2rem)] p-2 pb-11 ring-4 ring-neutral-200/80 rounded-xl shadow-2xl sm:max-w-lg top-[50%] translate-x-[-50%] translate-y-[-50%] w-full z-50 pointer-events-auto outline-none"><template><div role="group" aria-labelledby="-group-b71ca8bcd3" data-command-target="group" data-shadcn-phlexcomponents="command-group" class="scroll-mt-16 first:pt-0 pt-3"><div data-shadcn-phlexcomponents="command-label" class="text-muted-foreground px-3 pb-1 text-xs font-medium"></div></div></template><div class="text-popover-foreground flex h-full w-full flex-col overflow-hidden bg-transparent"><div class="sr-only"><h2 id="command-1dec2757b5-title">Search...</h2><p id="command-1dec2757b5-description">Search for a command to run...</p></div><label class="sr-only" id="command-1dec2757b5-search-label" for="command-1dec2757b5-search">Search...</label><div data-shadcn-phlexcomponents="command-search-input-container" class="flex h-9 items-center gap-2 border px-3 bg-input/50 border-input rounded-md"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4 shrink-0 opacity-50"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input id="command-1dec2757b5-search" placeholder="Search..." type="text" autocomplete="off" autocorrect="off" role="combobox" spellcheck="false" aria-autocomplete="list" aria-expanded="false" aria-controls="command-1dec2757b5-list" aria-labelledby="command-1dec2757b5-search-label" data-command-target="searchInput" data-action="keydown->command#inputKeydown input->command#search" data-shadcn-phlexcomponents="command-search-input" class="placeholder:text-muted-foreground flex w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50 h-9"></div><div data-command-target="listContainer" data-shadcn-phlexcomponents="command-list-container" class="mt-3 p-1 max-h-80 min-h-80 overflow-y-auto"><div role="presentation" data-command-target="empty" data-shadcn-phlexcomponents="command-text" class="py-6 text-center text-sm hidden">No results found</div><div role="presentation" data-command-target="error" data-shadcn-phlexcomponents="command-text" class="py-6 text-center text-sm hidden">Something went wrong, please try again.</div><div role="presentation" data-command-target="loading" data-shadcn-phlexcomponents="command-text" class="py-6 text-center text-sm hidden"><div class="flex justify-center" aria-label="Loading"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="animate-spin"><path d="M21 12a9 9 0 1 1-6.219-8.56"></path></svg></div></div><div id="command-1dec2757b5-list" data-command-target="list"><div role="group" aria-labelledby="command-1dec2757b5-group-4d9e0ba278" data-command-target="group" data-shadcn-phlexcomponents="command-group" class="scroll-mt-16 first:pt-0 pt-3"><div data-shadcn-phlexcomponents="command-label" class="text-muted-foreground px-3 pb-1 text-xs font-medium">Get Started</div><div role="option" tabindex="-1" data-highlighted="false" data-value="/" data-action="click->command#selectmouseover->command#highlightItem" data-command-target="item" data-shadcn-phlexcomponents="command-item" class="data-[highlighted=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 px-3 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[highlighted=true]:border-input data-[highlighted=true]:bg-input/50 h-9 rounded-md border border-transparent font-medium"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg>Home</div><div role="option" tabindex="-1" data-highlighted="false" data-value="/installation" data-action="click->command#selectmouseover->command#highlightItem" data-command-target="item" data-shadcn-phlexcomponents="command-item" class="data-[highlighted=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 px-3 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[highlighted=true]:border-input data-[highlighted=true]:bg-input/50 h-9 rounded-md border border-transparent font-medium"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg>Docs</div><div role="option" tabindex="-1" data-highlighted="false" data-value="/components/accordion" data-action="click->command#selectmouseover->command#highlightItem" data-command-target="item" data-shadcn-phlexcomponents="command-item" class="data-[highlighted=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 px-3 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[highlighted=true]:border-input data-[highlighted=true]:bg-input/50 h-9 rounded-md border border-transparent font-medium"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg>Components</div></div></div></div><div data-shadcn-phlexcomponents="command-footer" class="text-muted-foreground absolute inset-x-0 bottom-0 z-20 flex h-10 items-center gap-2 rounded-b-xl border-t border-t-neutral-100 bg-neutral-50 px-4 text-xs font-medium dark:border-t-neutral-700 dark:bg-neutral-800"><div class="flex items-center gap-2"><kbd data-shadcn-phlexcomponents="command-kbd" class="bg-background text-muted-foreground pointer-events-none flex h-5 items-center justify-center gap-1 rounded border px-1 font-sans text-[0.7rem] font-medium select-none [&_svg:not([class*='size-'])]:size-3"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 10 4 15 9 20"></polyline><path d="M20 4v7a4 4 0 0 1-4 4H4"></path></svg></kbd>Go to Page</div></div></div></div></div>
Search Path
# some_controller.rb (without jbuilder)def indexsearch_term = params[:q]data = SomeModel.query(search_term)results = []data.each do |d|results.push({html: render_to_string(CommandItem.new(value: d.name) { d.name.titleize }, layout: false),group: d.group # or nil})endrender json: resultsend# some_controller.rb (with jbuilder)def indexsearch_term = params[:q]@data = SomeModel.query(search_term)end# some_controller/index.json.jbuilderjson.array! @data do |d|json.html render CommandItem.new(value: d.name) { d.name.titleize }json.group d.group # or nilend<%= render Command.new(modifier_key: :ctrl, shortcut_key: "k", search_path: command_search_examples_path) do |c| %><%= c.trigger do %><span class="hidden lg:inline-flex">Search components...</span><span class="inline-flex lg:hidden">Search...</span><% end %><%= c.content(search_placeholder: "Search components...") do %><%= c.group do %><%= c.label { "Get Started" } %><%= c.item(value: root_path) do %><%= lucide_icon("file") %>Home<% end %><%= c.item(value: page_path("installation")) do %><%= lucide_icon("file") %>Docs<% end %><%= c.item(value: page_path("components/accordion")) do %><%= lucide_icon("file") %>Components<% end %><% end %><% end %><% end %>
<div data-controller="command" data-command-is-open-value="false" data-modifier-key="ctrl" data-shortcut-key="k" data-search-path="/examples/command_search" data-shadcn-phlexcomponents="command" class="inline-flex max-w-fit"><div style="display: none;" class="data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 pointer-events-auto" aria-hidden data-state="closed" data-command-target="overlay"></div><button role="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="command-fcb721a648-content" data-command-target="trigger" data-action="click->command#open" data-shadcn-phlexcomponents="command-trigger" class="inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-secondary/80 px-4 py-2 has-[>svg]:px-3 bg-surface text-surface-foreground/60 dark:bg-card relative h-8 w-full justify-start pl-2.5 font-normal shadow-none sm:pr-12 md:w-40 lg:w-56 xl:w-64"><span class="hidden lg:inline-flex">Search components...</span><span class="inline-flex lg:hidden">Search...</span><span class="absolute top-1.5 right-1.5 hidden gap-1 sm:flex"><kbd class="bg-background text-muted-foreground pointer-events-none flex h-5 items-center justify-center gap-1 rounded border px-1 font-sans text-[0.7rem] font-medium select-none [&_svg:not([class*='size-'])]:size-3 capitalize" data-command-target="modifierKey" data-shadcn-phlexcomponents="command-kbd">ctrl</kbd><kbd class="bg-background text-muted-foreground pointer-events-none flex h-5 items-center justify-center gap-1 rounded border px-1 font-sans text-[0.7rem] font-medium select-none [&_svg:not([class*='size-'])]:size-3 capitalize" data-shadcn-phlexcomponents="command-kbd">k</kbd></span></button><div style="display: none;" id="command-fcb721a648-content" tabindex="-1" role="dialog" aria-describedby="command-fcb721a648-description" aria-labelledby="command-fcb721a648-title" data-state="closed" data-command-target="content" data-action="command:click:outside->command#clickOutsidekeydown.up->command#highlightItem:preventkeydown.down->command#highlightItem:preventkeydown.enter->command#select" data-shadcn-phlexcomponents="command-content" search-placeholder="Search components..." class="bg-background bg-clip-padding dark:bg-neutral-900 dark:ring-neutral-800 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 duration-200 fixed gap-4 grid left-[50%] max-w-[calc(100%-2rem)] p-2 pb-11 ring-4 ring-neutral-200/80 rounded-xl shadow-2xl sm:max-w-lg top-[50%] translate-x-[-50%] translate-y-[-50%] w-full z-50 pointer-events-auto outline-none"><template><div role="group" aria-labelledby="-group-375014ed8c" data-command-target="group" data-shadcn-phlexcomponents="command-group" class="scroll-mt-16 first:pt-0 pt-3"><div data-shadcn-phlexcomponents="command-label" class="text-muted-foreground px-3 pb-1 text-xs font-medium"></div></div></template><div class="text-popover-foreground flex h-full w-full flex-col overflow-hidden bg-transparent"><div class="sr-only"><h2 id="command-fcb721a648-title">Search...</h2><p id="command-fcb721a648-description">Search for a command to run...</p></div><label class="sr-only" id="command-fcb721a648-search-label" for="command-fcb721a648-search">Search...</label><div data-shadcn-phlexcomponents="command-search-input-container" class="flex h-9 items-center gap-2 border px-3 bg-input/50 border-input rounded-md"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4 shrink-0 opacity-50"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input id="command-fcb721a648-search" placeholder="Search..." type="text" autocomplete="off" autocorrect="off" role="combobox" spellcheck="false" aria-autocomplete="list" aria-expanded="false" aria-controls="command-fcb721a648-list" aria-labelledby="command-fcb721a648-search-label" data-command-target="searchInput" data-action="keydown->command#inputKeydown input->command#search" data-shadcn-phlexcomponents="command-search-input" class="placeholder:text-muted-foreground flex w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50 h-9"></div><div data-command-target="listContainer" data-shadcn-phlexcomponents="command-list-container" class="mt-3 p-1 max-h-80 min-h-80 overflow-y-auto"><div role="presentation" data-command-target="empty" data-shadcn-phlexcomponents="command-text" class="py-6 text-center text-sm hidden">No results found</div><div role="presentation" data-command-target="error" data-shadcn-phlexcomponents="command-text" class="py-6 text-center text-sm hidden">Something went wrong, please try again.</div><div role="presentation" data-command-target="loading" data-shadcn-phlexcomponents="command-text" class="py-6 text-center text-sm hidden"><div class="flex justify-center" aria-label="Loading"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="animate-spin"><path d="M21 12a9 9 0 1 1-6.219-8.56"></path></svg></div></div><div id="command-fcb721a648-list" data-command-target="list"><div role="group" aria-labelledby="command-fcb721a648-group-28b253b968" data-command-target="group" data-shadcn-phlexcomponents="command-group" class="scroll-mt-16 first:pt-0 pt-3"><div data-shadcn-phlexcomponents="command-label" class="text-muted-foreground px-3 pb-1 text-xs font-medium">Get Started</div><div role="option" tabindex="-1" data-highlighted="false" data-value="/" data-action="click->command#selectmouseover->command#highlightItem" data-command-target="item" data-shadcn-phlexcomponents="command-item" class="data-[highlighted=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 px-3 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[highlighted=true]:border-input data-[highlighted=true]:bg-input/50 h-9 rounded-md border border-transparent font-medium"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg>Home</div><div role="option" tabindex="-1" data-highlighted="false" data-value="/installation" data-action="click->command#selectmouseover->command#highlightItem" data-command-target="item" data-shadcn-phlexcomponents="command-item" class="data-[highlighted=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 px-3 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[highlighted=true]:border-input data-[highlighted=true]:bg-input/50 h-9 rounded-md border border-transparent font-medium"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg>Docs</div><div role="option" tabindex="-1" data-highlighted="false" data-value="/components/accordion" data-action="click->command#selectmouseover->command#highlightItem" data-command-target="item" data-shadcn-phlexcomponents="command-item" class="data-[highlighted=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 px-3 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[highlighted=true]:border-input data-[highlighted=true]:bg-input/50 h-9 rounded-md border border-transparent font-medium"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg>Components</div></div></div></div><div data-shadcn-phlexcomponents="command-footer" class="text-muted-foreground absolute inset-x-0 bottom-0 z-20 flex h-10 items-center gap-2 rounded-b-xl border-t border-t-neutral-100 bg-neutral-50 px-4 text-xs font-medium dark:border-t-neutral-700 dark:bg-neutral-800"><div class="flex items-center gap-2"><kbd data-shadcn-phlexcomponents="command-kbd" class="bg-background text-muted-foreground pointer-events-none flex h-5 items-center justify-center gap-1 rounded border px-1 font-sans text-[0.7rem] font-medium select-none [&_svg:not([class*='size-'])]:size-3"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 10 4 15 9 20"></polyline><path d="M20 4v7a4 4 0 0 1-4 4H4"></path></svg></kbd>Go to Page</div></div></div></div></div>