Skip to main content

Combobox — Maquina Components

Displays a searchable dropdown with autocomplete for selecting from a list.

Usage

<%= render "components/combobox", placeholder: "Select..." do |combobox_id| %>
  <%= render "components/combobox/trigger", for_id: combobox_id, placeholder: "Select..." %>

  <%= render "components/combobox/content", id: combobox_id do %>
    <%= render "components/combobox/input", placeholder: "Search..." %>

    <%= render "components/combobox/list" do %>
      <%= render "components/combobox/option", value: "one" do %>Option One<% end %>
      <%= render "components/combobox/option", value: "two" do %>Option Two<% end %>
    <% end %>

    <%= render "components/combobox/empty" %>
  <% end %>
<% end %>

Examples

With Selection

<%= render "components/combobox/option", value: "active", selected: true do %>Active<% end %>
<%= render "components/combobox/option", value: "archived", disabled: true do %>Archived<% end %>

With Groups

<%= render "components/combobox/list" do %>
  <%= render "components/combobox/group" do %>
    <%= render "components/combobox/label", text: "Backend" %>
    <%= render "components/combobox/option", value: "ruby" do %>Ruby<% end %>
  <% end %>

  <%= render "components/combobox/separator" %>

  <%= render "components/combobox/group" do %>
    <%= render "components/combobox/label", text: "Frontend" %>
    <%= render "components/combobox/option", value: "js" do %>JavaScript<% end %>
  <% end %>
<% end %>

API Reference

Combobox

Parameter Type Default Description
id String nil Custom ID, auto-generated if nil
name String nil Form input name
value String nil Pre-selected value
placeholder String "Select..." Placeholder text
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes

Combobox Trigger

Parameter Type Default Description
for_id String required ID of content popover
placeholder String "Select..." Placeholder text
variant Symbol :outline Button variant
size Symbol :default Button size
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes

Combobox Content

Parameter Type Default Description
id String required Popover ID
align Symbol :start :start, :center, :end
width Symbol :default :sm, :default, :md, :lg, :full
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes

Combobox Input

Parameter Type Default Description
placeholder String "Search..." Search placeholder
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes

Combobox Option

Parameter Type Default Description
value String required Option value
selected Boolean false Whether selected
disabled Boolean false Whether disabled
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes

Combobox Empty

Parameter Type Default Description
text String "No results found." Empty state message
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes

Combobox Group

Parameter Type Default Description
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes

Combobox Label

Parameter Type Default Description
text String nil Label text
content String nil HTML content via capture
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes

Combobox List

Parameter Type Default Description
css_classes String "" Additional CSS classes
html_options Hash {} Additional HTML attributes