/** * Generates the TqFormFileInput wrapper — the in-form upload field behind * ``. It is a pure controlled input over a page state * whose value is an ARRAY of PickedFile POJOs * `{ name, size, type, lastModified, dataURL }` — the exact shape the * `browser-pick-files` workflow node emits and `file-storage-upload` * consumes (dataURL→Blob). Nothing is uploaded at pick time: the * form-submit workflow reads the state via state-get-local-state and * uploads there. Commits go through the page-supplied `onChange` * (`event.target.value` = JSON) and are mirrored into a paired hidden * input (no `name`, so it never leaks into form payloads) that dispatches * a native `change` for the platform's element-trigger machinery — the * same bridge the signature widget uses. * * Bug 6 (encode race): `readAsDataURL` is async, so a form-submit workflow's * synchronous "is state. empty?" gate — evaluated the instant Submit is * clicked — used to read the OLD (empty) state if the user clicked Submit * before a large file's encode resolved. `handlePick` now commits an * IMMEDIATE placeholder entry (same shape, `dataURL: ''`) synchronously, in * the SAME native `change` event as the pick, so `.length` reflects "a file * is selected" before any later, separate click could possibly fire. The * placeholder is replaced with the fully-encoded entry once the async read * resolves (or rolled back to the pre-pick selection if every read fails). */ export declare const generateFormFileInputComponentCode: () => string; //# sourceMappingURL=form-file-input-component.d.ts.map