Data

Inplace

Editing inline sul posto — mostra un testo/contenuto cliccabile che, al click, si trasforma in un campo di input o contenuto arbitrario, con pulsante di chiusura opzionale.

Import

import { Inplace } from '@pzeta/vue-components'

Esempio Base

Props

PropTipoDefaultDescrizione
activebooleanfalseStato attivo v-model: se true mostra il content invece del display
closablebooleantrueSe true, mostra il pulsante di chiusura e permette di tornare alla modalità display
disabledbooleanfalseDisabilita il componente, impedendo l'apertura
displayTextstring'Click to edit'Testo di fallback mostrato nel display quando lo slot #display non è usato

Emits

EventoPayloadDescrizione
update:activebooleanEmesso quando cambia lo stato attivo, per usare v-model:active
openEventEmesso quando il componente viene aperto (click sul display)
closeEventEmesso quando il componente viene chiuso (click sul pulsante di chiusura)

Slot

SlotScopeDescrizione
displayContenuto mostrato in modalità inattiva (cliccabile per aprire)
content{ closeCallback: () => void }Contenuto mostrato in modalità attiva; closeCallback chiude l'inplace
closeiconPersonalizza l'icona/pulsante di chiusura

Esempi

Con input e pulsante conferma

Non chiudibile (contenuto permanente)

Controllo v-model:active

Accessibilità

  • Il display è renderizzato con role="button" e tabindex="0", navigabile da tastiera.
  • Apertura con Enter o Space, chiusura con il pulsante close (aria-label localizzato).
  • Lo stato disabled impedisce l'interazione e rimuove la classe attiva.

TypeScript

import type { InplaceProps } from '@pzeta/vue-components'

Interfacce correlate:

interface InplaceContentSlotProps {
  closeCallback: () => void
}