FontPickerRoot
FontPickerRoot es un selector de fuente headless con búsqueda construido sobre los primitivos Combobox de Reka UI.
Props
| Prop | Default | Type |
|---|---|---|
listFamilies*Fuente asíncrona de las familias tipográficas disponibles. | — | () => Promise<string[]> |
triggerClassClase opcional para el trigger por defecto. | — | string | undefined |
contentClassClase opcional para el contenido desplegable. | — | string | undefined |
itemClassClase opcional para los elementos por defecto. | — | string | undefined |
searchClassClase opcional para el input de búsqueda. | — | string | undefined |
viewportClassClase opcional para el viewport de scroll. | — | string | undefined |
emptyClassClase opcional para los estados vacíos. | — | string | undefined |
emptySearchTextTexto mostrado cuando la búsqueda no devuelve fuentes. | — | string | undefined |
emptyFontsTextTexto mostrado cuando no hay fuentes disponibles. | — | string | undefined |
emptyFontsHintTexto de ayuda opcional para el estado de fuentes vacío. | — | string | undefined |
Model
| Prop | Default | Type |
|---|---|---|
v-model*Familia tipográfica seleccionada. | — | string |
Eventos
| Event | Payload | Description |
|---|---|---|
selectEmitido tras seleccionar una familia tipográfica. | family: string | Emitido tras seleccionar una familia tipográfica. |
Slots
| Slot | Props | Description |
|---|---|---|
triggerContenido del trigger personalizado. | { value: string, open: boolean } | Contenido del trigger personalizado. |
searchSlot del input de búsqueda personalizado. | { searchTerm: string, setInputRef: (el: HTMLInputElement | null) => void } | Slot del input de búsqueda personalizado. |
itemRenderer de elemento personalizado. | { family: string, selected: boolean } | Renderer de elemento personalizado. |
indicatorIndicador de seleccionado personalizado. | { selected: boolean } | Indicador de seleccionado personalizado. |
emptySe muestra cuando no hay fuentes disponibles. | — | Se muestra cuando no hay fuentes disponibles. |
Ejemplo
vue
<FontPickerRoot v-model="fontFamily" :list-families="listFamilies">
<template #trigger="{ value }">
<button class="w-full truncate">{{ value }}</button>
</template>
</FontPickerRoot>