@zod-to-form/core 0.2.4 → 0.2.6
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.
- package/dist/config.d.ts +95 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +238 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/processors/_utils.d.ts.map +1 -1
- package/dist/processors/_utils.js +4 -2
- package/dist/processors/_utils.js.map +1 -1
- package/dist/processors/number.d.ts.map +1 -1
- package/dist/processors/number.js +3 -1
- package/dist/processors/number.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { FieldConfig } from './types.js';
|
|
3
|
+
export type ComponentEntry<T extends Record<string, unknown> = Record<string, unknown>> = {
|
|
4
|
+
component: keyof T & string;
|
|
5
|
+
render?: () => Promise<unknown>;
|
|
6
|
+
};
|
|
7
|
+
export type FormPrimitivesConfig<T extends Record<string, unknown> = Record<string, unknown>> = {
|
|
8
|
+
field?: keyof T & string;
|
|
9
|
+
label?: keyof T & string;
|
|
10
|
+
control?: keyof T & string;
|
|
11
|
+
};
|
|
12
|
+
/** Field config with props constrained to a specific component's prop type */
|
|
13
|
+
type TypedFieldConfigForComponent<TComponents extends Record<string, unknown>, K extends keyof TComponents & string> = {
|
|
14
|
+
fieldType: K;
|
|
15
|
+
order?: number;
|
|
16
|
+
hidden?: boolean;
|
|
17
|
+
gridColumn?: string;
|
|
18
|
+
props?: TComponents[K] extends Record<string, unknown> ? Partial<TComponents[K]> : Record<string, unknown>;
|
|
19
|
+
};
|
|
20
|
+
/** Field config with no fieldType specified (untyped props) */
|
|
21
|
+
type UntypedFieldConfig = {
|
|
22
|
+
fieldType?: undefined;
|
|
23
|
+
order?: number;
|
|
24
|
+
hidden?: boolean;
|
|
25
|
+
gridColumn?: string;
|
|
26
|
+
props?: Record<string, unknown>;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Discriminated union over component keys.
|
|
30
|
+
* When `fieldType` is set to a known component key, `props` is constrained
|
|
31
|
+
* to that component's prop type. When `fieldType` is omitted, `props` is
|
|
32
|
+
* an open `Record<string, unknown>`.
|
|
33
|
+
*/
|
|
34
|
+
export type TypedFieldConfig<TComponents extends Record<string, unknown> = Record<string, unknown>> = {
|
|
35
|
+
[K in keyof TComponents & string]: TypedFieldConfigForComponent<TComponents, K>;
|
|
36
|
+
}[keyof TComponents & string] | UntypedFieldConfig;
|
|
37
|
+
export type ConfigDefaults = {
|
|
38
|
+
mode?: 'submit' | 'auto-save';
|
|
39
|
+
ui?: 'shadcn' | 'unstyled';
|
|
40
|
+
out?: string;
|
|
41
|
+
overwrite?: boolean;
|
|
42
|
+
serverAction?: boolean;
|
|
43
|
+
};
|
|
44
|
+
export type ZodTypeConfig<TFieldKeys extends string = string, TComponents extends Record<string, unknown> = Record<string, unknown>> = {
|
|
45
|
+
name?: string;
|
|
46
|
+
mode?: 'submit' | 'auto-save';
|
|
47
|
+
out?: string;
|
|
48
|
+
serverAction?: boolean;
|
|
49
|
+
fields?: Partial<Record<TFieldKeys, TypedFieldConfig<TComponents>>>;
|
|
50
|
+
};
|
|
51
|
+
export type FieldTypePreset = 'shadcn' | 'unstyled';
|
|
52
|
+
export type ZodFormsConfig<TComponents extends Record<string, unknown> = Record<string, unknown>, TSchemas extends Record<string, unknown> = Record<string, unknown>> = {
|
|
53
|
+
components: string;
|
|
54
|
+
preset?: FieldTypePreset;
|
|
55
|
+
fieldTypes: Record<string, ComponentEntry<TComponents>>;
|
|
56
|
+
formPrimitives?: FormPrimitivesConfig<TComponents>;
|
|
57
|
+
defaults?: ConfigDefaults;
|
|
58
|
+
types?: string[];
|
|
59
|
+
include?: string[];
|
|
60
|
+
exclude?: string[];
|
|
61
|
+
fields?: Record<string, TypedFieldConfig<TComponents>>;
|
|
62
|
+
schemas?: {
|
|
63
|
+
[K in keyof TSchemas & string]?: ZodTypeConfig<TSchemas[K] extends z.ZodType ? SchemaFieldPath<TSchemas[K]> : string, TComponents>;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
/** @deprecated Use FieldConfig instead */
|
|
67
|
+
export type FieldOverride = FieldConfig;
|
|
68
|
+
/** @deprecated Use ZodFormsConfig instead */
|
|
69
|
+
export type ZodToFormComponentConfig<T extends Record<string, unknown> = Record<string, unknown>, _TFieldPath extends string = string> = ZodFormsConfig<T>;
|
|
70
|
+
type Primitive = string | number | boolean | bigint | symbol | null | undefined | Date;
|
|
71
|
+
type DotPath<T> = T extends Primitive ? never : T extends readonly (infer TItem)[] ? `${number}` | `${number}.${DotPath<TItem>}` : {
|
|
72
|
+
[TKey in Extract<keyof T, string>]: T[TKey] extends Primitive ? TKey : TKey | `${TKey}.${DotPath<T[TKey]>}`;
|
|
73
|
+
}[Extract<keyof T, string>];
|
|
74
|
+
type NormalizeArrayPath<TPath extends string> = TPath extends `${infer Prefix}.${number}.${infer Suffix}` ? NormalizeArrayPath<`${Prefix}[].${Suffix}`> : TPath extends `${infer Prefix}.${number}` ? NormalizeArrayPath<`${Prefix}[]`> : TPath;
|
|
75
|
+
type FieldPath<TValues extends Record<string, unknown>> = DotPath<TValues> extends infer TPath ? TPath extends string ? TPath | NormalizeArrayPath<TPath> : never : never;
|
|
76
|
+
/** Extracts dot-notation field paths from a Zod schema's inferred type */
|
|
77
|
+
type SchemaFieldPath<T extends z.ZodType> = z.infer<T> extends infer O ? O extends Record<string, unknown> ? FieldPath<O> : string : string;
|
|
78
|
+
export declare const SHADCN_FIELD_TYPES: Record<string, ComponentEntry>;
|
|
79
|
+
export declare const DEFAULT_FIELD_TYPES: Record<string, ComponentEntry>;
|
|
80
|
+
export declare function defineConfig<TComponents extends Record<string, unknown> = Record<string, unknown>, TSchemas extends Record<string, unknown> = Record<string, unknown>>(config: ZodFormsConfig<TComponents, TSchemas>): ZodFormsConfig<TComponents, TSchemas>;
|
|
81
|
+
export declare function validateConfig(value: unknown, source?: string): ZodFormsConfig<Record<string, unknown>>;
|
|
82
|
+
export declare function resolveFieldConfig(globalFields: Record<string, FieldConfig> | undefined, schemaFields: Partial<Record<string, FieldConfig>> | undefined): Record<string, FieldConfig>;
|
|
83
|
+
export declare function normalizeConfig(config: ZodFormsConfig<Record<string, unknown>>): ZodFormsConfig<Record<string, unknown>>;
|
|
84
|
+
/** @deprecated Use defineConfig instead */
|
|
85
|
+
export declare function defineComponentConfig<TComponents extends Record<string, unknown>, TValues extends Record<string, unknown>>(config: Omit<ZodFormsConfig<TComponents>, 'fields'> & {
|
|
86
|
+
overwrite?: boolean;
|
|
87
|
+
fields?: Partial<Record<FieldPath<TValues>, FieldConfig>>;
|
|
88
|
+
}): Omit<ZodFormsConfig<TComponents>, 'fields'> & {
|
|
89
|
+
overwrite?: boolean;
|
|
90
|
+
fields?: Partial<Record<FieldPath<TValues>, FieldConfig>>;
|
|
91
|
+
};
|
|
92
|
+
/** @deprecated Use validateConfig instead */
|
|
93
|
+
export declare function validateComponentConfig(value: unknown, source?: string): ZodFormsConfig<Record<string, unknown>>;
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACxF,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CAC5B,CAAC;AAIF,8EAA8E;AAC9E,KAAK,4BAA4B,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,WAAW,GAAG,MAAM,IAAI;IACrH,SAAS,EAAE,CAAC,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5G,CAAC;AAEF,+DAA+D;AAC/D,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC9F;KAAG,CAAC,IAAI,MAAM,WAAW,GAAG,MAAM,GAAG,4BAA4B,CAAC,WAAW,EAAE,CAAC,CAAC;CAAE,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAC/G,kBAAkB,CAAC;AAIvB,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,CACvB,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACnE;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpD,MAAM,MAAM,cAAc,CACxB,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrE,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAChE;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,cAAc,CAAC,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE;SACP,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,aAAa,CAC5C,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EACrE,WAAW,CACZ;KACF,CAAC;CACH,CAAC;AAIF,0CAA0C;AAC1C,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAExC,6CAA6C;AAC7C,MAAM,MAAM,wBAAwB,CAClC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,GAAG,MAAM,IACjC,cAAc,CAAC,CAAC,CAAC,CAAC;AAItB,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAEvF,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GACjC,KAAK,GACL,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,GAChC,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,GAC3C;KACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GACzD,IAAI,GACJ,IAAI,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;CACzC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAElC,KAAK,kBAAkB,CAAC,KAAK,SAAS,MAAM,IAC1C,KAAK,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,EAAE,GACrD,kBAAkB,CAAC,GAAG,MAAM,MAAM,MAAM,EAAE,CAAC,GAC3C,KAAK,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,EAAE,GACvC,kBAAkB,CAAC,GAAG,MAAM,IAAI,CAAC,GACjC,KAAK,CAAC;AAEd,KAAK,SAAS,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,MAAM,KAAK,GAC1F,KAAK,SAAS,MAAM,GAClB,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,GACjC,KAAK,GACP,KAAK,CAAC;AAEV,0EAA0E;AAC1E,KAAK,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAClE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,SAAS,CAAC,CAAC,CAAC,GACZ,MAAM,GACR,MAAM,CAAC;AAgMX,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAQ7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAK9D,CAAC;AASF,wBAAgB,YAAY,CAC1B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrE,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAUtF;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,MAAM,SAAW,GAChB,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOzC;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EACrD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,SAAS,GAC7D,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CA2B7B;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC9C,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkBzC;AAID,2CAA2C;AAC3C,wBAAgB,qBAAqB,CACnC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEvC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,GAAG;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;CAC3D,GACA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;CAC3D,CAEA;AAED,6CAA6C;AAC7C,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,MAAM,SAAqB,GAC1B,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEzC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// ─── Validation Schemas ───────────────────────────────────────────────
|
|
3
|
+
const nonEmptyStringSchema = z.string().trim().min(1);
|
|
4
|
+
const componentEntrySchema = z
|
|
5
|
+
.object({
|
|
6
|
+
component: nonEmptyStringSchema,
|
|
7
|
+
render: z
|
|
8
|
+
.unknown()
|
|
9
|
+
.optional()
|
|
10
|
+
.refine((value) => value === undefined || typeof value === 'function')
|
|
11
|
+
})
|
|
12
|
+
.passthrough();
|
|
13
|
+
const fieldConfigSchema = z
|
|
14
|
+
.object({
|
|
15
|
+
fieldType: nonEmptyStringSchema.optional(),
|
|
16
|
+
order: z.number().optional(),
|
|
17
|
+
hidden: z.boolean().optional(),
|
|
18
|
+
gridColumn: z.string().optional(),
|
|
19
|
+
props: z.record(z.string(), z.unknown()).optional()
|
|
20
|
+
})
|
|
21
|
+
.passthrough();
|
|
22
|
+
const fieldOverrideSchema = z
|
|
23
|
+
.object({
|
|
24
|
+
fieldType: nonEmptyStringSchema,
|
|
25
|
+
props: z.record(z.string(), z.unknown()).optional()
|
|
26
|
+
})
|
|
27
|
+
.passthrough();
|
|
28
|
+
const defaultsSchema = z
|
|
29
|
+
.object({
|
|
30
|
+
mode: z.string().optional(),
|
|
31
|
+
ui: z.string().optional(),
|
|
32
|
+
out: z.string().optional(),
|
|
33
|
+
overwrite: z.boolean().optional(),
|
|
34
|
+
serverAction: z.boolean().optional()
|
|
35
|
+
})
|
|
36
|
+
.passthrough()
|
|
37
|
+
.optional();
|
|
38
|
+
const zodTypeConfigSchema = z
|
|
39
|
+
.object({
|
|
40
|
+
name: z.string().optional(),
|
|
41
|
+
mode: z.string().optional(),
|
|
42
|
+
out: z.string().optional(),
|
|
43
|
+
serverAction: z.boolean().optional(),
|
|
44
|
+
fields: z.record(z.string(), fieldConfigSchema).optional()
|
|
45
|
+
})
|
|
46
|
+
.passthrough();
|
|
47
|
+
const configSchema = z
|
|
48
|
+
.object({
|
|
49
|
+
components: nonEmptyStringSchema,
|
|
50
|
+
preset: z.enum(['shadcn', 'unstyled']).optional(),
|
|
51
|
+
overwrite: z.boolean().optional(),
|
|
52
|
+
include: z.array(z.string()).optional(),
|
|
53
|
+
exclude: z.array(z.string()).optional(),
|
|
54
|
+
types: z.array(z.string()).optional(),
|
|
55
|
+
fieldTypes: z.record(z.string(), componentEntrySchema),
|
|
56
|
+
formPrimitives: z.record(z.string(), nonEmptyStringSchema).optional(),
|
|
57
|
+
fields: z.record(z.string(), fieldOverrideSchema.or(fieldConfigSchema)).optional(),
|
|
58
|
+
defaults: defaultsSchema,
|
|
59
|
+
schemas: z.record(z.string(), zodTypeConfigSchema).optional()
|
|
60
|
+
})
|
|
61
|
+
.passthrough();
|
|
62
|
+
// ─── Error Formatting ─────────────────────────────────────────────────
|
|
63
|
+
function formatValidationError(error, source) {
|
|
64
|
+
const [issue] = error.issues;
|
|
65
|
+
if (!issue) {
|
|
66
|
+
return new Error(`${source} is invalid.`);
|
|
67
|
+
}
|
|
68
|
+
const path = issue.path.map((part) => String(part));
|
|
69
|
+
const [root, entry, property] = path;
|
|
70
|
+
if (!root) {
|
|
71
|
+
return new Error(`${source} must be an object.`);
|
|
72
|
+
}
|
|
73
|
+
if (root === 'components') {
|
|
74
|
+
return new Error(`${source}.components must be a non-empty string.`);
|
|
75
|
+
}
|
|
76
|
+
if (root === 'fieldTypes') {
|
|
77
|
+
if (!entry) {
|
|
78
|
+
return new Error(`${source}.fieldTypes must be an object.`);
|
|
79
|
+
}
|
|
80
|
+
if (!property) {
|
|
81
|
+
return new Error(`${source}.fieldTypes.${entry} must be an object.`);
|
|
82
|
+
}
|
|
83
|
+
if (property === 'component') {
|
|
84
|
+
return new Error(`${source}.fieldTypes.${entry}.component must be a non-empty string.`);
|
|
85
|
+
}
|
|
86
|
+
if (property === 'render') {
|
|
87
|
+
return new Error(`${source}.fieldTypes.${entry}.render must be a function when provided.`);
|
|
88
|
+
}
|
|
89
|
+
return new Error(`${source}.fieldTypes.${entry} must be an object.`);
|
|
90
|
+
}
|
|
91
|
+
if (root === 'formPrimitives') {
|
|
92
|
+
if (!entry) {
|
|
93
|
+
return new Error(`${source}.formPrimitives must be an object when provided.`);
|
|
94
|
+
}
|
|
95
|
+
return new Error(`${source}.formPrimitives.${entry} must be a non-empty string when provided.`);
|
|
96
|
+
}
|
|
97
|
+
if (root === 'fields') {
|
|
98
|
+
if (!entry) {
|
|
99
|
+
return new Error(`${source}.fields must be an object when provided.`);
|
|
100
|
+
}
|
|
101
|
+
if (!property) {
|
|
102
|
+
return new Error(`${source}.fields.${entry} must be an object.`);
|
|
103
|
+
}
|
|
104
|
+
if (property === 'fieldType') {
|
|
105
|
+
return new Error(`${source}.fields.${entry}.fieldType must be a non-empty string.`);
|
|
106
|
+
}
|
|
107
|
+
if (property === 'props') {
|
|
108
|
+
return new Error(`${source}.fields.${entry}.props must be an object when provided.`);
|
|
109
|
+
}
|
|
110
|
+
return new Error(`${source}.fields.${entry} must be an object.`);
|
|
111
|
+
}
|
|
112
|
+
if (root === 'defaults') {
|
|
113
|
+
if (!entry) {
|
|
114
|
+
return new Error(`${source}.defaults must be an object when provided.`);
|
|
115
|
+
}
|
|
116
|
+
return new Error(`${source}.defaults.${entry} is invalid.`);
|
|
117
|
+
}
|
|
118
|
+
if (root === 'schemas') {
|
|
119
|
+
if (!entry) {
|
|
120
|
+
return new Error(`${source}.schemas must be an object when provided.`);
|
|
121
|
+
}
|
|
122
|
+
if (!property) {
|
|
123
|
+
return new Error(`${source}.schemas.${entry} must be an object.`);
|
|
124
|
+
}
|
|
125
|
+
if (property === 'fields') {
|
|
126
|
+
const fieldName = path[3];
|
|
127
|
+
const fieldProp = path[4];
|
|
128
|
+
if (fieldName && fieldProp) {
|
|
129
|
+
return new Error(`${source}.schemas.${entry}.fields.${fieldName}.${fieldProp} is invalid.`);
|
|
130
|
+
}
|
|
131
|
+
if (fieldName) {
|
|
132
|
+
return new Error(`${source}.schemas.${entry}.fields.${fieldName} must be an object.`);
|
|
133
|
+
}
|
|
134
|
+
return new Error(`${source}.schemas.${entry}.fields must be an object when provided.`);
|
|
135
|
+
}
|
|
136
|
+
return new Error(`${source}.schemas.${entry}.${property} is invalid.`);
|
|
137
|
+
}
|
|
138
|
+
if (root === 'overwrite') {
|
|
139
|
+
return new Error(`${source}.overwrite must be a boolean when provided.`);
|
|
140
|
+
}
|
|
141
|
+
if (root === 'types') {
|
|
142
|
+
return new Error(`${source}.types must be an array of strings when provided.`);
|
|
143
|
+
}
|
|
144
|
+
if (root === 'include') {
|
|
145
|
+
return new Error(`${source}.include must be an array of strings when provided.`);
|
|
146
|
+
}
|
|
147
|
+
if (root === 'exclude') {
|
|
148
|
+
return new Error(`${source}.exclude must be an array of strings when provided.`);
|
|
149
|
+
}
|
|
150
|
+
return new Error(`${source} is invalid: ${issue.message}`);
|
|
151
|
+
}
|
|
152
|
+
// ─── Preset Component Maps ───────────────────────────────────────────
|
|
153
|
+
export const SHADCN_FIELD_TYPES = {
|
|
154
|
+
Input: { component: 'Input' },
|
|
155
|
+
Textarea: { component: 'Textarea' },
|
|
156
|
+
Select: { component: 'Select' },
|
|
157
|
+
Checkbox: { component: 'Checkbox' },
|
|
158
|
+
Switch: { component: 'Switch' },
|
|
159
|
+
DatePicker: { component: 'DatePicker' },
|
|
160
|
+
FileInput: { component: 'FileInput' }
|
|
161
|
+
};
|
|
162
|
+
export const DEFAULT_FIELD_TYPES = {
|
|
163
|
+
Input: { component: 'Input' },
|
|
164
|
+
Textarea: { component: 'Textarea' },
|
|
165
|
+
Select: { component: 'Select' },
|
|
166
|
+
Checkbox: { component: 'Checkbox' }
|
|
167
|
+
};
|
|
168
|
+
// ─── Public Functions ─────────────────────────────────────────────────
|
|
169
|
+
const PRESET_MAP = {
|
|
170
|
+
shadcn: SHADCN_FIELD_TYPES,
|
|
171
|
+
unstyled: DEFAULT_FIELD_TYPES
|
|
172
|
+
};
|
|
173
|
+
export function defineConfig(config) {
|
|
174
|
+
if (!config.preset) {
|
|
175
|
+
return config;
|
|
176
|
+
}
|
|
177
|
+
const base = PRESET_MAP[config.preset];
|
|
178
|
+
return {
|
|
179
|
+
...config,
|
|
180
|
+
fieldTypes: { ...base, ...config.fieldTypes }
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
export function validateConfig(value, source = 'config') {
|
|
184
|
+
const parsed = configSchema.safeParse(value);
|
|
185
|
+
if (!parsed.success) {
|
|
186
|
+
throw formatValidationError(parsed.error, source);
|
|
187
|
+
}
|
|
188
|
+
return parsed.data;
|
|
189
|
+
}
|
|
190
|
+
export function resolveFieldConfig(globalFields, schemaFields) {
|
|
191
|
+
if (!globalFields && !schemaFields) {
|
|
192
|
+
return {};
|
|
193
|
+
}
|
|
194
|
+
if (!globalFields) {
|
|
195
|
+
return { ...schemaFields };
|
|
196
|
+
}
|
|
197
|
+
if (!schemaFields) {
|
|
198
|
+
return { ...globalFields };
|
|
199
|
+
}
|
|
200
|
+
const merged = { ...globalFields };
|
|
201
|
+
for (const [key, schemaField] of Object.entries(schemaFields)) {
|
|
202
|
+
if (!schemaField) {
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
const globalField = merged[key];
|
|
206
|
+
if (globalField) {
|
|
207
|
+
merged[key] = { ...globalField, ...schemaField };
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
merged[key] = schemaField;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return merged;
|
|
214
|
+
}
|
|
215
|
+
export function normalizeConfig(config) {
|
|
216
|
+
const hasTopLevelOverwrite = 'overwrite' in config && config.overwrite !== undefined;
|
|
217
|
+
if (!hasTopLevelOverwrite) {
|
|
218
|
+
return config;
|
|
219
|
+
}
|
|
220
|
+
const { overwrite, ...rest } = config;
|
|
221
|
+
return {
|
|
222
|
+
...rest,
|
|
223
|
+
defaults: {
|
|
224
|
+
...rest.defaults,
|
|
225
|
+
overwrite: rest.defaults?.overwrite ?? overwrite
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
// ─── Deprecated Functions ─────────────────────────────────────────────
|
|
230
|
+
/** @deprecated Use defineConfig instead */
|
|
231
|
+
export function defineComponentConfig(config) {
|
|
232
|
+
return config;
|
|
233
|
+
}
|
|
234
|
+
/** @deprecated Use validateConfig instead */
|
|
235
|
+
export function validateComponentConfig(value, source = 'component-config') {
|
|
236
|
+
return validateConfig(value, source);
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuIxB,yEAAyE;AAEzE,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEtD,MAAM,oBAAoB,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,SAAS,EAAE,oBAAoB;IAC/B,MAAM,EAAE,CAAC;SACN,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;CACzE,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,SAAS,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,SAAS,EAAE,oBAAoB;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,WAAW,EAAE;KACb,QAAQ,EAAE,CAAC;AAEd,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,UAAU,EAAE,oBAAoB;IAChC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC;IACtD,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACrE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClF,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE;CAC9D,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,yEAAyE;AAEzE,SAAS,qBAAqB,CAAC,KAAiB,EAAE,MAAc,EAAS;IACvE,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,cAAc,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IAErC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,qBAAqB,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,yCAAyC,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,gCAAgC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,eAAe,KAAK,qBAAqB,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,eAAe,KAAK,wCAAwC,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,eAAe,KAAK,2CAA2C,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,eAAe,KAAK,qBAAqB,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,kDAAkD,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,IAAI,KAAK,CACd,GAAG,MAAM,mBAAmB,KAAK,4CAA4C,CAC9E,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,0CAA0C,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,WAAW,KAAK,qBAAqB,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,WAAW,KAAK,wCAAwC,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,WAAW,KAAK,yCAAyC,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,WAAW,KAAK,qBAAqB,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,4CAA4C,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,aAAa,KAAK,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,2CAA2C,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,YAAY,KAAK,qBAAqB,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC3B,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,YAAY,KAAK,WAAW,SAAS,IAAI,SAAS,cAAc,CAAC,CAAC;YAC9F,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,YAAY,KAAK,WAAW,SAAS,qBAAqB,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,YAAY,KAAK,0CAA0C,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,YAAY,KAAK,IAAI,QAAQ,cAAc,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,6CAA6C,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,mDAAmD,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,qDAAqD,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,qDAAqD,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAAA,CAC5D;AAED,wEAAwE;AAExE,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAChE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;IAC7B,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;IACnC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC/B,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;IACnC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC/B,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE;IACvC,SAAS,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;IAC7B,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;IACnC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC/B,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;CACpC,CAAC;AAEF,yEAAyE;AAEzE,MAAM,UAAU,GAA4D;IAC1E,MAAM,EAAE,kBAAkB;IAC1B,QAAQ,EAAE,mBAAmB;CAC9B,CAAC;AAEF,MAAM,UAAU,YAAY,CAG1B,MAA6C,EAAyC;IACtF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,EAA8B;KAC1E,CAAC;AAAA,CACH;AAED,MAAM,UAAU,cAAc,CAC5B,KAAc,EACd,MAAM,GAAG,QAAQ,EACwB;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC,IAA+C,CAAC;AAAA,CAC/D;AAED,MAAM,UAAU,kBAAkB,CAChC,YAAqD,EACrD,YAA8D,EACjC;IAC7B,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,GAAG,YAAY,EAAiC,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,MAAM,GAAgC,EAAE,GAAG,YAAY,EAAE,CAAC;IAChE,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAAA,CACf;AAED,MAAM,UAAU,eAAe,CAC7B,MAA+C,EACN;IACzC,MAAM,oBAAoB,GACxB,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;IAE1D,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAE9B,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE;YACR,GAAG,IAAI,CAAC,QAAQ;YAChB,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,SAAS;SACjD;KACF,CAAC;AAAA,CACH;AAED,yEAAyE;AAEzE,2CAA2C;AAC3C,MAAM,UAAU,qBAAqB,CAInC,MAGC,EAID;IACA,OAAO,MAAM,CAAC;AAAA,CACf;AAED,6CAA6C;AAC7C,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,MAAM,GAAG,kBAAkB,EACc;IACzC,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAAA,CACtC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export type { FormField, FormFieldOption, FormFieldConstraints, FormProcessor, FormProcessorContext, FormMeta, ProcessParams, WalkOptions, ZodFormRegistry } from './types.js';
|
|
1
|
+
export type { FormField, FormFieldOption, FormFieldConstraints, FormProcessor, FormProcessorContext, FormMeta, FieldConfig, ProcessParams, WalkOptions, ZodFormRegistry } from './types.js';
|
|
2
|
+
export type { ComponentEntry, FieldTypePreset, FormPrimitivesConfig, TypedFieldConfig, ZodFormsConfig, ZodTypeConfig, ConfigDefaults, FieldOverride, ZodToFormComponentConfig } from './config.js';
|
|
3
|
+
export { defineConfig, validateConfig, resolveFieldConfig, normalizeConfig, SHADCN_FIELD_TYPES, DEFAULT_FIELD_TYPES, defineComponentConfig, validateComponentConfig } from './config.js';
|
|
2
4
|
export { inferLabel, joinPath, createBaseField } from './utils.js';
|
|
3
5
|
export { walkSchema } from './walker.js';
|
|
4
6
|
export { builtinProcessors, createProcessors } from './registry.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EAEd,aAAa,EACb,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EAEnB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// @zod-to-form/core — Public API
|
|
2
2
|
// All exports are named exports only (no default, no `export *`) for full tree-shakeability.
|
|
3
|
+
export { defineConfig, validateConfig, resolveFieldConfig, normalizeConfig, SHADCN_FIELD_TYPES, DEFAULT_FIELD_TYPES,
|
|
4
|
+
// Deprecated aliases
|
|
5
|
+
defineComponentConfig, validateComponentConfig } from './config.js';
|
|
3
6
|
export { inferLabel, joinPath, createBaseField } from './utils.js';
|
|
4
7
|
export { walkSchema } from './walker.js';
|
|
5
8
|
export { builtinProcessors, createProcessors } from './registry.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,6FAA6F;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,6FAA6F;AA4B7F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_utils.d.ts","sourceRoot":"","sources":["../../src/processors/_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,wBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"_utils.d.ts","sourceRoot":"","sources":["../../src/processors/_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,wBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO/D;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS9E;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO/D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export function getDef(schema) {
|
|
2
|
-
|
|
2
|
+
const candidate = schema;
|
|
3
|
+
return candidate['def'] ?? candidate['_zod']?.['def'] ?? {};
|
|
3
4
|
}
|
|
4
5
|
export function getShape(def) {
|
|
5
6
|
const rawShape = def['shape'];
|
|
@@ -10,6 +11,7 @@ export function getShape(def) {
|
|
|
10
11
|
return rawShape ?? {};
|
|
11
12
|
}
|
|
12
13
|
export function getBag(schema) {
|
|
13
|
-
|
|
14
|
+
const candidate = schema;
|
|
15
|
+
return candidate['_zod']?.['bag'] ?? candidate['def']?.['bag'] ?? {};
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=_utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_utils.js","sourceRoot":"","sources":["../../src/processors/_utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAC,MAAe,EAA2B;IAC/D,
|
|
1
|
+
{"version":3,"file":"_utils.js","sourceRoot":"","sources":["../../src/processors/_utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAC,MAAe,EAA2B;IAC/D,MAAM,SAAS,GAAG,MAGjB,CAAC;IAEF,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAAA,CAC7D;AAED,MAAM,UAAU,QAAQ,CAAC,GAA4B,EAA2B;IAC9E,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,QAAyB,CAAC;QAC3C,OAAQ,QAAQ,EAA8B,IAAI,EAAE,CAAC;IACvD,CAAC;IAED,OAAQ,QAAoC,IAAI,EAAE,CAAC;AAAA,CACpD;AAED,MAAM,UAAU,MAAM,CAAC,MAAe,EAA2B;IAC/D,MAAM,SAAS,GAAG,MAGjB,CAAC;IAEF,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAAA,CACtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/processors/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGlF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,
|
|
1
|
+
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/processors/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGlF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAwCN"}
|
|
@@ -7,7 +7,9 @@ export function processNumber(schema, _ctx, field, _params) {
|
|
|
7
7
|
const checks = Array.isArray(def['checks']) ? def['checks'] : [];
|
|
8
8
|
const hasIntegerConstraint = checks.some((check) => {
|
|
9
9
|
const value = check;
|
|
10
|
-
const nested = value['
|
|
10
|
+
const nested = value['def'] ??
|
|
11
|
+
value['_zod']?.['def'] ??
|
|
12
|
+
{};
|
|
11
13
|
return (value['kind'] === 'int' ||
|
|
12
14
|
value['check'] === 'int' ||
|
|
13
15
|
nested['check'] === 'number_format' ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/processors/number.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,aAAa,CAC3B,MAAe,EACf,IAA0B,EAC1B,KAAgB,EAChB,OAAsB,EAChB;IACN,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/processors/number.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,aAAa,CAC3B,MAAe,EACf,IAA0B,EAC1B,KAAgB,EAChB,OAAsB,EAChB;IACN,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,MAAM,MAAM,GACT,KAAK,CAAC,KAAK,CAAyC;YACpD,KAAK,CAAC,MAAM,CAAmD,EAAE,CAAC,KAAK,CAAC;YACzE,EAAE,CAAC;QACL,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK;YACvB,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK;YACxB,MAAM,CAAC,OAAO,CAAC,KAAK,eAAe;YACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK;YAC1B,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAS,CAC/B,CAAC;IAAA,CACH,CAAC,CAAC;IAEH,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;IAC1B,KAAK,CAAC,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,KAAK;QACd,IAAI,EAAE,QAAQ;KACf,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QACzB,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AAAA,CACF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export interface FormField {
|
|
|
44
44
|
children?: FormField[];
|
|
45
45
|
/** Template for array items */
|
|
46
46
|
arrayItem?: FormField;
|
|
47
|
-
/** Validation constraints extracted from _zod.bag */
|
|
47
|
+
/** Validation constraints extracted from Zod v4 constraint bag (_zod.bag) */
|
|
48
48
|
constraints: FormFieldConstraints;
|
|
49
49
|
/** Original Zod def.type for reference */
|
|
50
50
|
zodType: string;
|
|
@@ -53,7 +53,7 @@ export interface FormField {
|
|
|
53
53
|
/** Custom render function from FormMeta (runtime only, not serialisable) */
|
|
54
54
|
render?: (field: FormField, props: Record<string, unknown>) => unknown;
|
|
55
55
|
}
|
|
56
|
-
export interface
|
|
56
|
+
export interface FieldConfig {
|
|
57
57
|
/** Override component, e.g. "textarea", "switch", "combobox" */
|
|
58
58
|
fieldType?: string;
|
|
59
59
|
/** Display order override */
|
|
@@ -64,6 +64,8 @@ export interface FormMeta {
|
|
|
64
64
|
gridColumn?: string;
|
|
65
65
|
/** Arbitrary field metadata props forwarded by processors */
|
|
66
66
|
props?: Record<string, unknown>;
|
|
67
|
+
}
|
|
68
|
+
export interface FormMeta extends FieldConfig {
|
|
67
69
|
/** Custom render function (runtime only, ignored in codegen) */
|
|
68
70
|
render?: (field: FormField, props: unknown) => unknown;
|
|
69
71
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAInC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED