import { FormValueControl } from '@angular/forms/signals'; import { TextValueControlBase } from 'forty-cdk/core'; import * as i0 from '@angular/core'; /** * Headless text `` implementing Angular's `FormValueControl` * from `@angular/forms/signals`, so it auto-wires with `[formField]` and * auto-associates inside a `[forField]` (label / description / error) with no * extra markup. * * Apply on a native ``. The element keeps its own `type` * (`text` / `email` / `password` / …), caret, IME composition, and native form * submission — the directive only bridges the value to a signal and reflects * validation state. For a multi-line control use `[forTextarea]`. * * The host gets `data-empty` (while the value is `''`), `data-disabled`, and * `data-readonly` for CSS hooks. * * @example * ```html * * * *
* * *
* ``` */ declare class ForInput extends TextValueControlBase implements FormValueControl { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Headless multi-line text ` * * * * * *
* * *
* ``` */ declare class ForTextarea extends TextValueControlBase implements FormValueControl { #private; /** * Opt into height auto-sizing. When `true` the textarea's height tracks its * content: it grows as the value gets taller and shrinks back as it gets * shorter, recomputed on every edit, on programmatic `value` writes, and on * width reflow. Defaults to `false`, leaving the element's height to CSS. */ readonly autosize: i0.InputSignalWithTransform; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Exact public names of every `ForInput` input, its models included. Spread it into the * `inputs` array of a `hostDirectives` entry so a wrapper component re-exposes the * primitive's full surface — the Signal Forms members `[formField]` binds among them — * without hand-maintaining the list. Always spread into an inline object literal as shown * below: the literal is what keeps the entry statically analyzable for consumers compiling * against the published package. An anti-drift spec fails when this list no longer matches * the directive's actual API. See `docs/wrapping-form-primitives.md` for both supported * wrapping patterns. * * @example * ```ts * @Component({ * selector: 'input[myInput]', * template: '', * hostDirectives: [ * { * directive: ForInput, * inputs: [...FOR_INPUT_HOST_DIRECTIVE_INPUTS], * outputs: [...FOR_INPUT_HOST_DIRECTIVE_OUTPUTS], * }, * ], * }) * export class MyInput {} * ``` */ declare const FOR_INPUT_HOST_DIRECTIVE_INPUTS: readonly ["value", "dirty", "disabled", "errors", "invalid", "name", "pending", "readonly", "required", "touched"]; /** * Exact public names of every `ForInput` output, the Signal Forms `touch` output * included. Spread it into the `outputs` array of the same `hostDirectives` entry as * {@link FOR_INPUT_HOST_DIRECTIVE_INPUTS}. */ declare const FOR_INPUT_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "touchedChange", "touch"]; /** * Exact public names of every `ForTextarea` input, its models included. Spread it into the * `inputs` array of a `hostDirectives` entry so a wrapper component re-exposes the * primitive's full surface — the Signal Forms members `[formField]` binds among them — * without hand-maintaining the list. Always spread into an inline object literal as shown * below: the literal is what keeps the entry statically analyzable for consumers compiling * against the published package. An anti-drift spec fails when this list no longer matches * the directive's actual API. See `docs/wrapping-form-primitives.md` for both supported * wrapping patterns. * * @example * ```ts * @Component({ * selector: 'textarea[myTextarea]', * template: '', * hostDirectives: [ * { * directive: ForTextarea, * inputs: [...FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS], * outputs: [...FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS], * }, * ], * }) * export class MyTextarea {} * ``` */ declare const FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS: readonly ["value", "autosize", "dirty", "disabled", "errors", "invalid", "name", "pending", "readonly", "required", "touched"]; /** * Exact public names of every `ForTextarea` output, the Signal Forms `touch` output * included. Spread it into the `outputs` array of the same `hostDirectives` entry as * {@link FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS}. */ declare const FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "touchedChange", "touch"]; export { FOR_INPUT_HOST_DIRECTIVE_INPUTS, FOR_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS, FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS, ForInput, ForTextarea };