valtech-components 4.0.238 → 4.0.239

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.
@@ -14,13 +14,16 @@ export interface ChatComposerSendEvent {
14
14
  files: File[];
15
15
  }
16
16
  /**
17
- * val-chat-composer — barra de redacción de chat moderna (signal inputs).
17
+ * val-chat-composer — barra de redacción estilo Notion/Claude (full custom).
18
18
  *
19
- * Pill con: adjuntar (+), textarea auto-grow, y mic/enviar (mic cuando está vacío,
20
- * enviar cuando hay texto o adjuntos). Los adjuntos (botón + / pegar imagen) se
21
- * acumulan como PREVIEW (miniaturas) y se emiten por `(attach)` recién al ENVIAR
22
- * no se van solos al chat. Audio grabado se emite directo al parar.
23
- * No incluye picker de emoji: el teclado del sistema ya lo trae.
19
+ * El editor es un `contenteditable` (NO ion-textarea): crece hasta un max-height,
20
+ * soporta pegar texto plano e imágenes del portapapeles, Enter envía / Shift+Enter
21
+ * salta línea. Debajo, una fila de acciones propias: adjuntar (+), mic/enviar.
22
+ * Los adjuntos (botón / pegar / audio grabado) se acumulan como miniaturas de
23
+ * PREVIEW y se mandan en UN solo evento `send {text, files}` (caption + adjuntos).
24
+ *
25
+ * Pensado para vivir en un contenedor fijo al fondo del viewport (el consumer
26
+ * ancla la posición). No incluye emoji picker (el teclado del sistema lo trae).
24
27
  */
25
28
  export declare class ChatComposerComponent implements OnDestroy {
26
29
  private i18n;
@@ -34,6 +37,7 @@ export declare class ChatComposerComponent implements OnDestroy {
34
37
  readonly typing: import("@angular/core").OutputEmitterRef<void>;
35
38
  readonly voice: import("@angular/core").OutputEmitterRef<void>;
36
39
  readonly cancelReply: import("@angular/core").OutputEmitterRef<void>;
40
+ private readonly editableRef;
37
41
  protected readonly body: import("@angular/core").WritableSignal<string>;
38
42
  protected readonly pending: import("@angular/core").WritableSignal<PendingAttachment[]>;
39
43
  private pendingId;
@@ -48,19 +52,17 @@ export declare class ChatComposerComponent implements OnDestroy {
48
52
  constructor();
49
53
  protected readonly canSend: import("@angular/core").Signal<boolean>;
50
54
  protected readonly placeholderText: import("@angular/core").Signal<string>;
51
- protected onInput(event: Event): void;
55
+ /** Lee el texto del contenteditable a la signal `body`. */
56
+ protected syncBody(): void;
52
57
  protected onKeydown(event: KeyboardEvent): void;
58
+ /** Pegar: texto plano (sin formato) + imágenes del portapapeles. */
59
+ protected onPaste(event: ClipboardEvent): void;
53
60
  protected onSend(): void;
61
+ private clearEditable;
54
62
  protected onFile(event: Event): void;
55
- /** Pegar imagen desde el portapapeles (captura de pantalla, copiar imagen). */
56
- protected onPaste(event: ClipboardEvent): void;
57
63
  private addPending;
58
64
  protected removePending(id: number): void;
59
- /**
60
- * Emite typing como máximo 1 vez cada 2s. performance.now es seguro en runtime.
61
- */
62
65
  private emitTypingDebounced;
63
- /** Selecciona un mimeType de audio soportado por el navegador. */
64
66
  private pickAudioMime;
65
67
  protected startRecording(): Promise<void>;
66
68
  /** Para la grabación y la stagea como adjunto pendiente (con preview de audio). */
package/lib/version.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export declare const VERSION = "4.0.238";
5
+ export declare const VERSION = "4.0.239";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valtech-components",
3
- "version": "4.0.238",
3
+ "version": "4.0.239",
4
4
  "private": false,
5
5
  "bin": {
6
6
  "valtech-firebase-config": "./src/lib/services/firebase/scripts/generate-sw-config.js"