Skip to content

ScrubInputRoot

ScrubInputRoot es el primitivo raíz headless para input numérico con arrastre para ajustar.

Gestiona:

  • visualización de valores mixtos
  • estado de edición vs arrastre
  • ajuste numérico impulsado por el puntero
  • semántica de confirmación para ediciones finalizadas

Props

PropDefaultType
modelValue*
Valor numérico actual o centinela de valor mixto.
number | symbol
min
Valor mínimo permitido.
-Infinitynumber | undefined
max
Valor máximo permitido.
Infinitynumber | undefined
step
Multiplicador de paso del arrastre.
1number | undefined
sensitivity
Multiplicador de sensibilidad del puntero.
1number | undefined
placeholder
Placeholder para valores mixtos.
Mixedstring | undefined

Model

PropDefaultType
v-model:modelValue*
Modelo numérico escribible.
number

Eventos

EventPayloadDescription
update:modelValuevalue: numberEmitido durante el arrastre o la edición.
commitvalue: number, previous: numberEmitido cuando se confirma una interacción de edición.

Slots

SlotPropsDescription
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 }Contrato completo de renderizado del scrub input.

Ejemplo

vue
<ScrubInputRoot v-model:model-value="value" @commit="commit" v-slot="ctx">
  <div @pointerdown="ctx.startScrub">
    <ScrubInputDisplay />
    <ScrubInputField class="w-16" />
  </div>
</ScrubInputRoot>

APIs relacionadas

Released under the MIT License.