Files
2026-08-12 03:44:07 -06:00

6.8 KiB

Catálogo de componentes

Todos los nombres comienzan con Ds. A menos que se indique lo contrario, los atributos HTML adicionales llegan al control raíz correspondiente.

Layout

Componente Props principales Slots
DsAppShell maxWidth default
DsPageHeader title, description, eyebrow, standalone default implícito en textos, actions
DsPanel as, padding: sm|md|lg, tone, flat default
DsSectionHeader title, description, eyebrow actions
DsStack as, gap, align default
DsInline as, gap, align, justify, wrap default
DsDivider

Acciones

Componente Props y eventos Slots
DsButton variant, size, type, disabled, loading, block, evento nativo click default
DsIconButton label obligatorio, más variantes y estados de DsButton icono default
DsButtonGroup label default
DsFormActions default

loading conserva el texto como nombre accesible, añade aria-busy y deshabilita el botón.

Formularios

Componente Modelo Props principales
DsFormField id, label, description, error, required; slot scoped con controlId, describedBy, invalid
DsTextInput string id, name, label, description, error, type, autocomplete, disabled, required; slots leading, trailing
DsTextarea string contrato común más rows
DsPasswordInput string contrato común y botón mostrar/ocultar
DsSearchInput string contrato de texto con icono decorativo de búsqueda
DsSelect string contrato común y options: DsSelectOption[]
DsCheckbox boolean label, description, error, estados HTML
DsRadioGroup string legend, name, options: DsRadioOption[], descripción y error
DsSwitch boolean label, description, disabled, name
DsSettingsSection title, description; slots default y actions

Ejemplo:

<DsTextInput
  v-model="email"
  name="email"
  type="email"
  label="Correo electrónico"
  description="Usaremos tu correo de trabajo."
  :error="emailError"
  required
/>

Retroalimentación

Componente Props principales Comportamiento
DsSpinner size, label role=status, nombre oculto
DsSkeleton width, height, rounded decorativo y sin gradiente
DsProgressBar value, max, label, showValue semántica progressbar
DsAlert variant, title, live live activa status o alert
DsInlineMessage variant, live ayuda o error breve
DsEmptyState title, description slots icon, actions
DsLoadingState title, description región de estado anunciable
DsErrorState title, description alerta y slot actions

Navegación y overlays

DsTabs recibe items: DsTabItem[], label y v-model<string>. Cada id define un slot del mismo nombre. Admite flechas, Home y End.

<DsTabs v-model="tab" :items="tabs" label="Preferencias">
  <template #profile></template>
  <template #security></template>
</DsTabs>

DsDialog recibe v-model<boolean>, title, description, closeLabel y closeOnBackdrop. Emite close y cancel; ofrece slots default y footer.

DsConfirmDialog añade confirmLabel, cancelLabel, danger y loading; emite confirm y cancel.

Datos y reglas

DsSortableList ordena un v-model<DsSortableItem[]> mediante drag-and-drop. Cada elemento requiere id y label; puede incluir description y disabled. El evento reorder entrega el elemento y sus posiciones from y to. Los botones subir/bajar ofrecen la misma operación sin depender del puntero.

<DsSortableList v-model="steps" label="Etapas del proyecto" />

DsLogicTree edita un v-model<DsLogicGroup> serializable. Un grupo combina nodos con operator: "and" | "or"; cada condición guarda field, comparison y value. fields y comparisons reciben opciones configurables, y readonly permite mostrar el árbol sin editarlo.

<DsLogicTree
  v-model="rules"
  :fields="[
    { label: 'Estado', value: 'status' },
    { label: 'Plan', value: 'plan' },
  ]"
  label="Reglas de audiencia"
/>

Los textos del constructor pueden adaptarse mediante la prop labels. El componente emite change con el árbol completo después de cada edición.

Las decisiones internas, limitaciones conocidas y propuestas de evolución están registradas en Herramientas interactivas.