| import { derived } from 'svelte/store'; | |
| import { createListbox } from '../listbox/create.js'; | |
| export function createSelect(props) { | |
| const listbox = createListbox({ ...props, builder: 'select' }); | |
| const selectedLabel = derived(listbox.states.selected, ($selected) => { | |
| if (Array.isArray($selected)) { | |
| return $selected.map((o) => o.label).join(', '); | |
| } | |
| return $selected?.label ?? ''; | |
| }); | |
| return { | |
| ...listbox, | |
| elements: { | |
| ...listbox.elements, | |
| }, | |
| states: { | |
| ...listbox.states, | |
| selectedLabel, | |
| }, | |
| }; | |
| } | |