Persist
Wrap a form (or field group) in <velin-persist> to debounce-save named inputs to localStorage (default) or sessionStorage. Password and file inputs are never stored. Supports WCAG 2.2 3.3.7 Redundant Entry; listed in core/a11y/component-contracts.json (framework audit: pass).
Basic
<velin-persist key="contact-draft">
<form>…</form>
</velin-persist>
Attributes
| Attribute | Default | Notes |
|---|---|---|
key | default | Storage suffix (velin-persist-{key}); alphanumeric + _- |
storage | local | session for sessionStorage |
JavaScript API
document.querySelector('velin-persist').clear();
Also clears on form submit and reset.
Events
velin-persist-restore— after values are appliedvelin-persist-clear— storage entry removedvelin-persist-error— e.g.detail.error === 'quota'
Security
Never persist secrets: type="password" and type="file" are skipped. Max payload 64 KB per key. For PII in source, run npx velinstyle scan --only pii.