Search provides the ability to narrow down data using a specialized TextField.
ariaLabel) in place of a visible label when Search sits in a toolbar or page header.label) when Search sits outside a compact layout.isLoading). Never disable the field (isDisabled) during loading.icon) — defaults to the magnifying glass ("search"). Replace it only when another icon better describes the scope of the search.icon={null}) — remove the icon only when Search sits in a menu or panel narrow enough that the icon crowds the text.size="sm") — the default. Use in toolbars, page headers, and filter rows.size="md") — use when Search is the primary control on the page or sits beside medium form controls.space-3200 (256px) to stay compact next to toolbar controls.w="full" with maxW="full") — use when the field ties to full-width content it filters.isActive) — applies the active styling programmatically.isDisabled) — blocks interaction and updates the background and text color.isLoading) — shows a spinner inside the field while results are fetched.isInvalid with error) — applies critical styling and renders the error message below the field.description to name what the query matches or explain supported syntax. Write short, complete sentences. Never repeat the placeholder.onSearchInput and onSearch are required. onSearchInput receives every value change; onSearch receives the value when a search is triggered.onSearch fires only when a trigger prop is set: shouldSearchOnEnter, shouldSearchOnInput, shouldSearchOnBlur, shouldSearchOnClear, or shouldSearchOnDebounce (milliseconds, must be greater than 0). All default to off.value and update it from onSearchInput.onSearchInput is provided — there is no isClearable prop. Clearing calls onClear, then onSearchInput(''), then onSearch('') only when shouldSearchOnClear is set.placeholder falls back to ariaLabel when not set. Set placeholder explicitly when the accessible label and hint text differ.label, description, and error accept rich content in place of a plain string: React takes a ReactNode; Ember takes the :label, :description, and :error named blocks. Use this for labels with tooltips or icons, and descriptions or errors with inline links.elementBefore and elementAfter render custom content inside the input wrapper, forwarded to TextField. In Ember, use the :elementBefore / :elementAfter named blocks.max-width on the component; override both w and maxW to go full width.label, ariaLabel, description, error, isInvalid, isDisabled).unsafe_inputWrapperClassName applies classes to the element wrapping the input; wrapperRef (React) and wrapperModifier (Ember) reach that same element.<PlumaSearch> with @argName args. Splattributes land on the input element, so pass container classes through @className. The Ember signature is PlumaSearchSignature.