メインコンテンツへスキップ

Select セレクト

ドロップダウンセレクトです。制御 / 非制御、キーボードナビゲーション、クリアをサポートします。

基本的な使い方​

制御セレクト

現在の値:(未選択)

import { useState } from 'react'
import { LhSelect } from '@lh-ui/react'
import type { LhSelectOption } from '@lh-ui/react'

const options: LhSelectOption[] = [
{ label: '水墨', value: 'ink' },
{ label: '丹青', value: 'danqing' },
{ label: '留白', value: 'blank' },
{ label: '工笔', value: 'gongbi' },
]

export default function Demo() {
const [value, setValue] = useState<string>('')

return (
<LhSelect
value={value}
options={options}
placeholder="画風を選択してください"
onChange={(val) => setValue(val as string)}
/>
)
}

Select Props​

プロパティ説明型使用可能な値デフォルト値
value制御値unknown——
defaultValue非制御のデフォルト値unknown——
options選択肢のリストLhSelectOption[]—[]
placeholderプレースホルダーstring—言語パックのフォールバック
disabled無効boolean—false
clearableクリア可能boolean—false
sizeサイズ'large' | 'middle' | 'small'—ConfigProvider に準拠
nameネイティブ name 属性string——
ariaLabelアクセシビリティラベルstring——
placementドロップダウン位置LhPlacement—'bottom-start'
themeVarsコンポーネントレベルのテーマ変数Record<string, string>——
sxクイックレイアウトプロパティSxProps——

LhSelectOption​

プロパティ説明型
label選択肢の表示テキストstring
value選択肢の値unknown
disabledこの選択肢を無効化boolean

Select イベント​

イベント説明コールバックシグネチャVue 対応
onChange選択時に発火(2 引数:値と選択肢オブジェクト)(value: unknown, option: LhSelectOption | undefined) => void@change
onClearクリア時に発火() => void@clear

キーボード操作​

展開後:ArrowUp / ArrowDown で選択肢をハイライト(無効項目をスキップ)、Enter で選択、Escape で閉じます。トリガーは role="combobox"、パネルは role="listbox"、選択肢は role="option" で、aria-activedescendant でハイライトを同期します。

ref​

forwardRef<HTMLDivElement> —— トリガーのルート要素です。LhSelectInstance は open() / close() / focus() を公開します。

スタイル​

import '@lh-ui/react/style/select'