İçeriğe geç
BigBang

Sık açılanlar

    ↑↓Gezin↵AçEscKapat
    EN

    Bileşenler

    Select

    Kısa ve kapalı bir listeden tek seçim; tetikleyiciden açılan bir liste.

    Storybook
    Storybook
    Kaynak kod
    Kaynak kod

    Aşağıdaki örnek Storybook’tan canlı yüklenir; denetimleri Storybook’ta açabilirsiniz.

    Canlı örnek, StorybookStorybook'ta aç

    Select, seçenekleri items ile alır. Seçim yokken placeholder görünür; tetikleyiciye tıklayınca liste açılır.

    Yardım metni burada yer alır.

    import { Select } from '@bigbang/ui';
    const items = [
    { value: 'one', label: 'Birinci seçenek' },
    { value: 'two', label: 'İkinci seçenek' },
    { value: 'three', label: 'Üçüncü seçenek', disabled: true },
    ];
    export default function Default() {
    return (
    <div className="max-w-80">
    <Select label="Alan etiketi" items={items} placeholder="Seçin" description="Yardım metni burada yer alır." />
    </div>
    );
    }

    Seçeneklere icon verilince ikon etiketin önünde görünür.

    import { Select } from '@bigbang/ui';
    const items = [
    { value: 'list', label: 'Birinci seçenek', icon: 'list' as const },
    { value: 'grid', label: 'İkinci seçenek', icon: 'layout-grid' as const },
    ];
    export default function WithIcons() {
    return (
    <div className="max-w-80">
    <Select label="Alan etiketi" items={items} defaultValue="list" />
    </div>
    );
    }

    value ve onValueChange ile seçili değeri siz tutarsınız. Seçim yokken değer null olur.

    null
    import { Select } from '@bigbang/ui';
    import { useState } from 'react';
    const items = [
    { value: 'one', label: 'Birinci seçenek' },
    { value: 'two', label: 'İkinci seçenek' },
    { value: 'three', label: 'Üçüncü seçenek', disabled: true },
    ];
    export default function Controlled() {
    const [value, setValue] = useState<string | null>(null);
    return (
    <div className="flex max-w-80 flex-col gap-sm">
    <Select label="Alan etiketi" items={items} placeholder="Seçin" value={value} onValueChange={setValue} />
    <code className="type-body-sm text-fg-subtle">{String(value)}</code>
    </div>
    );
    }

    Zorunlu ve hatalı, salt okunur ve devre dışı alanlar.

    Bir seçenek seçin.
    import { Select } from '@bigbang/ui';
    const items = [
    { value: 'one', label: 'Birinci seçenek' },
    { value: 'two', label: 'İkinci seçenek' },
    { value: 'three', label: 'Üçüncü seçenek', disabled: true },
    ];
    export default function States() {
    return (
    <>
    <div className="flex max-w-80 flex-col gap-lg">
    <Select label="Alan etiketi" items={items} placeholder="Seçin" required error="Bir seçenek seçin." />
    <Select label="Alan etiketi" items={items} defaultValue="one" readOnly />
    <Select label="Alan etiketi" items={items} defaultValue="one" disabled />
    </div>
    </>
    );
    }

    multiple ile kullanıcı listeden birden fazla seçenek işaretler; liste her seçimden sonra açık kalır ve tetikleyici seçilen etiketleri sırayla yazar. Değeri values ve onValuesChange ile yönetin. Uzun listelerde ya da arama gerekiyorsa çoklu Combobox kullanın.

    Canlı örnek, StorybookStorybook'ta aç

    Tetikleyici input token’larını, liste ortak açılır yüzeyi kullanır: color-surface-raised, color-border-overlay ve shadow-popup.

    Bir seçenek seçin.
    Bir seçenek seçin.
    import { Select } from '@bigbang/ui';
    const items = [
    { value: 'one', label: 'Birinci seçenek' },
    { value: 'two', label: 'İkinci seçenek' },
    { value: 'three', label: 'Üçüncü seçenek', disabled: true },
    ];
    export default function States() {
    return (
    <>
    <div className="flex max-w-80 flex-col gap-lg">
    <Select label="Alan etiketi" items={items} placeholder="Seçin" required error="Bir seçenek seçin." />
    <Select label="Alan etiketi" items={items} defaultValue="one" readOnly />
    <Select label="Alan etiketi" items={items} defaultValue="one" disabled />
    </div>
    </>
    );
    }