Selecting a value from a dropdown list of options.
isSearchable) for lists longer than 10 items.withVirtualizer) for large lists to prevent performance issues.label so users understand the purpose of the field at a glance.description to disabled options explaining why they are unavailable.isMulti) — allows one or more selections; selected values display as removable tags.isSearchable) — adds a text input inside the dropdown for filtering options.withCreate + isSearchable) — allows users to create new options when the search input does not match an existing option. Best for tags or custom attributes.size="md") — default size for most use cases.size="sm") — use for compact layouts and less prominent lists.icon to options to provide visual context such as categories or avatars.description to options when labels alone do not convey the purpose of each choice.iconComponent to render custom icons (avatars, status indicators) in place of the default icon.optionComponent to render custom option content with metadata, status indicators, or additional layout.valueComponent to customize how the selected value displays in the trigger.headerComponent or beforeOptionsComponent to add context above the option list in the dropdown.footerComponent to add supplementary actions or context below the option list.canWrap) when truncation would hide important selections.isDisabled) — prevents all interaction; field and text adopt disabled styling.isLoading) — displays a spinner icon indicating options are being loaded.isInvalid + error) — applies danger styling and displays error text below the field.isClearable) — adds a clear button to reset the field after a selection is made. Use for optional Selects.isCollapsible on a group) to let users expand and collapse sections. Use defaultIsCollapsed to start a group collapsed.tooltip to options to surface additional detail on hover or focus without inline descriptions.description or tooltip if more context is needed.options as an array of { value, label } objects. Options also accept optional description, icon, tooltip, isDisabled, and searchLabel fields.{ label: 'Group name', options: [...] }. Groups accept isCollapsible, defaultIsCollapsed, icon, isDisabled, and tooltip.value is a string or option object; onChange receives string | null. Multi-select value is an array; onChange receives string[] | null.isClearable calls onChange(null) when cleared — there is no separate onClear callback.withCreate requires isSearchable to function. Creating a new option calls onCreate(value), not onChange. The consumer must update both options and value inside the onCreate callback.canCreateNewOption accepts a function to exclude certain values from showing the "Create new" option. createOptionLabel customizes the create option text.canWrap only applies when isMulti is true.isOpen, defaultIsOpen, and onOpenChange.onLoadMore, shouldLoadMore, and isLoadingMore for paginated/infinite-scroll loading.searchInputValue and onSearchInput together to control filtering externally (the component will not filter on its own when these are provided).unsafe_popoverClassName, unsafe_popoverStyle, and unsafe_popoverSize customize the floating dropdown element.unsafe_initialSearchValue pre-fills the search input (intended for snapshots/tests only).<PlumaSelect> with @argName syntax. Named blocks {{:label}}, {{:description}}, and {{:error}} allow custom rich content for those slots.label, description, and error accept ReactNode for rich content directly as props.