/** * Default form scaffold builder. * * Given an entity's curated schema + section/category metadata from CodeGen, * produces a working `ComponentSpec` whose JSX mirrors the layout the Angular * CodeGen form would render for the same entity. This is the *floor* that * agents (Form Builder, Skip) and Form Studio's "New form" flow start from — * not the ceiling. Most rich forms transform or replace this aggressively; * the scaffold's job is to guarantee day-one parity with the default Angular * form so the runtime form path is never worse than the default. * * The output is intentionally a small, hand-readable JSX function that uses * the host-provided `record`, `entityMetadata`, `mode`, and `callbacks`. It * does NOT touch BaseEntity, Metadata, or RunView for the record being * edited — that's the form-role layering invariant. */ import type { EntityInfo, IMetadataProvider } from '@memberjunction/core'; import type { ComponentSpec } from '../component-spec.js'; /** * Build a working scaffold ComponentSpec for `entityName`. Returns `null` if * the entity isn't registered. * * Scaffold rules (mirror CodeGen): * - Sections come from `EntityField.Category` + `GeneratedFormSectionType`. * - Top-section fields render above the section list. * - Field input type derives from `TSType` + `ValueListType` (textarea for * long strings, checkbox for booleans, datepicker for dates, select for * value lists, fk-picker for FKs, number for numeric). * - System Metadata section is always last and starts collapsed. * - 2-column grid by default; long-string and textarea fields go full-span. */ export declare function buildDefaultFormScaffold(entityName: string, provider: IMetadataProvider): ComponentSpec | null; /** Same as {@link buildDefaultFormScaffold} but takes an already-resolved EntityInfo. */ export declare function buildScaffoldFromEntityInfo(entity: EntityInfo, provider: IMetadataProvider): ComponentSpec; /** Strip non-identifier characters so the function name is valid JS. */ export declare function sanitizeComponentName(raw: string): string; //# sourceMappingURL=default-form-scaffold.d.ts.map