Astro's compiler renders <selectedcontent></selectedcontent> without
its closing tag, treating it as a void element. That broke the
post-build `prettier --parser html` pass on preview/dist output
(stray </span> the parser doesn't expect). Render it through
set:html so the closing tag survives into the emitted markup.
Zero-JS rich <select> built on the appearance: base-select API
(button + selectedcontent + custom <option> markup, dropdown-menu
tokens for the picker). Chromium-only for now — unsupported browsers
fall back to a plain, working native select since the extra markup
isn't part of the option list model there.
Wired into preview/form-elements.astro with 8 usage examples
(status dot, avatar, flag, badge, groups, primary+description,
disabled option, plain).
`Render Modal as real markup` (#2742) reformatted ~140 files back to
tabs/semicolons, breaking the Prettier config added by the Astro
quality gates (#2749). Re-run prettier --write to restore it, and fix
the type errors it had been masking: HTMLElement casts and `this`
typing in ChangePasswordModalContent/ConfirmDeleteModalContent
scripts, plain-JS syntax in the inline-injected progress.astro script,
narrowed prop unions in Button/Check/Spinner, nullable icon svg casts
in Icons/Rating, and a duplicate firstLetters/invalid `placeholder`
attribute in Select.astro. Also fix shared/vitest.config.mts's stale
`astro/lib/**/*.test.ts` include glob left over from the shared source
restructure, which made `pnpm test` report zero test files.