ScrubInputRoot
ScrubInputRoot est la primitive racine headless pour la saisie numérique par glissement.
Elle gère :
- l'affichage des valeurs mixtes
- l'état d'édition versus de glissement
- le glissement numérique piloté par le pointeur
- la sémantique de validation pour les éditions terminées
Props
| Prop | Default | Type |
|---|---|---|
modelValue*Valeur numérique courante ou sentinelle de valeur mixte. | — | number | symbol |
minValeur minimale autorisée. | -Infinity | number | undefined |
maxValeur maximale autorisée. | Infinity | number | undefined |
stepMultiplicateur de pas de glissement. | 1 | number | undefined |
sensitivityMultiplicateur de sensibilité du pointeur. | 1 | number | undefined |
placeholderPlaceholder pour les valeurs mixtes. | Mixed | string | undefined |
Modèle
| Prop | Default | Type |
|---|---|---|
v-model:modelValue*Modèle numérique inscriptible. | — | number |
Événements
| Event | Payload | Description |
|---|---|---|
update:modelValue | value: number | Émis pendant le glissement ou l'édition. |
commit | value: number, previous: number | Émis quand une interaction d'édition est validée. |
Slots
| Slot | Props | Description |
|---|---|---|
default | { modelValue: number | symbol, displayValue: string, isMixed: boolean, editing: boolean, scrubbing: boolean, startScrub: (event: PointerEvent) => void, startEdit: () => void, commitEdit: (event: Event) => void, keydown: (event: KeyboardEvent) => void, placeholder: string } | Contrat de rendu complet de la saisie par glissement. |
Exemple
vue
<ScrubInputRoot v-model:model-value="value" @commit="commit" v-slot="ctx">
<div @pointerdown="ctx.startScrub">
<ScrubInputDisplay />
<ScrubInputField class="w-16" />
</div>
</ScrubInputRoot>