The same Select in five runtimes.
Every panel imports the real adapter package. The shared fixture makes the comparison like-for-like.
Show codesrc/components/react/SelectDemo.tsx
<Select options={options} defaultValue="vue" label="Adapter" />vue
Show codesrc/components/SelectDemo.vue
<Select :options="options" v-model="value" label="Adapter" />Angular
vue
Show codesrc/components/angular/select-demo.component.ts
<grassroot-select [options]="options" [(value)]="value" label="Adapter" />vue
Show codesrc/components/SelectDemo.svelte
<Select options={options} bind:value label="Adapter" />Show codesrc/components/solid/SelectDemo.tsx
<Select options={options} defaultValue="vue" label="Adapter" />What this proves
Astro emits every panel as HTML. client:visible defers the framework runtime until the selected panel is in view. The tab strip is one vanilla island shared by every example.
What this does not prove
Opening every tab keeps the islands mounted. That is the measured Astro behaviour. Teardown is intentionally deferred until a page-weight measurement says it is necessary.