Bosia Bosia v1.2.9

Radio Group

Sekumpulan tombol radio untuk input pilihan tunggal.

bun x bosia@latest add radio-group

Grup radio majemuk yang dibangun di atas elemen <button role="radio"> dengan navigasi tombol panah, roving tabindex, dan input tersembunyi untuk pengiriman form.

Preview

Selected plan: pro

Props RadioGroup

Prop Type Default
value string undefined (bindable)
name string —
disabled boolean false
required boolean false
class string ""

Props RadioGroupItem

Prop Type Default
value string wajib
id string —
disabled boolean false
class string ""

Penggunaan

<script lang="ts">
	import { RadioGroup, RadioGroupItem } from "$lib/components/ui/radio-group";
	let selected = $state("option-1");
</script>

<RadioGroup bind:value={selected}>
	<RadioGroupItem value="option-1" />
	<RadioGroupItem value="option-2" />
	<RadioGroupItem value="option-3" />
</RadioGroup>

Dengan Label

<script lang="ts">
	import { RadioGroup, RadioGroupItem } from "$lib/components/ui/radio-group";
	import { Label } from "$lib/components/ui/label";
</script>

<RadioGroup value="comfortable">
	<div class="flex items-center gap-2">
		<RadioGroupItem value="compact" id="compact" />
		<Label for="compact">Compact</Label>
	</div>
	<div class="flex items-center gap-2">
		<RadioGroupItem value="comfortable" id="comfortable" />
		<Label for="comfortable">Comfortable</Label>
	</div>
</RadioGroup>

Nonaktif

Nonaktifkan seluruh grup atau item individual.

<!-- Disable all items -->
<RadioGroup disabled value="a">
	<RadioGroupItem value="a" />
	<RadioGroupItem value="b" />
</RadioGroup>

<!-- Disable one item -->
<RadioGroup value="a">
	<RadioGroupItem value="a" />
	<RadioGroupItem value="b" disabled />
</RadioGroup>

Penggunaan Form

Saat prop name diberikan pada grup, tiap item merender <input type="radio"> tersembunyi untuk pengiriman form native.

<form method="POST">
	<RadioGroup name="plan" value="pro">
		<RadioGroupItem value="free" />
		<RadioGroupItem value="pro" />
		<RadioGroupItem value="enterprise" />
	</RadioGroup>
	<button type="submit">Continue</button>
</form>
Tombol Aksi
ArrowDown / ArrowRight Pindah fokus ke item berikutnya dan pilih
ArrowUp / ArrowLeft Pindah fokus ke item sebelumnya dan pilih
Space Pilih item yang difokuskan
Tab Pindahkan fokus masuk/keluar grup radio