label) so users understand the purpose of the field at a glance.ariaLabel) when a visible label isn't possible.type="text") — the default. Use for names, emails, and other short-form text.type="password") — masks input and adds a toggle button to unmask and mask it.size="md") — the default size, suitable for most use cases.size="sm") — for dense layouts and smaller viewports.icon) — renders to the left of the field text. Use to emphasize the field's meaning, such as denoting search.isActive) — applies the active styling programmatically.isDisabled) — blocks all interaction and updates the background and text color.isLoading) — shows a spinner inside the field while a background job runs.isInvalid with error) — applies danger styling and renders the error message below the field.isClearable with onClear) — resets the field to its empty state. The button is hidden while the field is empty.type="password" fields and swaps its icon to reflect the current visibility state.placeholder empty for most fields — a blank field reads more clearly as unfilled.description text as short, complete sentences giving hints, formatting guidance, or constraints.label, description, and error accept rich content in place of a plain string: React takes a ReactNode directly; Ember takes the :label, :description, and :error named blocks. Use this for labels with icons or optional indicators, and for descriptions or errors with inline links.description and error both render below the field when both are set. Only the aria-describedby wiring changes: it points at the error and drops the description id once an error is present.error alone applies the invalid styling; isInvalid is not required alongside it.isClearable requires onClear — the clear button does not render without both. It is also hidden when isDisabled is set.shouldShowPasswordVisibilityToggle defaults to true and only applies to type="password". Set it to false to hide the toggle.iconColor defaults to "subtle" and is forced to "disabled" when the field is disabled.value without onChange or onInput renders an uncontrolled field — the value is applied as the input's default.label, ariaLabel, or ariaLabelledby is provided.elementBefore and elementAfter render custom content inside the input wrapper: elementBefore in the leading slot after any icon, elementAfter in the trailing slot after the loading spinner, clear button, and password-visibility toggle. In Ember, pass a component or use the :elementBefore / :elementAfter named blocks.unsafe_leftSectionComponent and unsafe_rightSectionComponent are deprecated. Use elementBefore and elementAfter instead.size values "medium" and "small" are deprecated. Use "md" and "sm".unsafe_isLegacy is deprecated — components already render in the target style by default.shouldAllowAutofill defaults to false, which disables browser autofill and password managers. Set it to true for fields where autofill is wanted.unsafe_inputWrapperClassName applies additional classes to the element wrapping the input; wrapperRef (React) and wrapperModifier (Ember) reach that same element.<PlumaTextField> with @argName args. Splattributes land on the input element, so pass container classes through @className rather than class.