@fieldia/core 0.5.0 → 0.6.0
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/package.json +1 -1
- package/schema/page.schema.json +375 -12
- package/src/index.d.mts +1 -1
- package/src/index.d.ts +1 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/index.mjs +1 -1
- package/src/index.mjs.map +1 -1
- package/src/lib/format/layout.d.mts +217 -3
- package/src/lib/format/layout.d.ts +217 -3
- package/src/lib/format/layout.js +22 -3
- package/src/lib/format/layout.js.map +1 -1
- package/src/lib/format/layout.mjs +20 -2
- package/src/lib/format/layout.mjs.map +1 -1
- package/src/lib/format/page.d.mts +86 -0
- package/src/lib/format/page.d.ts +86 -0
- package/src/lib/format/page.js +2 -0
- package/src/lib/format/page.js.map +1 -1
- package/src/lib/format/page.mjs +2 -0
- package/src/lib/format/page.mjs.map +1 -1
- package/src/lib/format/validate.js +8 -1
- package/src/lib/format/validate.js.map +1 -1
- package/src/lib/format/validate.mjs +8 -1
- package/src/lib/format/validate.mjs.map +1 -1
- package/src/lib/record/form.d.mts +10 -0
- package/src/lib/record/form.d.ts +10 -0
- package/src/lib/record/form.js +71 -5
- package/src/lib/record/form.js.map +1 -1
- package/src/lib/record/form.mjs +71 -5
- package/src/lib/record/form.mjs.map +1 -1
|
@@ -72,17 +72,33 @@ export interface SlotNode {
|
|
|
72
72
|
name: string;
|
|
73
73
|
invisible?: Modifier;
|
|
74
74
|
}
|
|
75
|
+
export type ColumnCount = 1 | 2 | 3 | 4;
|
|
76
|
+
/**
|
|
77
|
+
* Columns at each width of the form: `wide` above 760px, `medium` up to 760px,
|
|
78
|
+
* `narrow` up to 520px. A width left out stacks the way the skin does by itself.
|
|
79
|
+
*/
|
|
80
|
+
export interface ColumnsByWidth {
|
|
81
|
+
wide: ColumnCount;
|
|
82
|
+
medium?: ColumnCount;
|
|
83
|
+
narrow?: ColumnCount;
|
|
84
|
+
}
|
|
85
|
+
/** A section's columns at full width, whichever way they are written. */
|
|
86
|
+
export declare function wideColumns(columns: ColumnCount | ColumnsByWidth | undefined): ColumnCount;
|
|
75
87
|
export interface SectionNode {
|
|
76
88
|
type: 'section';
|
|
77
89
|
id: string;
|
|
78
90
|
title?: string;
|
|
91
|
+
/** An icon before the title, by name: one of Fieldia's own, or one the app adds. */
|
|
92
|
+
icon?: string;
|
|
79
93
|
description?: string;
|
|
80
|
-
columns?:
|
|
94
|
+
columns?: ColumnCount | ColumnsByWidth;
|
|
81
95
|
/** The title folds and unfolds the section. Needs a title. */
|
|
82
96
|
collapsible?: boolean;
|
|
83
97
|
/** A collapsible section that starts folded. */
|
|
84
98
|
collapsed?: boolean;
|
|
85
99
|
invisible?: Modifier;
|
|
100
|
+
/** Every field inside is read-only while this holds. */
|
|
101
|
+
readonly?: Modifier;
|
|
86
102
|
children: LayoutNode[];
|
|
87
103
|
}
|
|
88
104
|
export interface TabNode {
|
|
@@ -105,12 +121,21 @@ export interface StepNode {
|
|
|
105
121
|
id: string;
|
|
106
122
|
label: string;
|
|
107
123
|
description?: string;
|
|
124
|
+
icon?: string;
|
|
125
|
+
/** Can be skipped: its answers are then left out, and its required fields not asked for. */
|
|
126
|
+
optional?: boolean;
|
|
108
127
|
invisible?: Modifier;
|
|
109
128
|
children: LayoutNode[];
|
|
110
129
|
}
|
|
111
130
|
export interface WizardNode {
|
|
112
131
|
type: 'wizard';
|
|
113
132
|
id: string;
|
|
133
|
+
/** The list of steps can be clicked: back to any step, or forward past steps that are complete. */
|
|
134
|
+
clickable?: boolean;
|
|
135
|
+
nextLabel?: string;
|
|
136
|
+
backLabel?: string;
|
|
137
|
+
/** The last step's button. */
|
|
138
|
+
finishLabel?: string;
|
|
114
139
|
children: StepNode[];
|
|
115
140
|
}
|
|
116
141
|
export interface SectionsNode {
|
|
@@ -137,6 +162,16 @@ export interface Alert {
|
|
|
137
162
|
id: string;
|
|
138
163
|
message: string;
|
|
139
164
|
tone?: Tone;
|
|
165
|
+
/** Has a × that hides it until the page opens again. */
|
|
166
|
+
dismissible?: boolean;
|
|
167
|
+
invisible?: Modifier;
|
|
168
|
+
}
|
|
169
|
+
/** A small label by the title, such as "Locked" or "VIP". */
|
|
170
|
+
export interface Badge {
|
|
171
|
+
id: string;
|
|
172
|
+
label: string;
|
|
173
|
+
tone?: Tone;
|
|
174
|
+
icon?: string;
|
|
140
175
|
invisible?: Modifier;
|
|
141
176
|
}
|
|
142
177
|
export interface SheetTitle {
|
|
@@ -144,6 +179,10 @@ export interface SheetTitle {
|
|
|
144
179
|
subtitleField?: string;
|
|
145
180
|
avatarField?: string;
|
|
146
181
|
placeholder?: string;
|
|
182
|
+
/** Fields over the title, such as an Individual/Company choice. */
|
|
183
|
+
above?: FieldNode[];
|
|
184
|
+
/** Fields under the title, such as "Can be sold" and "Can be purchased". */
|
|
185
|
+
below?: FieldNode[];
|
|
147
186
|
}
|
|
148
187
|
export interface Statusbar {
|
|
149
188
|
field: string;
|
|
@@ -151,6 +190,8 @@ export interface Statusbar {
|
|
|
151
190
|
visibleStates?: (string | number)[];
|
|
152
191
|
/** Clicking a state moves the record to it. */
|
|
153
192
|
clickable?: boolean;
|
|
193
|
+
/** In the header bar (the default), or in the sheet under the title. */
|
|
194
|
+
position?: 'header' | 'title';
|
|
154
195
|
}
|
|
155
196
|
/** The record layout: a header with a statusbar and buttons, then the sheet itself. */
|
|
156
197
|
export interface SheetNode {
|
|
@@ -162,6 +203,7 @@ export interface SheetNode {
|
|
|
162
203
|
statButtons?: StatButton[];
|
|
163
204
|
ribbon?: Ribbon;
|
|
164
205
|
alerts?: Alert[];
|
|
206
|
+
badges?: Badge[];
|
|
165
207
|
children: LayoutNode[];
|
|
166
208
|
sidePanel?: SlotNode;
|
|
167
209
|
}
|
|
@@ -231,11 +273,17 @@ export declare const SectionNodeSchema: z.ZodObject<{
|
|
|
231
273
|
type: z.ZodLiteral<"section">;
|
|
232
274
|
id: z.ZodString;
|
|
233
275
|
title: z.ZodOptional<z.ZodString>;
|
|
276
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
234
277
|
description: z.ZodOptional<z.ZodString>;
|
|
235
|
-
columns: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]
|
|
278
|
+
columns: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>, z.ZodObject<{
|
|
279
|
+
wide: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
|
|
280
|
+
medium: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
|
|
281
|
+
narrow: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
|
|
282
|
+
}, z.z.core.$strict>]>>;
|
|
236
283
|
collapsible: z.ZodOptional<z.ZodBoolean>;
|
|
237
284
|
collapsed: z.ZodOptional<z.ZodBoolean>;
|
|
238
285
|
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
286
|
+
readonly: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
239
287
|
children: z.ZodArray<typeof LayoutNodeSchema>;
|
|
240
288
|
}, z.z.core.$strict>;
|
|
241
289
|
export declare const TabNodeSchema: z.ZodObject<{
|
|
@@ -316,11 +364,17 @@ export declare const LayoutNodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
316
364
|
type: z.ZodLiteral<"section">;
|
|
317
365
|
id: z.ZodString;
|
|
318
366
|
title: z.ZodOptional<z.ZodString>;
|
|
367
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
319
368
|
description: z.ZodOptional<z.ZodString>;
|
|
320
|
-
columns: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]
|
|
369
|
+
columns: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>, z.ZodObject<{
|
|
370
|
+
wide: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
|
|
371
|
+
medium: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
|
|
372
|
+
narrow: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
|
|
373
|
+
}, z.z.core.$strict>]>>;
|
|
321
374
|
collapsible: z.ZodOptional<z.ZodBoolean>;
|
|
322
375
|
collapsed: z.ZodOptional<z.ZodBoolean>;
|
|
323
376
|
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
377
|
+
readonly: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
324
378
|
children: z.ZodArray<typeof LayoutNodeSchema>;
|
|
325
379
|
}, z.z.core.$strict>, z.ZodObject<{
|
|
326
380
|
type: z.ZodLiteral<"tabs">;
|
|
@@ -340,17 +394,25 @@ export declare const StepNodeSchema: z.ZodObject<{
|
|
|
340
394
|
id: z.ZodString;
|
|
341
395
|
label: z.ZodString;
|
|
342
396
|
description: z.ZodOptional<z.ZodString>;
|
|
397
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
398
|
+
optional: z.ZodOptional<z.ZodBoolean>;
|
|
343
399
|
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
344
400
|
children: z.ZodArray<typeof LayoutNodeSchema>;
|
|
345
401
|
}, z.z.core.$strict>;
|
|
346
402
|
export declare const WizardNodeSchema: z.ZodObject<{
|
|
347
403
|
type: z.ZodLiteral<"wizard">;
|
|
348
404
|
id: z.ZodString;
|
|
405
|
+
clickable: z.ZodOptional<z.ZodBoolean>;
|
|
406
|
+
nextLabel: z.ZodOptional<z.ZodString>;
|
|
407
|
+
backLabel: z.ZodOptional<z.ZodString>;
|
|
408
|
+
finishLabel: z.ZodOptional<z.ZodString>;
|
|
349
409
|
children: z.ZodArray<z.ZodObject<{
|
|
350
410
|
type: z.ZodLiteral<"step">;
|
|
351
411
|
id: z.ZodString;
|
|
352
412
|
label: z.ZodString;
|
|
353
413
|
description: z.ZodOptional<z.ZodString>;
|
|
414
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
415
|
+
optional: z.ZodOptional<z.ZodBoolean>;
|
|
354
416
|
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
355
417
|
children: z.ZodArray<typeof LayoutNodeSchema>;
|
|
356
418
|
}, z.z.core.$strict>>;
|
|
@@ -390,6 +452,20 @@ export declare const AlertSchema: z.ZodObject<{
|
|
|
390
452
|
danger: "danger";
|
|
391
453
|
muted: "muted";
|
|
392
454
|
}>>;
|
|
455
|
+
dismissible: z.ZodOptional<z.ZodBoolean>;
|
|
456
|
+
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
457
|
+
}, z.z.core.$strict>;
|
|
458
|
+
export declare const BadgeSchema: z.ZodObject<{
|
|
459
|
+
id: z.ZodString;
|
|
460
|
+
label: z.ZodString;
|
|
461
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
462
|
+
success: "success";
|
|
463
|
+
info: "info";
|
|
464
|
+
warning: "warning";
|
|
465
|
+
danger: "danger";
|
|
466
|
+
muted: "muted";
|
|
467
|
+
}>>;
|
|
468
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
393
469
|
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
394
470
|
}, z.z.core.$strict>;
|
|
395
471
|
export declare const SheetNodeSchema: z.ZodObject<{
|
|
@@ -400,11 +476,63 @@ export declare const SheetNodeSchema: z.ZodObject<{
|
|
|
400
476
|
subtitleField: z.ZodOptional<z.ZodString>;
|
|
401
477
|
avatarField: z.ZodOptional<z.ZodString>;
|
|
402
478
|
placeholder: z.ZodOptional<z.ZodString>;
|
|
479
|
+
above: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
480
|
+
type: z.ZodLiteral<"field">;
|
|
481
|
+
id: z.ZodString;
|
|
482
|
+
field: z.ZodString;
|
|
483
|
+
label: z.ZodOptional<z.ZodString>;
|
|
484
|
+
widget: z.ZodOptional<z.ZodString>;
|
|
485
|
+
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
|
|
486
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
487
|
+
help: z.ZodOptional<z.ZodString>;
|
|
488
|
+
colspan: z.ZodOptional<z.ZodInt>;
|
|
489
|
+
columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
490
|
+
totals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
491
|
+
optionalColumns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
492
|
+
show: "show";
|
|
493
|
+
hide: "hide";
|
|
494
|
+
}>>>;
|
|
495
|
+
editMode: z.ZodOptional<z.ZodEnum<{
|
|
496
|
+
cell: "cell";
|
|
497
|
+
row: "row";
|
|
498
|
+
}>>;
|
|
499
|
+
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
500
|
+
readonly: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
501
|
+
required: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
502
|
+
}, z.z.core.$strict>>>;
|
|
503
|
+
below: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
504
|
+
type: z.ZodLiteral<"field">;
|
|
505
|
+
id: z.ZodString;
|
|
506
|
+
field: z.ZodString;
|
|
507
|
+
label: z.ZodOptional<z.ZodString>;
|
|
508
|
+
widget: z.ZodOptional<z.ZodString>;
|
|
509
|
+
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
|
|
510
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
511
|
+
help: z.ZodOptional<z.ZodString>;
|
|
512
|
+
colspan: z.ZodOptional<z.ZodInt>;
|
|
513
|
+
columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
514
|
+
totals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
515
|
+
optionalColumns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
516
|
+
show: "show";
|
|
517
|
+
hide: "hide";
|
|
518
|
+
}>>>;
|
|
519
|
+
editMode: z.ZodOptional<z.ZodEnum<{
|
|
520
|
+
cell: "cell";
|
|
521
|
+
row: "row";
|
|
522
|
+
}>>;
|
|
523
|
+
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
524
|
+
readonly: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
525
|
+
required: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
526
|
+
}, z.z.core.$strict>>>;
|
|
403
527
|
}, z.z.core.$strict>>;
|
|
404
528
|
statusbar: z.ZodOptional<z.ZodObject<{
|
|
405
529
|
field: z.ZodString;
|
|
406
530
|
visibleStates: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
407
531
|
clickable: z.ZodOptional<z.ZodBoolean>;
|
|
532
|
+
position: z.ZodOptional<z.ZodEnum<{
|
|
533
|
+
title: "title";
|
|
534
|
+
header: "header";
|
|
535
|
+
}>>;
|
|
408
536
|
}, z.z.core.$strict>>;
|
|
409
537
|
buttons: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
410
538
|
type: z.ZodLiteral<"button">;
|
|
@@ -452,6 +580,20 @@ export declare const SheetNodeSchema: z.ZodObject<{
|
|
|
452
580
|
danger: "danger";
|
|
453
581
|
muted: "muted";
|
|
454
582
|
}>>;
|
|
583
|
+
dismissible: z.ZodOptional<z.ZodBoolean>;
|
|
584
|
+
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
585
|
+
}, z.z.core.$strict>>>;
|
|
586
|
+
badges: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
587
|
+
id: z.ZodString;
|
|
588
|
+
label: z.ZodString;
|
|
589
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
590
|
+
success: "success";
|
|
591
|
+
info: "info";
|
|
592
|
+
warning: "warning";
|
|
593
|
+
danger: "danger";
|
|
594
|
+
muted: "muted";
|
|
595
|
+
}>>;
|
|
596
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
455
597
|
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
456
598
|
}, z.z.core.$strict>>>;
|
|
457
599
|
children: z.ZodArray<typeof LayoutNodeSchema>;
|
|
@@ -470,11 +612,63 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
470
612
|
subtitleField: z.ZodOptional<z.ZodString>;
|
|
471
613
|
avatarField: z.ZodOptional<z.ZodString>;
|
|
472
614
|
placeholder: z.ZodOptional<z.ZodString>;
|
|
615
|
+
above: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
616
|
+
type: z.ZodLiteral<"field">;
|
|
617
|
+
id: z.ZodString;
|
|
618
|
+
field: z.ZodString;
|
|
619
|
+
label: z.ZodOptional<z.ZodString>;
|
|
620
|
+
widget: z.ZodOptional<z.ZodString>;
|
|
621
|
+
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
|
|
622
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
623
|
+
help: z.ZodOptional<z.ZodString>;
|
|
624
|
+
colspan: z.ZodOptional<z.ZodInt>;
|
|
625
|
+
columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
626
|
+
totals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
627
|
+
optionalColumns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
628
|
+
show: "show";
|
|
629
|
+
hide: "hide";
|
|
630
|
+
}>>>;
|
|
631
|
+
editMode: z.ZodOptional<z.ZodEnum<{
|
|
632
|
+
cell: "cell";
|
|
633
|
+
row: "row";
|
|
634
|
+
}>>;
|
|
635
|
+
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
636
|
+
readonly: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
637
|
+
required: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
638
|
+
}, z.z.core.$strict>>>;
|
|
639
|
+
below: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
640
|
+
type: z.ZodLiteral<"field">;
|
|
641
|
+
id: z.ZodString;
|
|
642
|
+
field: z.ZodString;
|
|
643
|
+
label: z.ZodOptional<z.ZodString>;
|
|
644
|
+
widget: z.ZodOptional<z.ZodString>;
|
|
645
|
+
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
|
|
646
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
647
|
+
help: z.ZodOptional<z.ZodString>;
|
|
648
|
+
colspan: z.ZodOptional<z.ZodInt>;
|
|
649
|
+
columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
650
|
+
totals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
651
|
+
optionalColumns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
652
|
+
show: "show";
|
|
653
|
+
hide: "hide";
|
|
654
|
+
}>>>;
|
|
655
|
+
editMode: z.ZodOptional<z.ZodEnum<{
|
|
656
|
+
cell: "cell";
|
|
657
|
+
row: "row";
|
|
658
|
+
}>>;
|
|
659
|
+
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
660
|
+
readonly: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
661
|
+
required: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
662
|
+
}, z.z.core.$strict>>>;
|
|
473
663
|
}, z.z.core.$strict>>;
|
|
474
664
|
statusbar: z.ZodOptional<z.ZodObject<{
|
|
475
665
|
field: z.ZodString;
|
|
476
666
|
visibleStates: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
477
667
|
clickable: z.ZodOptional<z.ZodBoolean>;
|
|
668
|
+
position: z.ZodOptional<z.ZodEnum<{
|
|
669
|
+
title: "title";
|
|
670
|
+
header: "header";
|
|
671
|
+
}>>;
|
|
478
672
|
}, z.z.core.$strict>>;
|
|
479
673
|
buttons: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
480
674
|
type: z.ZodLiteral<"button">;
|
|
@@ -522,6 +716,20 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
522
716
|
danger: "danger";
|
|
523
717
|
muted: "muted";
|
|
524
718
|
}>>;
|
|
719
|
+
dismissible: z.ZodOptional<z.ZodBoolean>;
|
|
720
|
+
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
721
|
+
}, z.z.core.$strict>>>;
|
|
722
|
+
badges: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
723
|
+
id: z.ZodString;
|
|
724
|
+
label: z.ZodString;
|
|
725
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
726
|
+
success: "success";
|
|
727
|
+
info: "info";
|
|
728
|
+
warning: "warning";
|
|
729
|
+
danger: "danger";
|
|
730
|
+
muted: "muted";
|
|
731
|
+
}>>;
|
|
732
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
525
733
|
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
526
734
|
}, z.z.core.$strict>>>;
|
|
527
735
|
children: z.ZodArray<typeof LayoutNodeSchema>;
|
|
@@ -550,11 +758,17 @@ export declare const RootLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
550
758
|
}, z.z.core.$strict>, z.ZodObject<{
|
|
551
759
|
type: z.ZodLiteral<"wizard">;
|
|
552
760
|
id: z.ZodString;
|
|
761
|
+
clickable: z.ZodOptional<z.ZodBoolean>;
|
|
762
|
+
nextLabel: z.ZodOptional<z.ZodString>;
|
|
763
|
+
backLabel: z.ZodOptional<z.ZodString>;
|
|
764
|
+
finishLabel: z.ZodOptional<z.ZodString>;
|
|
553
765
|
children: z.ZodArray<z.ZodObject<{
|
|
554
766
|
type: z.ZodLiteral<"step">;
|
|
555
767
|
id: z.ZodString;
|
|
556
768
|
label: z.ZodString;
|
|
557
769
|
description: z.ZodOptional<z.ZodString>;
|
|
770
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
771
|
+
optional: z.ZodOptional<z.ZodBoolean>;
|
|
558
772
|
invisible: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
559
773
|
children: z.ZodArray<typeof LayoutNodeSchema>;
|
|
560
774
|
}, z.z.core.$strict>>;
|
package/src/lib/format/layout.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RootLayoutSchema = exports.SheetNodeSchema = exports.AlertSchema = exports.RibbonSchema = exports.StatButtonSchema = exports.SectionsNodeSchema = exports.WizardNodeSchema = exports.StepNodeSchema = exports.LayoutNodeSchema = exports.TabsNodeSchema = exports.TabNodeSchema = exports.SectionNodeSchema = exports.SlotNodeSchema = exports.TextNodeSchema = exports.ButtonNodeSchema = exports.FieldNodeSchema = exports.ModifierSchema = void 0;
|
|
3
|
+
exports.RootLayoutSchema = exports.SheetNodeSchema = exports.BadgeSchema = exports.AlertSchema = exports.RibbonSchema = exports.StatButtonSchema = exports.SectionsNodeSchema = exports.WizardNodeSchema = exports.StepNodeSchema = exports.LayoutNodeSchema = exports.TabsNodeSchema = exports.TabNodeSchema = exports.SectionNodeSchema = exports.SlotNodeSchema = exports.TextNodeSchema = exports.ButtonNodeSchema = exports.FieldNodeSchema = exports.ModifierSchema = void 0;
|
|
4
|
+
exports.wideColumns = wideColumns;
|
|
4
5
|
const z = require("zod");
|
|
5
6
|
const field_1 = require("./field");
|
|
6
7
|
const json_1 = require("./json");
|
|
8
|
+
/** A section's columns at full width, whichever way they are written. */
|
|
9
|
+
function wideColumns(columns) {
|
|
10
|
+
return typeof columns === 'object' ? columns.wide : columns ?? 1;
|
|
11
|
+
}
|
|
7
12
|
// ---------------------------------------------------------------------------
|
|
8
13
|
// Schemas. Recursion goes through getters on z.strictObject (zod 4's own
|
|
9
14
|
// pattern); `.strict()` would clone the shape and run the getters too early.
|
|
@@ -13,6 +18,7 @@ exports.ModifierSchema = z.union([z.boolean(), z.string().min(1)]).meta({ id: 'M
|
|
|
13
18
|
const id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);
|
|
14
19
|
const fieldName = z.string().regex(field_1.FIELD_NAME);
|
|
15
20
|
const tone = z.enum(['info', 'success', 'warning', 'danger', 'muted']);
|
|
21
|
+
const columnCount = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]);
|
|
16
22
|
const invisible = exports.ModifierSchema.optional();
|
|
17
23
|
exports.FieldNodeSchema = z.strictObject({
|
|
18
24
|
type: z.literal('field'),
|
|
@@ -55,11 +61,13 @@ exports.SectionNodeSchema = z.strictObject({
|
|
|
55
61
|
type: z.literal('section'),
|
|
56
62
|
id,
|
|
57
63
|
title: z.string().optional(),
|
|
64
|
+
icon: z.string().min(1).optional(),
|
|
58
65
|
description: z.string().optional(),
|
|
59
|
-
columns: z.union([
|
|
66
|
+
columns: z.union([columnCount, z.strictObject({ wide: columnCount, medium: columnCount.optional(), narrow: columnCount.optional() })]).optional(),
|
|
60
67
|
collapsible: z.boolean().optional(),
|
|
61
68
|
collapsed: z.boolean().optional(),
|
|
62
69
|
invisible,
|
|
70
|
+
readonly: exports.ModifierSchema.optional(),
|
|
63
71
|
get children() {
|
|
64
72
|
return z.array(exports.LayoutNodeSchema);
|
|
65
73
|
},
|
|
@@ -95,6 +103,8 @@ exports.StepNodeSchema = z.strictObject({
|
|
|
95
103
|
id,
|
|
96
104
|
label: z.string(),
|
|
97
105
|
description: z.string().optional(),
|
|
106
|
+
icon: z.string().min(1).optional(),
|
|
107
|
+
optional: z.boolean().optional(),
|
|
98
108
|
invisible,
|
|
99
109
|
get children() {
|
|
100
110
|
return z.array(exports.LayoutNodeSchema);
|
|
@@ -103,6 +113,10 @@ exports.StepNodeSchema = z.strictObject({
|
|
|
103
113
|
exports.WizardNodeSchema = z.strictObject({
|
|
104
114
|
type: z.literal('wizard'),
|
|
105
115
|
id,
|
|
116
|
+
clickable: z.boolean().optional(),
|
|
117
|
+
nextLabel: z.string().min(1).optional(),
|
|
118
|
+
backLabel: z.string().min(1).optional(),
|
|
119
|
+
finishLabel: z.string().min(1).optional(),
|
|
106
120
|
children: z.array(exports.StepNodeSchema).min(1),
|
|
107
121
|
}).meta({ id: 'WizardNode' });
|
|
108
122
|
exports.SectionsNodeSchema = z.strictObject({
|
|
@@ -121,7 +135,8 @@ exports.StatButtonSchema = z.strictObject({
|
|
|
121
135
|
invisible,
|
|
122
136
|
});
|
|
123
137
|
exports.RibbonSchema = z.strictObject({ id, label: z.string(), tone: tone.optional(), invisible });
|
|
124
|
-
exports.AlertSchema = z.strictObject({ id, message: z.string(), tone: tone.optional(), invisible });
|
|
138
|
+
exports.AlertSchema = z.strictObject({ id, message: z.string(), tone: tone.optional(), dismissible: z.boolean().optional(), invisible });
|
|
139
|
+
exports.BadgeSchema = z.strictObject({ id, label: z.string(), tone: tone.optional(), icon: z.string().min(1).optional(), invisible });
|
|
125
140
|
exports.SheetNodeSchema = z.strictObject({
|
|
126
141
|
type: z.literal('sheet'),
|
|
127
142
|
id,
|
|
@@ -131,6 +146,8 @@ exports.SheetNodeSchema = z.strictObject({
|
|
|
131
146
|
subtitleField: fieldName.optional(),
|
|
132
147
|
avatarField: fieldName.optional(),
|
|
133
148
|
placeholder: z.string().optional(),
|
|
149
|
+
above: z.array(exports.FieldNodeSchema).optional(),
|
|
150
|
+
below: z.array(exports.FieldNodeSchema).optional(),
|
|
134
151
|
})
|
|
135
152
|
.optional(),
|
|
136
153
|
statusbar: z
|
|
@@ -138,12 +155,14 @@ exports.SheetNodeSchema = z.strictObject({
|
|
|
138
155
|
field: fieldName,
|
|
139
156
|
visibleStates: z.array(z.union([z.string(), z.number()])).optional(),
|
|
140
157
|
clickable: z.boolean().optional(),
|
|
158
|
+
position: z.enum(['header', 'title']).optional(),
|
|
141
159
|
})
|
|
142
160
|
.optional(),
|
|
143
161
|
buttons: z.array(exports.ButtonNodeSchema).optional(),
|
|
144
162
|
statButtons: z.array(exports.StatButtonSchema).optional(),
|
|
145
163
|
ribbon: exports.RibbonSchema.optional(),
|
|
146
164
|
alerts: z.array(exports.AlertSchema).optional(),
|
|
165
|
+
badges: z.array(exports.BadgeSchema).optional(),
|
|
147
166
|
get children() {
|
|
148
167
|
return z.array(exports.LayoutNodeSchema);
|
|
149
168
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/layout.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
2
|
import { FIELD_NAME } from './field.mjs';
|
|
3
3
|
import { JsonValueSchema } from './json.mjs';
|
|
4
|
+
/** A section's columns at full width, whichever way they are written. */
|
|
5
|
+
export function wideColumns(columns) {
|
|
6
|
+
return typeof columns === 'object' ? columns.wide : columns ?? 1;
|
|
7
|
+
}
|
|
4
8
|
// ---------------------------------------------------------------------------
|
|
5
9
|
// Schemas. Recursion goes through getters on z.strictObject (zod 4's own
|
|
6
10
|
// pattern); `.strict()` would clone the shape and run the getters too early.
|
|
@@ -10,6 +14,7 @@ export const ModifierSchema = z.union([z.boolean(), z.string().min(1)]).meta({ i
|
|
|
10
14
|
const id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);
|
|
11
15
|
const fieldName = z.string().regex(FIELD_NAME);
|
|
12
16
|
const tone = z.enum(['info', 'success', 'warning', 'danger', 'muted']);
|
|
17
|
+
const columnCount = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]);
|
|
13
18
|
const invisible = ModifierSchema.optional();
|
|
14
19
|
export const FieldNodeSchema = z.strictObject({
|
|
15
20
|
type: z.literal('field'),
|
|
@@ -52,11 +57,13 @@ export const SectionNodeSchema = z.strictObject({
|
|
|
52
57
|
type: z.literal('section'),
|
|
53
58
|
id,
|
|
54
59
|
title: z.string().optional(),
|
|
60
|
+
icon: z.string().min(1).optional(),
|
|
55
61
|
description: z.string().optional(),
|
|
56
|
-
columns: z.union([
|
|
62
|
+
columns: z.union([columnCount, z.strictObject({ wide: columnCount, medium: columnCount.optional(), narrow: columnCount.optional() })]).optional(),
|
|
57
63
|
collapsible: z.boolean().optional(),
|
|
58
64
|
collapsed: z.boolean().optional(),
|
|
59
65
|
invisible,
|
|
66
|
+
readonly: ModifierSchema.optional(),
|
|
60
67
|
get children() {
|
|
61
68
|
return z.array(LayoutNodeSchema);
|
|
62
69
|
},
|
|
@@ -92,6 +99,8 @@ export const StepNodeSchema = z.strictObject({
|
|
|
92
99
|
id,
|
|
93
100
|
label: z.string(),
|
|
94
101
|
description: z.string().optional(),
|
|
102
|
+
icon: z.string().min(1).optional(),
|
|
103
|
+
optional: z.boolean().optional(),
|
|
95
104
|
invisible,
|
|
96
105
|
get children() {
|
|
97
106
|
return z.array(LayoutNodeSchema);
|
|
@@ -100,6 +109,10 @@ export const StepNodeSchema = z.strictObject({
|
|
|
100
109
|
export const WizardNodeSchema = z.strictObject({
|
|
101
110
|
type: z.literal('wizard'),
|
|
102
111
|
id,
|
|
112
|
+
clickable: z.boolean().optional(),
|
|
113
|
+
nextLabel: z.string().min(1).optional(),
|
|
114
|
+
backLabel: z.string().min(1).optional(),
|
|
115
|
+
finishLabel: z.string().min(1).optional(),
|
|
103
116
|
children: z.array(StepNodeSchema).min(1),
|
|
104
117
|
}).meta({ id: 'WizardNode' });
|
|
105
118
|
export const SectionsNodeSchema = z.strictObject({
|
|
@@ -118,7 +131,8 @@ export const StatButtonSchema = z.strictObject({
|
|
|
118
131
|
invisible,
|
|
119
132
|
});
|
|
120
133
|
export const RibbonSchema = z.strictObject({ id, label: z.string(), tone: tone.optional(), invisible });
|
|
121
|
-
export const AlertSchema = z.strictObject({ id, message: z.string(), tone: tone.optional(), invisible });
|
|
134
|
+
export const AlertSchema = z.strictObject({ id, message: z.string(), tone: tone.optional(), dismissible: z.boolean().optional(), invisible });
|
|
135
|
+
export const BadgeSchema = z.strictObject({ id, label: z.string(), tone: tone.optional(), icon: z.string().min(1).optional(), invisible });
|
|
122
136
|
export const SheetNodeSchema = z.strictObject({
|
|
123
137
|
type: z.literal('sheet'),
|
|
124
138
|
id,
|
|
@@ -128,6 +142,8 @@ export const SheetNodeSchema = z.strictObject({
|
|
|
128
142
|
subtitleField: fieldName.optional(),
|
|
129
143
|
avatarField: fieldName.optional(),
|
|
130
144
|
placeholder: z.string().optional(),
|
|
145
|
+
above: z.array(FieldNodeSchema).optional(),
|
|
146
|
+
below: z.array(FieldNodeSchema).optional(),
|
|
131
147
|
})
|
|
132
148
|
.optional(),
|
|
133
149
|
statusbar: z
|
|
@@ -135,12 +151,14 @@ export const SheetNodeSchema = z.strictObject({
|
|
|
135
151
|
field: fieldName,
|
|
136
152
|
visibleStates: z.array(z.union([z.string(), z.number()])).optional(),
|
|
137
153
|
clickable: z.boolean().optional(),
|
|
154
|
+
position: z.enum(['header', 'title']).optional(),
|
|
138
155
|
})
|
|
139
156
|
.optional(),
|
|
140
157
|
buttons: z.array(ButtonNodeSchema).optional(),
|
|
141
158
|
statButtons: z.array(StatButtonSchema).optional(),
|
|
142
159
|
ribbon: RibbonSchema.optional(),
|
|
143
160
|
alerts: z.array(AlertSchema).optional(),
|
|
161
|
+
badges: z.array(BadgeSchema).optional(),
|
|
144
162
|
get children() {
|
|
145
163
|
return z.array(LayoutNodeSchema);
|
|
146
164
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAkB,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/layout.ts"],"names":[],"mappings":"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"}
|