children | Snippet | — | <Select><Listbox search={false}><MenuItem as="item" value="guides">Guides</MenuItem></Listbox></Select> | 无参数的显式选项内容;传入后不生成 items。选项使用 MenuItem as="item" 并提供唯一 value;外置搜索使用 Input as="search",同时设置 search={false} 避免重复内置搜索框。 |
items | ListboxItem[] | [] | items={[{ value: "guides", label: "Guides" }, { value: "archive", label: "Archive", disabled: true }]} | 默认内置选项数组;每项包含必填且唯一的字符串 value、显示及搜索使用的 label、可选 disabled。有 children 时忽略;运行时自定义项由宿主另行管理。 |
parts | ComponentPartsOf<{ Input: typeof Input; MenuItem: typeof MenuItem; Text: typeof Text; }> | — | parts={{ Input: { placeholder: "Find a component…" } }} | 配置默认内置 Input、MenuItem 与字符串标签 Text 的公开 Props,例如搜索 placeholder、allowCustomValue、选项 showCheck 或标签排版;parts.Text 只作用于实际生成的 items/自定义选项标签,显式子项自行配置。parts.MenuItem.showCheck 优先于 Listbox 的 showCheck。 |
search | boolean | — | search | 是否生成固定在面板顶部的 Input;依次读取显式值、宿主配置并回退 true。Select 默认向 Listbox 提供 false;需要搜索时显式开启。 |
maxHeight | number | string | — | maxHeight={200} | 面板最大高度,数字为 px,字符串为 CSS 长度;受可用视口约束。未设置时最多完整显示 10 项,空间不足时至少保留实际选项中的前 2 项。 |
minWidth | number | string | — | minWidth={120} | 面板最小宽度,数字为 px,字符串为 CSS 长度;未设置时搜索开启取 160px,否则取 0。内容与视口约束仍参与最终宽度计算。 |
scrollbar | boolean | true | scrollbar | 溢出时显示浮层滚动条;false 仅隐藏轨道,仍可通过滚轮和键盘滚动。 |
matchTriggerWidth | boolean | true | matchTriggerWidth | true 时以锚点实测宽度加固定 2px 为宽度基准,左右各覆盖 1px,内容需要更宽时允许扩展;false 时按选项内容 Hug,不添加补偿,仍受 minWidth 与视口约束。 |
placementMode | "selected" | "bottom" | "selected" | placementMode="selected" | selected 将选中项中心对齐触发器;bottom 从触发器下方展开。最终定位与高度受可用视口约束。 |
align | "start" | "end" | "start" | align="start" | 面板相对锚点左边缘或右边缘对齐;Hug 面板与锚点宽度不同时差异明显,最终位置受视口约束。 |
showCheck | boolean | false | showCheck | 为选中项预留并显示 trailing 勾选;Select 默认提供 true。显式 MenuItem 可用自身 showCheck 覆盖,自定义 trailing 替换默认勾选。 |
continuousHover | boolean | true | continuousHover | 在直接 MenuItem 之间移动同一个高亮背景,键盘 active 共用该背景;false 恢复逐项即时背景,禁用和过滤项不作为目标。 |