combobox

A combobox used within a form

A combobox used within a form

Загрузка превью…

src/combobox/c-combobox-11.vue

<!--
  Оригинал вызывает `toast(...)` из `sonner` при сабмите формы — пакет не
  входит в зависимости воркспейса (тот же класс ограничения, что и в
  `block-input-group`, см. `c-input-group-11.vue`) и не влияет на статичный
  скриншот, поэтому обработчик submit не переносит вызов toast.
-->
<script setup lang="ts">
import { Button } from "@/components/ui/button"
import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList } from "@/components/ui/combobox"
import { Field, FieldLabel } from "@/components/ui/field"

const frameworks = ["Next.js", "SvelteKit", "Nuxt.js", "Remix", "Astro"]

function handleSubmit(event: Event) {
  event.preventDefault()
}
</script>

<template>
  <form
    id="form-with-combobox"
    class="w-full max-w-xs space-y-4"
    @submit="handleSubmit"
  >
    <Field>
      <FieldLabel for="framework">Framework</FieldLabel>
      <Combobox>
        <ComboboxInput
          id="framework"
          name="framework"
          placeholder="Select a framework"
          required
        />
        <ComboboxContent>
          <ComboboxEmpty>No items found.</ComboboxEmpty>
          <ComboboxList>
            <ComboboxItem v-for="item in frameworks" :key="item" :value="item">
              {{ item }}
            </ComboboxItem>
          </ComboboxList>
        </ComboboxContent>
      </Combobox>
    </Field>
    <Button type="submit" form="form-with-combobox" class="w-full">
      Submit
    </Button>
  </form>
</template>

Установка

npx shadcn-vue@latest add https://revueui.rootapi.dev/r/c-combobox-11.json

Зависимости реестра

Источник: порт из ReUI (Keenthemes, MIT)