OverflowElement you can mount standalone or configure under customElements inside Checkout.
Elements
Shared options
Every custom element extends the same base:name
Uniquely identifies the element on the Overflow instance. Used as:
- The key inside the Checkout
value.customElements[name]envelope. - The
fieldstring on every emittedFieldError. - The registry key for
checkout.getCustomElement(name).
Overflow instance. Duplicates log a warning and return a no-op handle.
label
Required. Renders as the input’s <label> and interpolates into default error messages (for example, "<label> is required").
defaultValue
Seeds the DOM on mount. No onChange fires from the seed; the value is visible via element.value before any interaction.
autocomplete
Forwarded to the input’s autocomplete DOM attribute. Accepts the full HTML autofill token grammar ('off', 'organization-title', 'shipping street-address', etc.).
Validation precedence
When you supplyvalidate?, the built-in required check is skipped and your callback owns validity. Without validate?, the only built-in check is required (empty input on text/number/select, unchecked box on checkbox); custom elements do not run format checks because the data is merchant-defined.
Emit shape
text,number,select:valueis the current typed value ornullwhile empty, unparseable, or unselected.checkbox:valueis always aboolean; there is nonullstate.
Standalone example
Inside Checkout
checkout.getCustomElement(name). See Custom elements section.
Element pages
Text
Free-form text input.
Number
Numeric input with mode, precision, min, max, and adornments.
Select
Dropdown with typed options.
Checkbox
Boolean opt-in or hard consent.