easy-forms-core 1.2.12 → 1.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -358,6 +358,10 @@ interface OTPField extends BaseField {
358
358
  * Unión de todos los tipos de campos
359
359
  */
360
360
  type Field = TextField | PasswordField | NumberField | TextareaField | SelectField | CheckboxField | RadioField | SwitchField | DateField | FileField | FileDropField | MapField | RatingField | SliderField | ColorpickerField | ArrayField | GroupField | RowField | CustomField | QuantityField | AccordionSelectField | ImageGridSelectField | OTPField;
361
+ /**
362
+ * Estilos visuales del stepper
363
+ */
364
+ type StepStyle = 'default' | 'tabs' | 'buttons' | 'timeline' | 'none';
361
365
  /**
362
366
  * Step para formularios wizard
363
367
  */
@@ -365,6 +369,8 @@ interface Step {
365
369
  title: string;
366
370
  description?: string;
367
371
  fields: Field[];
372
+ /** Estilo visual del stepper para este step */
373
+ stepStyle?: StepStyle;
368
374
  }
369
375
  /**
370
376
  * Tipos de temas disponibles
@@ -421,6 +427,25 @@ interface FormSchema {
421
427
  };
422
428
  /** Dirección del layout: vertical (default) u horizontal */
423
429
  direction?: 'vertical' | 'horizontal';
430
+ /** Configuración de persistencia/autosave del formulario */
431
+ persistence?: PersistenceConfig;
432
+ /** Estilo visual del stepper (aplica a todos los steps): 'default' | 'tabs' | 'buttons' | 'timeline' | 'none' */
433
+ stepStyle?: StepStyle;
434
+ }
435
+ /**
436
+ * Configuración de persistencia del formulario
437
+ */
438
+ interface PersistenceConfig {
439
+ /** Habilitar persistencia */
440
+ enabled?: boolean;
441
+ /** Clave para localStorage */
442
+ key: string;
443
+ /** Intervalo de autosave en ms (default: 1000) */
444
+ autoSave?: boolean;
445
+ /** Debounce para guardar en ms (default: 500) */
446
+ debounce?: number;
447
+ /** Callback cuando se restauran datos */
448
+ onRestore?: (values: Record<string, any>) => void;
424
449
  }
425
450
  /**
426
451
  * Componente personalizado para inyección
@@ -459,6 +484,10 @@ declare class EasyForm extends BrowserHTMLElement {
459
484
  */
460
485
  private slotTemplates;
461
486
  private skipPreserveValuesOnNextRender;
487
+ private persistenceConfig;
488
+ private persistenceDebounceTimer;
489
+ private pendingRestoreValues;
490
+ private isRestoringValues;
462
491
  static get observedAttributes(): string[];
463
492
  constructor();
464
493
  /**
@@ -750,6 +779,34 @@ declare class EasyForm extends BrowserHTMLElement {
750
779
  * Configura estilos básicos
751
780
  */
752
781
  private setupStyles;
782
+ /**
783
+ * Inicializa la persistencia del formulario
784
+ */
785
+ private initPersistence;
786
+ /**
787
+ * Restaura los valores desde localStorage
788
+ */
789
+ private restoreFromStorage;
790
+ /**
791
+ * Aplica los valores pendientes de restauración después del render
792
+ */
793
+ private applyPendingRestoreValues;
794
+ /**
795
+ * Actualiza los valores de los inputs del DOM
796
+ */
797
+ private updateInputsWithValues;
798
+ /**
799
+ * Guarda los valores en localStorage
800
+ */
801
+ private saveToStorage;
802
+ /**
803
+ * Programa un guardado debounced
804
+ */
805
+ private scheduleSave;
806
+ /**
807
+ * Limpia los datos de persistencia
808
+ */
809
+ private clearPersistence;
753
810
  }
754
811
 
755
812
  export { EasyForm };