A minor release: a new extra-large VdModal size, broad accessibility & lifecycle hardening, and a security-hardened HTML sanitizer. No breaking changes.
New
VdModalxlsizeVdModalgains a fourth size tier —size="xl"(987px, via the--vd-modal-width-xltoken and.vd-modal-panel-xlclass) — for release notes, side-by-side content, and wider forms.
Accessibility
- Dialogs, tabs, selects & ratings
VdModalandVdOffcanvasnow trap focus, restore it to the opener on close, and release the body scroll lock on unmount;VdTabsimplements the full WAI-ARIA tabs pattern (arrow-key navigation + roving tabindex);VdCustomSelectexposesaria-activedescendant;VdRatingis a valid single-checked radiogroup; anduseTimepickeris now keyboard-operable.
Security & fixes
- HTML sanitizer hardening
sanitizeHtmlnow correctly keeps allow-listed inline SVG (a case-mismatched allowlist had silently stripped all SVG) and scrubs dangerous inlinestylevalues underallowStyle.useClickOutsidenow attaches when created already-enabled, anduseStepperno longer emits a spurious change on mount.
Internal
- Token-parity gate
A test-only guard asserts the generated token data stays in sync with the authored token source, catching drift in CI.