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 critical 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, and aria-describedby references both, description first — matching the order they appear on screen.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.size values "medium" and "small" are deprecated. Use "md" and "sm".shouldAllowAutofill defaults to false, which disables browser autofill and password managers. Set it to true for fields where autofill is wanted.shouldAllowAutofill to true on any field collecting information about the user — name, email, address, phone, credentials. Suppressing autofill there works against WCAG 1.3.5, and on a sign-in form removes the alternative 3.3.8 expects to a user remembering their password. Keep the default only where autofill would be wrong, such as search or a one-off code.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.