Select RS Yew Examples

Default Headless Select

<Select
    name="default-select"
    placeholder="Choose a fruit"
    onchange={Callback::from(move |value: Vec<String>| state.set(value))}
>
    <Group>
        <Option value="apple" label="🍎 Apple" />
        <Option value="banana" label="🍌 Banana" />
    </Group>
</Select>

Headless Disabled Select

<Select
    name="disabled-select"
    placeholder="Disabled"
    disabled=true
>
    <Group>
        <Option value="apple" label="🍎 Apple" />
        <Option value="banana" label="🍌 Banana" />
    </Group>
</Select>

Disabled Options

<Select
    name="disabled-options"
    id="disabled-options"
    placeholder="Choose an option"
    class="w-full border border-gray-200 rounded-md p-2"
    select_class="w-full border border-gray-300 rounded-md p-2 focus:ring-2 focus:ring-green-500"
>
    <Group label="Fruits">
        <Option value="apple" label="Apple" disabled={true} />
        <Option value="banana" label="Banana" disabled={true} />
    </Group>
    <Group label="Vegetables">
        <Option value="carrot" label="Carrot" />
        <Option value="broccoli" label="Broccoli" />
    </Group>
</Select>

Custom Styled Select

<Select
    name="custom-styled-select"
    placeholder="Styled options"
    class="w-full border border-pink-300 rounded-md p-2 focus:ring-2 focus:ring-pink-500"
    select_class="w-full bg-pink-100 text-pink-900 p-2 shadow-lg rounded-lg"
>
    <Group>
        <Option value="rainbow" label="🌈 Rainbow" />
        <Option value="star" label="⭐ Star" />
    </Group>
</Select>

Grouped Select

<Select
    name="emoji-select"
    placeholder="Pick an emoji"
    onchange={Callback::from(move |value: Vec<String>| state.set(value))}
    class="w-full border border-blue-300 rounded-md p-2 focus:ring-2 focus:ring-blue-500"
    select_class="w-full p-2 shadow-lg rounded-lg"
>
    <Group label="Faces" group=true>
        <Option value="😀" label="😀 Grinning Face" />
        <Option value="😂" label="😂 Laughing Face" />
    </Group>
    <Group label="Celebrations" group=true>
        <Option value="🎉" label="🎉 Party Popper" />
        <Option value="🎂" label="🎂 Birthday Cake" />
    </Group>
</Select>

Native Multi-Select with Chips

<Select
    name="multi-select"
    placeholder="Select multiple"
    multiple=true
    onchange={Callback::from(move |value: Vec<String>| state.set(value))}
    class="w-full border border-green-300 rounded-md p-2 focus:ring-2 focus:ring-green-500"
    labels_class="flex flex-wrap gap-2 mt-2"
    label_class="bg-green-200 text-green-800 px-3 py-1 rounded-md"
    close_class="m-2 text-red-600 hover:text-red-800"
    select_class="w-full shadow-lg rounded-lg"
>
    <Group label="Vegetables">
        <Option value="🥕" label="🥕 Carrot" />
        <Option value="🥦" label="🥦 Broccoli" />
    </Group>
    <Group label="Fruits">
        <Option value="🍎" label="🍎 Apple" />
        <Option value="🍇" label="🍇 Grapes" />
    </Group>
</Select>