@duke333/builder-ui 0.1.5 → 0.2.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/dist/index.d.ts CHANGED
@@ -1,17 +1,2222 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { QueryClient } from '@tanstack/react-query';
4
+ import { BuilderApiContracts, BuilderApiClient, BuilderApiTransport, BuilderFieldOptionsQuery } from './api/index.js';
5
+ export { BuilderApiClientOptions, BuilderApiQuery, BuilderApiQueryValue, createBuilderApiClient } from './api/index.js';
6
+ import { BuilderHooks } from './hooks/index.js';
7
+ export { createBuilderHooks, createBuilderKeys } from './hooks/index.js';
8
+ import { BuilderDbTable, BuilderForm as BuilderForm$1, BuilderList, BuilderView as BuilderView$1, BuilderViewEntry, ListBuilderFormsQuery, ListBuilderFormsResponse, CreateBuilderFormInput, UpdateBuilderFormInput, ListBuilderListsQuery, ListBuilderListsResponse, CreateBuilderListInput, UpdateBuilderListInput, ListBuilderViewsQuery, ListBuilderViewsResponse, CreateBuilderViewInput, UpdateBuilderViewInput, ReplicateBuilderEntityInput, CreateBuilderViewEntryInput, CreateCompositeBuilderViewEntryInput, UpdateCompositeBuilderViewEntryInput, UpdateBuilderViewEntryInput, ListBuilderFieldOptionsQuery, ListBuilderFieldOptionsResponse, RunBuilderFieldTriggerInput, BuilderFieldTriggerEvent, BuilderFieldTriggerResponse, ListBuilderViewEntriesQuery, ListBuilderViewEntriesResponse } from '@duke333/builder-contracts';
1
9
  export { B as BUILDER_EDITOR_NONE_VALUE, a as BuilderAdminPageContracts, b as BuilderAdminPagesOptions, c as BuilderAdminPagesRoutes, d as BuilderDefaultEntity, e as BuilderDefaultEntityListResult, f as BuilderDefaultEntityManagerDependencies, g as BuilderDefaultEntityManagerLabels, h as BuilderDefaultEntityManagerState, i as BuilderDefaultEntityMutation, j as BuilderDefaultEntityQueryResult, k as BuilderDefaultFormEditorBodyOptions, l as BuilderDefaultListEditorBodyOptions, m as BuilderDefaultOption, n as BuilderEditorDbTable, o as BuilderEditorSelectOption, p as BuilderEditorTriggerValues, q as BuilderFormEditorBodyProps, r as BuilderFormEditorEntity, s as BuilderFormEditorFieldValues, t as BuilderFormEditorPageDependencies, u as BuilderFormEditorValues, v as BuilderListEditorBodyProps, w as BuilderListEditorColumnValues, x as BuilderListEditorEntity, y as BuilderListEditorPageDependencies, z as BuilderListEditorValues, A as BuilderViewEditorEntity, C as BuilderViewEditorValues, D as builderEditorOptionsToText, E as builderEditorSearchFieldsToText, F as builderEditorTextToOptions, G as builderEditorTextToSearchFields, H as builderFormEditorFieldsFromTable, I as builderFormEditorInputFromValues, J as builderFormEditorValuesFromEntity, K as builderListEditorColumnsFromTable, L as builderListEditorInputFromValues, M as builderListEditorValuesFromEntity, N as builderViewEditorInputFromValues, O as builderViewEditorValuesFromEntity, P as createBuilderAdminPages, Q as createBuilderDefaultEntityManagerComponent, R as createBuilderDefaultFormEditorBody, S as createBuilderDefaultListEditorBody, T as createBuilderFormEditorPageComponent, U as createBuilderListEditorPageComponent, V as getBuilderEditorTriggerRoute } from './BuilderAdminPages-C-jaMLOa.js';
2
10
  export { BuilderDefaultViewEditorContracts, BuilderDefaultViewEditorPageOptions, BuilderEntityDialogManagerDependencies, BuilderEntityManagerActions, BuilderEntityManagerAddButtonProps, BuilderEntityManagerDataGridProps, BuilderEntityManagerDeleteDialogProps, BuilderEntityManagerDependencies, BuilderEntityManagerDialogAddButtonProps, BuilderEntityManagerEditorDialogProps, BuilderEntityManagerEntity, BuilderEntityManagerHookResult, BuilderEntityManagerLabels, BuilderEntityManagerMutation, BuilderFormLayoutDragPayload, BuilderFormLayoutItem, BuilderViewDialogBodyProps, BuilderViewDialogDependencies, BuilderViewDialogProps, BuilderViewDialogShellProps, builderFormLayoutDragDataType, clampBuilderFormLayoutSpan, createBuilderDefaultViewEditorPage, createBuilderEntityDialogManagerComponent, createBuilderEntityManagerComponent, createBuilderViewDialogComponent, nextBuilderFormLayoutGroupId, parseBuilderFormLayoutDragPayload, serializeBuilderFormLayoutDragPayload, swapBuilderFormLayoutItems, useBuilderFormLayoutEditor } from './admin/index.js';
3
- export { BuilderApiClient, BuilderApiContracts, BuilderApiQuery, BuilderApiQueryValue, BuilderApiTransport, BuilderFieldOptionsQuery, createBuilderApiClient } from './api/index.js';
4
11
  export { D as DynamicFormContracts, a as DynamicFormDependencies, b as DynamicFormErrorStateProps, c as DynamicFormFieldsProps, d as DynamicFormNotifications, e as DynamicFormProps, f as DynamicFormShellProps, g as DynamicFormSubmitProps, h as DynamicListContracts, i as DynamicListDataGridProps, j as DynamicListDependencies, k as DynamicListErrorStateProps, l as DynamicListProps, m as DynamicViewAddButtonProps, n as DynamicViewColumnActions, o as DynamicViewContracts, p as DynamicViewDataGridProps, q as DynamicViewDeleteDialogProps, r as DynamicViewDependencies, s as DynamicViewEntryDialogProps, t as DynamicViewErrorStateProps, u as DynamicViewInteractionEvent, v as DynamicViewProps, w as RuntimeEntryDialogActionsProps, x as RuntimeEntryDialogDependencies, y as RuntimeEntryDialogFieldsProps, z as RuntimeEntryDialogNotifications, A as RuntimeEntryDialogProps, B as RuntimeEntryDialogSaveArgs, C as RuntimeEntryDialogShellProps, E as RuntimeEntryDialogViewLike, F as createDynamicFormComponent, G as createDynamicListComponent, H as createDynamicViewComponent, I as createRuntimeEntryDialogComponent, J as shouldHandleDynamicViewRowClick } from './RuntimeEntryDialog-Bw741XbS.js';
5
- export { BuilderHooks, createBuilderHooks, createBuilderKeys } from './hooks/index.js';
6
12
  export { BuilderRuntimeEntryLike, BuilderRuntimeEntryValues, BuilderRuntimeFieldLike, BuilderRuntimeFormSchemaLike, BuilderRuntimeFormValues, BuilderRuntimePresentation, BuilderRuntimeViewLike, createBuilderEntryDefaultValues, createBuilderFormDefaultValues, formatBuilderRuntimeValue } from './runtime/index.js';
7
13
  export { BuilderFrontendSetupValidation, BuilderIntegration, BuilderIntegrationConfig, BuilderIntegrationRoutes, createBuilderIntegration, createBuilderPortalIntegration, validateBuilderFrontendSetup } from './integration/index.js';
8
- import 'react';
9
14
  import 'react-hook-form';
10
- import '@tanstack/react-query';
15
+
16
+ type ReadyBuilderContracts = BuilderApiContracts & {
17
+ BuilderDbTable: BuilderDbTable;
18
+ BuilderForm: BuilderForm$1;
19
+ BuilderList: BuilderList;
20
+ BuilderView: BuilderView$1;
21
+ BuilderViewEntry: BuilderViewEntry;
22
+ ListBuilderFormsQuery: ListBuilderFormsQuery;
23
+ ListBuilderFormsResponse: ListBuilderFormsResponse;
24
+ CreateBuilderFormInput: CreateBuilderFormInput;
25
+ UpdateBuilderFormInput: UpdateBuilderFormInput;
26
+ ListBuilderListsQuery: ListBuilderListsQuery;
27
+ ListBuilderListsResponse: ListBuilderListsResponse;
28
+ CreateBuilderListInput: CreateBuilderListInput;
29
+ UpdateBuilderListInput: UpdateBuilderListInput;
30
+ ListBuilderViewsQuery: ListBuilderViewsQuery;
31
+ ListBuilderViewsResponse: ListBuilderViewsResponse;
32
+ CreateBuilderViewInput: CreateBuilderViewInput;
33
+ UpdateBuilderViewInput: UpdateBuilderViewInput;
34
+ ReplicateBuilderEntityInput: ReplicateBuilderEntityInput;
35
+ CreateBuilderViewEntryInput: CreateBuilderViewEntryInput;
36
+ CreateCompositeBuilderViewEntryInput: CreateCompositeBuilderViewEntryInput;
37
+ UpdateCompositeBuilderViewEntryInput: UpdateCompositeBuilderViewEntryInput;
38
+ UpdateBuilderViewEntryInput: UpdateBuilderViewEntryInput;
39
+ ListBuilderFieldOptionsQuery: ListBuilderFieldOptionsQuery;
40
+ ListBuilderFieldOptionsResponse: ListBuilderFieldOptionsResponse;
41
+ RunBuilderFieldTriggerInput: RunBuilderFieldTriggerInput;
42
+ BuilderFieldTriggerEvent: BuilderFieldTriggerEvent;
43
+ BuilderFieldTriggerResponse: BuilderFieldTriggerResponse;
44
+ ListBuilderViewEntriesQuery: ListBuilderViewEntriesQuery;
45
+ ListBuilderViewEntriesResponse: ListBuilderViewEntriesResponse;
46
+ };
47
+
48
+ type BuilderNotification = {
49
+ type: "success" | "error" | "info" | "warning";
50
+ message: string;
51
+ };
52
+ type BuilderClient = BuilderApiClient<ReadyBuilderContracts>;
53
+ type CreateBuilderClientOptions = {
54
+ transport: BuilderApiTransport;
55
+ apiBasePath?: string;
56
+ };
57
+ declare function createBuilderClient({ transport, apiBasePath }: CreateBuilderClientOptions): {
58
+ listBuilderForms: (query: object & {
59
+ page: number;
60
+ pageSize: number;
61
+ sort?: string | undefined;
62
+ search?: string | undefined;
63
+ }) => Promise<{
64
+ items: {
65
+ id: string;
66
+ title: string;
67
+ description: string | null;
68
+ version: number;
69
+ createdAt: string;
70
+ updatedAt: string;
71
+ source: {
72
+ type: "dbTable";
73
+ tableName: string;
74
+ } | {
75
+ type: "apiEndpoint";
76
+ basePath: string;
77
+ listPath?: string | undefined;
78
+ createPath?: string | undefined;
79
+ updatePath?: string | undefined;
80
+ deletePath?: string | undefined;
81
+ } | null;
82
+ type: "form";
83
+ schema: {
84
+ presentation: "dialog" | "drawer";
85
+ fields: {
86
+ key: string;
87
+ label: string;
88
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
89
+ required: boolean;
90
+ hidden: boolean;
91
+ disabled: boolean;
92
+ triggers: {
93
+ event: "onChange" | "onBlur";
94
+ action: string;
95
+ enabled: boolean;
96
+ debounceMs: number;
97
+ config: Record<string, unknown>;
98
+ }[];
99
+ placeholder?: string | undefined;
100
+ description?: string | undefined;
101
+ options?: {
102
+ label: string;
103
+ value: string;
104
+ }[] | undefined;
105
+ optionsSource?: {
106
+ type: "dbTable";
107
+ tableName: string;
108
+ valueField: string;
109
+ labelField: string;
110
+ searchFields?: string[] | undefined;
111
+ filterBy?: {
112
+ field: string;
113
+ valueFromField: string;
114
+ } | undefined;
115
+ } | undefined;
116
+ }[];
117
+ subforms: {
118
+ key: string;
119
+ label: string;
120
+ viewId: string;
121
+ parentField: string;
122
+ childField: string;
123
+ presentation: "dialog" | "drawer";
124
+ buttonLabel?: string | undefined;
125
+ icon?: string | undefined;
126
+ }[];
127
+ layout?: {
128
+ groups: {
129
+ id: string;
130
+ columns: 8 | 6 | 12;
131
+ fields: {
132
+ key: string;
133
+ span: number;
134
+ }[];
135
+ title?: string | undefined;
136
+ }[];
137
+ } | undefined;
138
+ };
139
+ triggers: {
140
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
141
+ enabled: boolean;
142
+ blocking: boolean;
143
+ config: Record<string, unknown>;
144
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
145
+ }[];
146
+ }[];
147
+ total: number;
148
+ page: number;
149
+ pageSize: number;
150
+ }>;
151
+ listBuilderDbTables: () => Promise<{
152
+ name: string;
153
+ label: string;
154
+ columns: {
155
+ name: string;
156
+ label: string;
157
+ dataType: string;
158
+ nullable: boolean;
159
+ fieldType: "number" | "date" | "text" | "money" | "checkbox";
160
+ sortable: boolean;
161
+ }[];
162
+ lookupColumns?: {
163
+ name: string;
164
+ label: string;
165
+ dataType: string;
166
+ nullable: boolean;
167
+ fieldType: "number" | "date" | "text" | "money" | "checkbox";
168
+ sortable: boolean;
169
+ }[] | undefined;
170
+ }[]>;
171
+ listBuilderFormOptions: () => Promise<({
172
+ id: string;
173
+ } & {
174
+ id: string;
175
+ title: string;
176
+ description: string | null;
177
+ version: number;
178
+ createdAt: string;
179
+ updatedAt: string;
180
+ source: {
181
+ type: "dbTable";
182
+ tableName: string;
183
+ } | {
184
+ type: "apiEndpoint";
185
+ basePath: string;
186
+ listPath?: string | undefined;
187
+ createPath?: string | undefined;
188
+ updatePath?: string | undefined;
189
+ deletePath?: string | undefined;
190
+ } | null;
191
+ type: "form";
192
+ schema: {
193
+ presentation: "dialog" | "drawer";
194
+ fields: {
195
+ key: string;
196
+ label: string;
197
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
198
+ required: boolean;
199
+ hidden: boolean;
200
+ disabled: boolean;
201
+ triggers: {
202
+ event: "onChange" | "onBlur";
203
+ action: string;
204
+ enabled: boolean;
205
+ debounceMs: number;
206
+ config: Record<string, unknown>;
207
+ }[];
208
+ placeholder?: string | undefined;
209
+ description?: string | undefined;
210
+ options?: {
211
+ label: string;
212
+ value: string;
213
+ }[] | undefined;
214
+ optionsSource?: {
215
+ type: "dbTable";
216
+ tableName: string;
217
+ valueField: string;
218
+ labelField: string;
219
+ searchFields?: string[] | undefined;
220
+ filterBy?: {
221
+ field: string;
222
+ valueFromField: string;
223
+ } | undefined;
224
+ } | undefined;
225
+ }[];
226
+ subforms: {
227
+ key: string;
228
+ label: string;
229
+ viewId: string;
230
+ parentField: string;
231
+ childField: string;
232
+ presentation: "dialog" | "drawer";
233
+ buttonLabel?: string | undefined;
234
+ icon?: string | undefined;
235
+ }[];
236
+ layout?: {
237
+ groups: {
238
+ id: string;
239
+ columns: 8 | 6 | 12;
240
+ fields: {
241
+ key: string;
242
+ span: number;
243
+ }[];
244
+ title?: string | undefined;
245
+ }[];
246
+ } | undefined;
247
+ };
248
+ triggers: {
249
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
250
+ enabled: boolean;
251
+ blocking: boolean;
252
+ config: Record<string, unknown>;
253
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
254
+ }[];
255
+ })[]>;
256
+ getBuilderForm: (id: string) => Promise<{
257
+ id: string;
258
+ } & {
259
+ id: string;
260
+ title: string;
261
+ description: string | null;
262
+ version: number;
263
+ createdAt: string;
264
+ updatedAt: string;
265
+ source: {
266
+ type: "dbTable";
267
+ tableName: string;
268
+ } | {
269
+ type: "apiEndpoint";
270
+ basePath: string;
271
+ listPath?: string | undefined;
272
+ createPath?: string | undefined;
273
+ updatePath?: string | undefined;
274
+ deletePath?: string | undefined;
275
+ } | null;
276
+ type: "form";
277
+ schema: {
278
+ presentation: "dialog" | "drawer";
279
+ fields: {
280
+ key: string;
281
+ label: string;
282
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
283
+ required: boolean;
284
+ hidden: boolean;
285
+ disabled: boolean;
286
+ triggers: {
287
+ event: "onChange" | "onBlur";
288
+ action: string;
289
+ enabled: boolean;
290
+ debounceMs: number;
291
+ config: Record<string, unknown>;
292
+ }[];
293
+ placeholder?: string | undefined;
294
+ description?: string | undefined;
295
+ options?: {
296
+ label: string;
297
+ value: string;
298
+ }[] | undefined;
299
+ optionsSource?: {
300
+ type: "dbTable";
301
+ tableName: string;
302
+ valueField: string;
303
+ labelField: string;
304
+ searchFields?: string[] | undefined;
305
+ filterBy?: {
306
+ field: string;
307
+ valueFromField: string;
308
+ } | undefined;
309
+ } | undefined;
310
+ }[];
311
+ subforms: {
312
+ key: string;
313
+ label: string;
314
+ viewId: string;
315
+ parentField: string;
316
+ childField: string;
317
+ presentation: "dialog" | "drawer";
318
+ buttonLabel?: string | undefined;
319
+ icon?: string | undefined;
320
+ }[];
321
+ layout?: {
322
+ groups: {
323
+ id: string;
324
+ columns: 8 | 6 | 12;
325
+ fields: {
326
+ key: string;
327
+ span: number;
328
+ }[];
329
+ title?: string | undefined;
330
+ }[];
331
+ } | undefined;
332
+ };
333
+ triggers: {
334
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
335
+ enabled: boolean;
336
+ blocking: boolean;
337
+ config: Record<string, unknown>;
338
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
339
+ }[];
340
+ }>;
341
+ createBuilderForm: (input: {
342
+ title: string;
343
+ schema: {
344
+ presentation: "dialog" | "drawer";
345
+ fields: {
346
+ key: string;
347
+ label: string;
348
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
349
+ required: boolean;
350
+ hidden: boolean;
351
+ disabled: boolean;
352
+ triggers: {
353
+ event: "onChange" | "onBlur";
354
+ action: string;
355
+ enabled: boolean;
356
+ debounceMs: number;
357
+ config: Record<string, unknown>;
358
+ }[];
359
+ placeholder?: string | undefined;
360
+ description?: string | undefined;
361
+ options?: {
362
+ label: string;
363
+ value: string;
364
+ }[] | undefined;
365
+ optionsSource?: {
366
+ type: "dbTable";
367
+ tableName: string;
368
+ valueField: string;
369
+ labelField: string;
370
+ searchFields?: string[] | undefined;
371
+ filterBy?: {
372
+ field: string;
373
+ valueFromField: string;
374
+ } | undefined;
375
+ } | undefined;
376
+ }[];
377
+ subforms: {
378
+ key: string;
379
+ label: string;
380
+ viewId: string;
381
+ parentField: string;
382
+ childField: string;
383
+ presentation: "dialog" | "drawer";
384
+ buttonLabel?: string | undefined;
385
+ icon?: string | undefined;
386
+ }[];
387
+ layout?: {
388
+ groups: {
389
+ id: string;
390
+ columns: 8 | 6 | 12;
391
+ fields: {
392
+ key: string;
393
+ span: number;
394
+ }[];
395
+ title?: string | undefined;
396
+ }[];
397
+ } | undefined;
398
+ };
399
+ description?: string | null | undefined;
400
+ source?: {
401
+ type: "dbTable";
402
+ tableName: string;
403
+ } | {
404
+ type: "apiEndpoint";
405
+ basePath: string;
406
+ listPath?: string | undefined;
407
+ createPath?: string | undefined;
408
+ updatePath?: string | undefined;
409
+ deletePath?: string | undefined;
410
+ } | null | undefined;
411
+ triggers?: {
412
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
413
+ enabled: boolean;
414
+ blocking: boolean;
415
+ config: Record<string, unknown>;
416
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
417
+ }[] | undefined;
418
+ }) => Promise<{
419
+ id: string;
420
+ } & {
421
+ id: string;
422
+ title: string;
423
+ description: string | null;
424
+ version: number;
425
+ createdAt: string;
426
+ updatedAt: string;
427
+ source: {
428
+ type: "dbTable";
429
+ tableName: string;
430
+ } | {
431
+ type: "apiEndpoint";
432
+ basePath: string;
433
+ listPath?: string | undefined;
434
+ createPath?: string | undefined;
435
+ updatePath?: string | undefined;
436
+ deletePath?: string | undefined;
437
+ } | null;
438
+ type: "form";
439
+ schema: {
440
+ presentation: "dialog" | "drawer";
441
+ fields: {
442
+ key: string;
443
+ label: string;
444
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
445
+ required: boolean;
446
+ hidden: boolean;
447
+ disabled: boolean;
448
+ triggers: {
449
+ event: "onChange" | "onBlur";
450
+ action: string;
451
+ enabled: boolean;
452
+ debounceMs: number;
453
+ config: Record<string, unknown>;
454
+ }[];
455
+ placeholder?: string | undefined;
456
+ description?: string | undefined;
457
+ options?: {
458
+ label: string;
459
+ value: string;
460
+ }[] | undefined;
461
+ optionsSource?: {
462
+ type: "dbTable";
463
+ tableName: string;
464
+ valueField: string;
465
+ labelField: string;
466
+ searchFields?: string[] | undefined;
467
+ filterBy?: {
468
+ field: string;
469
+ valueFromField: string;
470
+ } | undefined;
471
+ } | undefined;
472
+ }[];
473
+ subforms: {
474
+ key: string;
475
+ label: string;
476
+ viewId: string;
477
+ parentField: string;
478
+ childField: string;
479
+ presentation: "dialog" | "drawer";
480
+ buttonLabel?: string | undefined;
481
+ icon?: string | undefined;
482
+ }[];
483
+ layout?: {
484
+ groups: {
485
+ id: string;
486
+ columns: 8 | 6 | 12;
487
+ fields: {
488
+ key: string;
489
+ span: number;
490
+ }[];
491
+ title?: string | undefined;
492
+ }[];
493
+ } | undefined;
494
+ };
495
+ triggers: {
496
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
497
+ enabled: boolean;
498
+ blocking: boolean;
499
+ config: Record<string, unknown>;
500
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
501
+ }[];
502
+ }>;
503
+ updateBuilderForm: (id: string, input: {
504
+ title: string;
505
+ schema: {
506
+ presentation: "dialog" | "drawer";
507
+ fields: {
508
+ key: string;
509
+ label: string;
510
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
511
+ required: boolean;
512
+ hidden: boolean;
513
+ disabled: boolean;
514
+ triggers: {
515
+ event: "onChange" | "onBlur";
516
+ action: string;
517
+ enabled: boolean;
518
+ debounceMs: number;
519
+ config: Record<string, unknown>;
520
+ }[];
521
+ placeholder?: string | undefined;
522
+ description?: string | undefined;
523
+ options?: {
524
+ label: string;
525
+ value: string;
526
+ }[] | undefined;
527
+ optionsSource?: {
528
+ type: "dbTable";
529
+ tableName: string;
530
+ valueField: string;
531
+ labelField: string;
532
+ searchFields?: string[] | undefined;
533
+ filterBy?: {
534
+ field: string;
535
+ valueFromField: string;
536
+ } | undefined;
537
+ } | undefined;
538
+ }[];
539
+ subforms: {
540
+ key: string;
541
+ label: string;
542
+ viewId: string;
543
+ parentField: string;
544
+ childField: string;
545
+ presentation: "dialog" | "drawer";
546
+ buttonLabel?: string | undefined;
547
+ icon?: string | undefined;
548
+ }[];
549
+ layout?: {
550
+ groups: {
551
+ id: string;
552
+ columns: 8 | 6 | 12;
553
+ fields: {
554
+ key: string;
555
+ span: number;
556
+ }[];
557
+ title?: string | undefined;
558
+ }[];
559
+ } | undefined;
560
+ };
561
+ version: number;
562
+ description?: string | null | undefined;
563
+ source?: {
564
+ type: "dbTable";
565
+ tableName: string;
566
+ } | {
567
+ type: "apiEndpoint";
568
+ basePath: string;
569
+ listPath?: string | undefined;
570
+ createPath?: string | undefined;
571
+ updatePath?: string | undefined;
572
+ deletePath?: string | undefined;
573
+ } | null | undefined;
574
+ triggers?: {
575
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
576
+ enabled: boolean;
577
+ blocking: boolean;
578
+ config: Record<string, unknown>;
579
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
580
+ }[] | undefined;
581
+ }) => Promise<{
582
+ id: string;
583
+ } & {
584
+ id: string;
585
+ title: string;
586
+ description: string | null;
587
+ version: number;
588
+ createdAt: string;
589
+ updatedAt: string;
590
+ source: {
591
+ type: "dbTable";
592
+ tableName: string;
593
+ } | {
594
+ type: "apiEndpoint";
595
+ basePath: string;
596
+ listPath?: string | undefined;
597
+ createPath?: string | undefined;
598
+ updatePath?: string | undefined;
599
+ deletePath?: string | undefined;
600
+ } | null;
601
+ type: "form";
602
+ schema: {
603
+ presentation: "dialog" | "drawer";
604
+ fields: {
605
+ key: string;
606
+ label: string;
607
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
608
+ required: boolean;
609
+ hidden: boolean;
610
+ disabled: boolean;
611
+ triggers: {
612
+ event: "onChange" | "onBlur";
613
+ action: string;
614
+ enabled: boolean;
615
+ debounceMs: number;
616
+ config: Record<string, unknown>;
617
+ }[];
618
+ placeholder?: string | undefined;
619
+ description?: string | undefined;
620
+ options?: {
621
+ label: string;
622
+ value: string;
623
+ }[] | undefined;
624
+ optionsSource?: {
625
+ type: "dbTable";
626
+ tableName: string;
627
+ valueField: string;
628
+ labelField: string;
629
+ searchFields?: string[] | undefined;
630
+ filterBy?: {
631
+ field: string;
632
+ valueFromField: string;
633
+ } | undefined;
634
+ } | undefined;
635
+ }[];
636
+ subforms: {
637
+ key: string;
638
+ label: string;
639
+ viewId: string;
640
+ parentField: string;
641
+ childField: string;
642
+ presentation: "dialog" | "drawer";
643
+ buttonLabel?: string | undefined;
644
+ icon?: string | undefined;
645
+ }[];
646
+ layout?: {
647
+ groups: {
648
+ id: string;
649
+ columns: 8 | 6 | 12;
650
+ fields: {
651
+ key: string;
652
+ span: number;
653
+ }[];
654
+ title?: string | undefined;
655
+ }[];
656
+ } | undefined;
657
+ };
658
+ triggers: {
659
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
660
+ enabled: boolean;
661
+ blocking: boolean;
662
+ config: Record<string, unknown>;
663
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
664
+ }[];
665
+ }>;
666
+ replicateBuilderForm: (id: string, input: {
667
+ title?: string | undefined;
668
+ }) => Promise<{
669
+ id: string;
670
+ } & {
671
+ id: string;
672
+ title: string;
673
+ description: string | null;
674
+ version: number;
675
+ createdAt: string;
676
+ updatedAt: string;
677
+ source: {
678
+ type: "dbTable";
679
+ tableName: string;
680
+ } | {
681
+ type: "apiEndpoint";
682
+ basePath: string;
683
+ listPath?: string | undefined;
684
+ createPath?: string | undefined;
685
+ updatePath?: string | undefined;
686
+ deletePath?: string | undefined;
687
+ } | null;
688
+ type: "form";
689
+ schema: {
690
+ presentation: "dialog" | "drawer";
691
+ fields: {
692
+ key: string;
693
+ label: string;
694
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
695
+ required: boolean;
696
+ hidden: boolean;
697
+ disabled: boolean;
698
+ triggers: {
699
+ event: "onChange" | "onBlur";
700
+ action: string;
701
+ enabled: boolean;
702
+ debounceMs: number;
703
+ config: Record<string, unknown>;
704
+ }[];
705
+ placeholder?: string | undefined;
706
+ description?: string | undefined;
707
+ options?: {
708
+ label: string;
709
+ value: string;
710
+ }[] | undefined;
711
+ optionsSource?: {
712
+ type: "dbTable";
713
+ tableName: string;
714
+ valueField: string;
715
+ labelField: string;
716
+ searchFields?: string[] | undefined;
717
+ filterBy?: {
718
+ field: string;
719
+ valueFromField: string;
720
+ } | undefined;
721
+ } | undefined;
722
+ }[];
723
+ subforms: {
724
+ key: string;
725
+ label: string;
726
+ viewId: string;
727
+ parentField: string;
728
+ childField: string;
729
+ presentation: "dialog" | "drawer";
730
+ buttonLabel?: string | undefined;
731
+ icon?: string | undefined;
732
+ }[];
733
+ layout?: {
734
+ groups: {
735
+ id: string;
736
+ columns: 8 | 6 | 12;
737
+ fields: {
738
+ key: string;
739
+ span: number;
740
+ }[];
741
+ title?: string | undefined;
742
+ }[];
743
+ } | undefined;
744
+ };
745
+ triggers: {
746
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
747
+ enabled: boolean;
748
+ blocking: boolean;
749
+ config: Record<string, unknown>;
750
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
751
+ }[];
752
+ }>;
753
+ deleteBuilderForm: (id: string) => Promise<void>;
754
+ listBuilderLists: (query: object & {
755
+ page: number;
756
+ pageSize: number;
757
+ sort?: string | undefined;
758
+ search?: string | undefined;
759
+ }) => Promise<{
760
+ items: {
761
+ id: string;
762
+ title: string;
763
+ description: string | null;
764
+ version: number;
765
+ createdAt: string;
766
+ updatedAt: string;
767
+ source: {
768
+ type: "dbTable";
769
+ tableName: string;
770
+ } | {
771
+ type: "apiEndpoint";
772
+ basePath: string;
773
+ listPath?: string | undefined;
774
+ createPath?: string | undefined;
775
+ updatePath?: string | undefined;
776
+ deletePath?: string | undefined;
777
+ } | null;
778
+ type: "list";
779
+ schema: {
780
+ columns: {
781
+ key: string;
782
+ label: string;
783
+ sortable: boolean;
784
+ align: "left" | "right";
785
+ }[];
786
+ };
787
+ triggers: {
788
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
789
+ enabled: boolean;
790
+ blocking: boolean;
791
+ config: Record<string, unknown>;
792
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
793
+ }[];
794
+ }[];
795
+ total: number;
796
+ page: number;
797
+ pageSize: number;
798
+ }>;
799
+ listBuilderListOptions: () => Promise<({
800
+ id: string;
801
+ } & {
802
+ id: string;
803
+ title: string;
804
+ description: string | null;
805
+ version: number;
806
+ createdAt: string;
807
+ updatedAt: string;
808
+ source: {
809
+ type: "dbTable";
810
+ tableName: string;
811
+ } | {
812
+ type: "apiEndpoint";
813
+ basePath: string;
814
+ listPath?: string | undefined;
815
+ createPath?: string | undefined;
816
+ updatePath?: string | undefined;
817
+ deletePath?: string | undefined;
818
+ } | null;
819
+ type: "list";
820
+ schema: {
821
+ columns: {
822
+ key: string;
823
+ label: string;
824
+ sortable: boolean;
825
+ align: "left" | "right";
826
+ }[];
827
+ };
828
+ triggers: {
829
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
830
+ enabled: boolean;
831
+ blocking: boolean;
832
+ config: Record<string, unknown>;
833
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
834
+ }[];
835
+ })[]>;
836
+ getBuilderList: (id: string) => Promise<{
837
+ id: string;
838
+ } & {
839
+ id: string;
840
+ title: string;
841
+ description: string | null;
842
+ version: number;
843
+ createdAt: string;
844
+ updatedAt: string;
845
+ source: {
846
+ type: "dbTable";
847
+ tableName: string;
848
+ } | {
849
+ type: "apiEndpoint";
850
+ basePath: string;
851
+ listPath?: string | undefined;
852
+ createPath?: string | undefined;
853
+ updatePath?: string | undefined;
854
+ deletePath?: string | undefined;
855
+ } | null;
856
+ type: "list";
857
+ schema: {
858
+ columns: {
859
+ key: string;
860
+ label: string;
861
+ sortable: boolean;
862
+ align: "left" | "right";
863
+ }[];
864
+ };
865
+ triggers: {
866
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
867
+ enabled: boolean;
868
+ blocking: boolean;
869
+ config: Record<string, unknown>;
870
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
871
+ }[];
872
+ }>;
873
+ createBuilderList: (input: {
874
+ title: string;
875
+ schema: {
876
+ columns: {
877
+ key: string;
878
+ label: string;
879
+ sortable: boolean;
880
+ align: "left" | "right";
881
+ }[];
882
+ };
883
+ description?: string | null | undefined;
884
+ source?: {
885
+ type: "dbTable";
886
+ tableName: string;
887
+ } | {
888
+ type: "apiEndpoint";
889
+ basePath: string;
890
+ listPath?: string | undefined;
891
+ createPath?: string | undefined;
892
+ updatePath?: string | undefined;
893
+ deletePath?: string | undefined;
894
+ } | null | undefined;
895
+ triggers?: {
896
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
897
+ enabled: boolean;
898
+ blocking: boolean;
899
+ config: Record<string, unknown>;
900
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
901
+ }[] | undefined;
902
+ }) => Promise<{
903
+ id: string;
904
+ } & {
905
+ id: string;
906
+ title: string;
907
+ description: string | null;
908
+ version: number;
909
+ createdAt: string;
910
+ updatedAt: string;
911
+ source: {
912
+ type: "dbTable";
913
+ tableName: string;
914
+ } | {
915
+ type: "apiEndpoint";
916
+ basePath: string;
917
+ listPath?: string | undefined;
918
+ createPath?: string | undefined;
919
+ updatePath?: string | undefined;
920
+ deletePath?: string | undefined;
921
+ } | null;
922
+ type: "list";
923
+ schema: {
924
+ columns: {
925
+ key: string;
926
+ label: string;
927
+ sortable: boolean;
928
+ align: "left" | "right";
929
+ }[];
930
+ };
931
+ triggers: {
932
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
933
+ enabled: boolean;
934
+ blocking: boolean;
935
+ config: Record<string, unknown>;
936
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
937
+ }[];
938
+ }>;
939
+ updateBuilderList: (id: string, input: {
940
+ title: string;
941
+ schema: {
942
+ columns: {
943
+ key: string;
944
+ label: string;
945
+ sortable: boolean;
946
+ align: "left" | "right";
947
+ }[];
948
+ };
949
+ version: number;
950
+ description?: string | null | undefined;
951
+ source?: {
952
+ type: "dbTable";
953
+ tableName: string;
954
+ } | {
955
+ type: "apiEndpoint";
956
+ basePath: string;
957
+ listPath?: string | undefined;
958
+ createPath?: string | undefined;
959
+ updatePath?: string | undefined;
960
+ deletePath?: string | undefined;
961
+ } | null | undefined;
962
+ triggers?: {
963
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
964
+ enabled: boolean;
965
+ blocking: boolean;
966
+ config: Record<string, unknown>;
967
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
968
+ }[] | undefined;
969
+ }) => Promise<{
970
+ id: string;
971
+ } & {
972
+ id: string;
973
+ title: string;
974
+ description: string | null;
975
+ version: number;
976
+ createdAt: string;
977
+ updatedAt: string;
978
+ source: {
979
+ type: "dbTable";
980
+ tableName: string;
981
+ } | {
982
+ type: "apiEndpoint";
983
+ basePath: string;
984
+ listPath?: string | undefined;
985
+ createPath?: string | undefined;
986
+ updatePath?: string | undefined;
987
+ deletePath?: string | undefined;
988
+ } | null;
989
+ type: "list";
990
+ schema: {
991
+ columns: {
992
+ key: string;
993
+ label: string;
994
+ sortable: boolean;
995
+ align: "left" | "right";
996
+ }[];
997
+ };
998
+ triggers: {
999
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1000
+ enabled: boolean;
1001
+ blocking: boolean;
1002
+ config: Record<string, unknown>;
1003
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1004
+ }[];
1005
+ }>;
1006
+ replicateBuilderList: (id: string, input: {
1007
+ title?: string | undefined;
1008
+ }) => Promise<{
1009
+ id: string;
1010
+ } & {
1011
+ id: string;
1012
+ title: string;
1013
+ description: string | null;
1014
+ version: number;
1015
+ createdAt: string;
1016
+ updatedAt: string;
1017
+ source: {
1018
+ type: "dbTable";
1019
+ tableName: string;
1020
+ } | {
1021
+ type: "apiEndpoint";
1022
+ basePath: string;
1023
+ listPath?: string | undefined;
1024
+ createPath?: string | undefined;
1025
+ updatePath?: string | undefined;
1026
+ deletePath?: string | undefined;
1027
+ } | null;
1028
+ type: "list";
1029
+ schema: {
1030
+ columns: {
1031
+ key: string;
1032
+ label: string;
1033
+ sortable: boolean;
1034
+ align: "left" | "right";
1035
+ }[];
1036
+ };
1037
+ triggers: {
1038
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1039
+ enabled: boolean;
1040
+ blocking: boolean;
1041
+ config: Record<string, unknown>;
1042
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1043
+ }[];
1044
+ }>;
1045
+ deleteBuilderList: (id: string) => Promise<void>;
1046
+ listBuilderViews: (query: object & {
1047
+ page: number;
1048
+ pageSize: number;
1049
+ sort?: string | undefined;
1050
+ search?: string | undefined;
1051
+ }) => Promise<{
1052
+ items: {
1053
+ id: string;
1054
+ title: string;
1055
+ description: string | null;
1056
+ version: number;
1057
+ createdAt: string;
1058
+ updatedAt: string;
1059
+ formId: string | null;
1060
+ listId: string | null;
1061
+ triggers: {
1062
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate" | "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1063
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1064
+ enabled: boolean;
1065
+ blocking: boolean;
1066
+ config: Record<string, unknown>;
1067
+ }[];
1068
+ form?: {
1069
+ id: string;
1070
+ title: string;
1071
+ description: string | null;
1072
+ version: number;
1073
+ createdAt: string;
1074
+ updatedAt: string;
1075
+ source: {
1076
+ type: "dbTable";
1077
+ tableName: string;
1078
+ } | {
1079
+ type: "apiEndpoint";
1080
+ basePath: string;
1081
+ listPath?: string | undefined;
1082
+ createPath?: string | undefined;
1083
+ updatePath?: string | undefined;
1084
+ deletePath?: string | undefined;
1085
+ } | null;
1086
+ type: "form";
1087
+ schema: {
1088
+ presentation: "dialog" | "drawer";
1089
+ fields: {
1090
+ key: string;
1091
+ label: string;
1092
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
1093
+ required: boolean;
1094
+ hidden: boolean;
1095
+ disabled: boolean;
1096
+ triggers: {
1097
+ event: "onChange" | "onBlur";
1098
+ action: string;
1099
+ enabled: boolean;
1100
+ debounceMs: number;
1101
+ config: Record<string, unknown>;
1102
+ }[];
1103
+ placeholder?: string | undefined;
1104
+ description?: string | undefined;
1105
+ options?: {
1106
+ label: string;
1107
+ value: string;
1108
+ }[] | undefined;
1109
+ optionsSource?: {
1110
+ type: "dbTable";
1111
+ tableName: string;
1112
+ valueField: string;
1113
+ labelField: string;
1114
+ searchFields?: string[] | undefined;
1115
+ filterBy?: {
1116
+ field: string;
1117
+ valueFromField: string;
1118
+ } | undefined;
1119
+ } | undefined;
1120
+ }[];
1121
+ subforms: {
1122
+ key: string;
1123
+ label: string;
1124
+ viewId: string;
1125
+ parentField: string;
1126
+ childField: string;
1127
+ presentation: "dialog" | "drawer";
1128
+ buttonLabel?: string | undefined;
1129
+ icon?: string | undefined;
1130
+ }[];
1131
+ layout?: {
1132
+ groups: {
1133
+ id: string;
1134
+ columns: 8 | 6 | 12;
1135
+ fields: {
1136
+ key: string;
1137
+ span: number;
1138
+ }[];
1139
+ title?: string | undefined;
1140
+ }[];
1141
+ } | undefined;
1142
+ };
1143
+ triggers: {
1144
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1145
+ enabled: boolean;
1146
+ blocking: boolean;
1147
+ config: Record<string, unknown>;
1148
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
1149
+ }[];
1150
+ } | null | undefined;
1151
+ list?: {
1152
+ id: string;
1153
+ title: string;
1154
+ description: string | null;
1155
+ version: number;
1156
+ createdAt: string;
1157
+ updatedAt: string;
1158
+ source: {
1159
+ type: "dbTable";
1160
+ tableName: string;
1161
+ } | {
1162
+ type: "apiEndpoint";
1163
+ basePath: string;
1164
+ listPath?: string | undefined;
1165
+ createPath?: string | undefined;
1166
+ updatePath?: string | undefined;
1167
+ deletePath?: string | undefined;
1168
+ } | null;
1169
+ type: "list";
1170
+ schema: {
1171
+ columns: {
1172
+ key: string;
1173
+ label: string;
1174
+ sortable: boolean;
1175
+ align: "left" | "right";
1176
+ }[];
1177
+ };
1178
+ triggers: {
1179
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1180
+ enabled: boolean;
1181
+ blocking: boolean;
1182
+ config: Record<string, unknown>;
1183
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1184
+ }[];
1185
+ } | null | undefined;
1186
+ permissionRead?: string | null | undefined;
1187
+ permissionWrite?: string | null | undefined;
1188
+ }[];
1189
+ total: number;
1190
+ page: number;
1191
+ pageSize: number;
1192
+ }>;
1193
+ getBuilderView: (id: string) => Promise<{
1194
+ id: string;
1195
+ } & {
1196
+ id: string;
1197
+ title: string;
1198
+ description: string | null;
1199
+ version: number;
1200
+ createdAt: string;
1201
+ updatedAt: string;
1202
+ formId: string | null;
1203
+ listId: string | null;
1204
+ triggers: {
1205
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate" | "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1206
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1207
+ enabled: boolean;
1208
+ blocking: boolean;
1209
+ config: Record<string, unknown>;
1210
+ }[];
1211
+ form?: {
1212
+ id: string;
1213
+ title: string;
1214
+ description: string | null;
1215
+ version: number;
1216
+ createdAt: string;
1217
+ updatedAt: string;
1218
+ source: {
1219
+ type: "dbTable";
1220
+ tableName: string;
1221
+ } | {
1222
+ type: "apiEndpoint";
1223
+ basePath: string;
1224
+ listPath?: string | undefined;
1225
+ createPath?: string | undefined;
1226
+ updatePath?: string | undefined;
1227
+ deletePath?: string | undefined;
1228
+ } | null;
1229
+ type: "form";
1230
+ schema: {
1231
+ presentation: "dialog" | "drawer";
1232
+ fields: {
1233
+ key: string;
1234
+ label: string;
1235
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
1236
+ required: boolean;
1237
+ hidden: boolean;
1238
+ disabled: boolean;
1239
+ triggers: {
1240
+ event: "onChange" | "onBlur";
1241
+ action: string;
1242
+ enabled: boolean;
1243
+ debounceMs: number;
1244
+ config: Record<string, unknown>;
1245
+ }[];
1246
+ placeholder?: string | undefined;
1247
+ description?: string | undefined;
1248
+ options?: {
1249
+ label: string;
1250
+ value: string;
1251
+ }[] | undefined;
1252
+ optionsSource?: {
1253
+ type: "dbTable";
1254
+ tableName: string;
1255
+ valueField: string;
1256
+ labelField: string;
1257
+ searchFields?: string[] | undefined;
1258
+ filterBy?: {
1259
+ field: string;
1260
+ valueFromField: string;
1261
+ } | undefined;
1262
+ } | undefined;
1263
+ }[];
1264
+ subforms: {
1265
+ key: string;
1266
+ label: string;
1267
+ viewId: string;
1268
+ parentField: string;
1269
+ childField: string;
1270
+ presentation: "dialog" | "drawer";
1271
+ buttonLabel?: string | undefined;
1272
+ icon?: string | undefined;
1273
+ }[];
1274
+ layout?: {
1275
+ groups: {
1276
+ id: string;
1277
+ columns: 8 | 6 | 12;
1278
+ fields: {
1279
+ key: string;
1280
+ span: number;
1281
+ }[];
1282
+ title?: string | undefined;
1283
+ }[];
1284
+ } | undefined;
1285
+ };
1286
+ triggers: {
1287
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1288
+ enabled: boolean;
1289
+ blocking: boolean;
1290
+ config: Record<string, unknown>;
1291
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
1292
+ }[];
1293
+ } | null | undefined;
1294
+ list?: {
1295
+ id: string;
1296
+ title: string;
1297
+ description: string | null;
1298
+ version: number;
1299
+ createdAt: string;
1300
+ updatedAt: string;
1301
+ source: {
1302
+ type: "dbTable";
1303
+ tableName: string;
1304
+ } | {
1305
+ type: "apiEndpoint";
1306
+ basePath: string;
1307
+ listPath?: string | undefined;
1308
+ createPath?: string | undefined;
1309
+ updatePath?: string | undefined;
1310
+ deletePath?: string | undefined;
1311
+ } | null;
1312
+ type: "list";
1313
+ schema: {
1314
+ columns: {
1315
+ key: string;
1316
+ label: string;
1317
+ sortable: boolean;
1318
+ align: "left" | "right";
1319
+ }[];
1320
+ };
1321
+ triggers: {
1322
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1323
+ enabled: boolean;
1324
+ blocking: boolean;
1325
+ config: Record<string, unknown>;
1326
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1327
+ }[];
1328
+ } | null | undefined;
1329
+ permissionRead?: string | null | undefined;
1330
+ permissionWrite?: string | null | undefined;
1331
+ }>;
1332
+ createBuilderView: (input: {
1333
+ title: string;
1334
+ description?: string | null | undefined;
1335
+ formId?: string | null | undefined;
1336
+ listId?: string | null | undefined;
1337
+ permissionRead?: string | null | undefined;
1338
+ permissionWrite?: string | null | undefined;
1339
+ triggers?: {
1340
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate" | "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1341
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1342
+ enabled: boolean;
1343
+ blocking: boolean;
1344
+ config: Record<string, unknown>;
1345
+ }[] | undefined;
1346
+ }) => Promise<{
1347
+ id: string;
1348
+ } & {
1349
+ id: string;
1350
+ title: string;
1351
+ description: string | null;
1352
+ version: number;
1353
+ createdAt: string;
1354
+ updatedAt: string;
1355
+ formId: string | null;
1356
+ listId: string | null;
1357
+ triggers: {
1358
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate" | "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1359
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1360
+ enabled: boolean;
1361
+ blocking: boolean;
1362
+ config: Record<string, unknown>;
1363
+ }[];
1364
+ form?: {
1365
+ id: string;
1366
+ title: string;
1367
+ description: string | null;
1368
+ version: number;
1369
+ createdAt: string;
1370
+ updatedAt: string;
1371
+ source: {
1372
+ type: "dbTable";
1373
+ tableName: string;
1374
+ } | {
1375
+ type: "apiEndpoint";
1376
+ basePath: string;
1377
+ listPath?: string | undefined;
1378
+ createPath?: string | undefined;
1379
+ updatePath?: string | undefined;
1380
+ deletePath?: string | undefined;
1381
+ } | null;
1382
+ type: "form";
1383
+ schema: {
1384
+ presentation: "dialog" | "drawer";
1385
+ fields: {
1386
+ key: string;
1387
+ label: string;
1388
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
1389
+ required: boolean;
1390
+ hidden: boolean;
1391
+ disabled: boolean;
1392
+ triggers: {
1393
+ event: "onChange" | "onBlur";
1394
+ action: string;
1395
+ enabled: boolean;
1396
+ debounceMs: number;
1397
+ config: Record<string, unknown>;
1398
+ }[];
1399
+ placeholder?: string | undefined;
1400
+ description?: string | undefined;
1401
+ options?: {
1402
+ label: string;
1403
+ value: string;
1404
+ }[] | undefined;
1405
+ optionsSource?: {
1406
+ type: "dbTable";
1407
+ tableName: string;
1408
+ valueField: string;
1409
+ labelField: string;
1410
+ searchFields?: string[] | undefined;
1411
+ filterBy?: {
1412
+ field: string;
1413
+ valueFromField: string;
1414
+ } | undefined;
1415
+ } | undefined;
1416
+ }[];
1417
+ subforms: {
1418
+ key: string;
1419
+ label: string;
1420
+ viewId: string;
1421
+ parentField: string;
1422
+ childField: string;
1423
+ presentation: "dialog" | "drawer";
1424
+ buttonLabel?: string | undefined;
1425
+ icon?: string | undefined;
1426
+ }[];
1427
+ layout?: {
1428
+ groups: {
1429
+ id: string;
1430
+ columns: 8 | 6 | 12;
1431
+ fields: {
1432
+ key: string;
1433
+ span: number;
1434
+ }[];
1435
+ title?: string | undefined;
1436
+ }[];
1437
+ } | undefined;
1438
+ };
1439
+ triggers: {
1440
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1441
+ enabled: boolean;
1442
+ blocking: boolean;
1443
+ config: Record<string, unknown>;
1444
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
1445
+ }[];
1446
+ } | null | undefined;
1447
+ list?: {
1448
+ id: string;
1449
+ title: string;
1450
+ description: string | null;
1451
+ version: number;
1452
+ createdAt: string;
1453
+ updatedAt: string;
1454
+ source: {
1455
+ type: "dbTable";
1456
+ tableName: string;
1457
+ } | {
1458
+ type: "apiEndpoint";
1459
+ basePath: string;
1460
+ listPath?: string | undefined;
1461
+ createPath?: string | undefined;
1462
+ updatePath?: string | undefined;
1463
+ deletePath?: string | undefined;
1464
+ } | null;
1465
+ type: "list";
1466
+ schema: {
1467
+ columns: {
1468
+ key: string;
1469
+ label: string;
1470
+ sortable: boolean;
1471
+ align: "left" | "right";
1472
+ }[];
1473
+ };
1474
+ triggers: {
1475
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1476
+ enabled: boolean;
1477
+ blocking: boolean;
1478
+ config: Record<string, unknown>;
1479
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1480
+ }[];
1481
+ } | null | undefined;
1482
+ permissionRead?: string | null | undefined;
1483
+ permissionWrite?: string | null | undefined;
1484
+ }>;
1485
+ updateBuilderView: (id: string, input: {
1486
+ title: string;
1487
+ version: number;
1488
+ description?: string | null | undefined;
1489
+ formId?: string | null | undefined;
1490
+ listId?: string | null | undefined;
1491
+ permissionRead?: string | null | undefined;
1492
+ permissionWrite?: string | null | undefined;
1493
+ triggers?: {
1494
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate" | "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1495
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1496
+ enabled: boolean;
1497
+ blocking: boolean;
1498
+ config: Record<string, unknown>;
1499
+ }[] | undefined;
1500
+ }) => Promise<{
1501
+ id: string;
1502
+ } & {
1503
+ id: string;
1504
+ title: string;
1505
+ description: string | null;
1506
+ version: number;
1507
+ createdAt: string;
1508
+ updatedAt: string;
1509
+ formId: string | null;
1510
+ listId: string | null;
1511
+ triggers: {
1512
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate" | "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1513
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1514
+ enabled: boolean;
1515
+ blocking: boolean;
1516
+ config: Record<string, unknown>;
1517
+ }[];
1518
+ form?: {
1519
+ id: string;
1520
+ title: string;
1521
+ description: string | null;
1522
+ version: number;
1523
+ createdAt: string;
1524
+ updatedAt: string;
1525
+ source: {
1526
+ type: "dbTable";
1527
+ tableName: string;
1528
+ } | {
1529
+ type: "apiEndpoint";
1530
+ basePath: string;
1531
+ listPath?: string | undefined;
1532
+ createPath?: string | undefined;
1533
+ updatePath?: string | undefined;
1534
+ deletePath?: string | undefined;
1535
+ } | null;
1536
+ type: "form";
1537
+ schema: {
1538
+ presentation: "dialog" | "drawer";
1539
+ fields: {
1540
+ key: string;
1541
+ label: string;
1542
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
1543
+ required: boolean;
1544
+ hidden: boolean;
1545
+ disabled: boolean;
1546
+ triggers: {
1547
+ event: "onChange" | "onBlur";
1548
+ action: string;
1549
+ enabled: boolean;
1550
+ debounceMs: number;
1551
+ config: Record<string, unknown>;
1552
+ }[];
1553
+ placeholder?: string | undefined;
1554
+ description?: string | undefined;
1555
+ options?: {
1556
+ label: string;
1557
+ value: string;
1558
+ }[] | undefined;
1559
+ optionsSource?: {
1560
+ type: "dbTable";
1561
+ tableName: string;
1562
+ valueField: string;
1563
+ labelField: string;
1564
+ searchFields?: string[] | undefined;
1565
+ filterBy?: {
1566
+ field: string;
1567
+ valueFromField: string;
1568
+ } | undefined;
1569
+ } | undefined;
1570
+ }[];
1571
+ subforms: {
1572
+ key: string;
1573
+ label: string;
1574
+ viewId: string;
1575
+ parentField: string;
1576
+ childField: string;
1577
+ presentation: "dialog" | "drawer";
1578
+ buttonLabel?: string | undefined;
1579
+ icon?: string | undefined;
1580
+ }[];
1581
+ layout?: {
1582
+ groups: {
1583
+ id: string;
1584
+ columns: 8 | 6 | 12;
1585
+ fields: {
1586
+ key: string;
1587
+ span: number;
1588
+ }[];
1589
+ title?: string | undefined;
1590
+ }[];
1591
+ } | undefined;
1592
+ };
1593
+ triggers: {
1594
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1595
+ enabled: boolean;
1596
+ blocking: boolean;
1597
+ config: Record<string, unknown>;
1598
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
1599
+ }[];
1600
+ } | null | undefined;
1601
+ list?: {
1602
+ id: string;
1603
+ title: string;
1604
+ description: string | null;
1605
+ version: number;
1606
+ createdAt: string;
1607
+ updatedAt: string;
1608
+ source: {
1609
+ type: "dbTable";
1610
+ tableName: string;
1611
+ } | {
1612
+ type: "apiEndpoint";
1613
+ basePath: string;
1614
+ listPath?: string | undefined;
1615
+ createPath?: string | undefined;
1616
+ updatePath?: string | undefined;
1617
+ deletePath?: string | undefined;
1618
+ } | null;
1619
+ type: "list";
1620
+ schema: {
1621
+ columns: {
1622
+ key: string;
1623
+ label: string;
1624
+ sortable: boolean;
1625
+ align: "left" | "right";
1626
+ }[];
1627
+ };
1628
+ triggers: {
1629
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1630
+ enabled: boolean;
1631
+ blocking: boolean;
1632
+ config: Record<string, unknown>;
1633
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1634
+ }[];
1635
+ } | null | undefined;
1636
+ permissionRead?: string | null | undefined;
1637
+ permissionWrite?: string | null | undefined;
1638
+ }>;
1639
+ replicateBuilderView: (id: string, input: {
1640
+ title?: string | undefined;
1641
+ }) => Promise<{
1642
+ id: string;
1643
+ } & {
1644
+ id: string;
1645
+ title: string;
1646
+ description: string | null;
1647
+ version: number;
1648
+ createdAt: string;
1649
+ updatedAt: string;
1650
+ formId: string | null;
1651
+ listId: string | null;
1652
+ triggers: {
1653
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate" | "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1654
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1655
+ enabled: boolean;
1656
+ blocking: boolean;
1657
+ config: Record<string, unknown>;
1658
+ }[];
1659
+ form?: {
1660
+ id: string;
1661
+ title: string;
1662
+ description: string | null;
1663
+ version: number;
1664
+ createdAt: string;
1665
+ updatedAt: string;
1666
+ source: {
1667
+ type: "dbTable";
1668
+ tableName: string;
1669
+ } | {
1670
+ type: "apiEndpoint";
1671
+ basePath: string;
1672
+ listPath?: string | undefined;
1673
+ createPath?: string | undefined;
1674
+ updatePath?: string | undefined;
1675
+ deletePath?: string | undefined;
1676
+ } | null;
1677
+ type: "form";
1678
+ schema: {
1679
+ presentation: "dialog" | "drawer";
1680
+ fields: {
1681
+ key: string;
1682
+ label: string;
1683
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
1684
+ required: boolean;
1685
+ hidden: boolean;
1686
+ disabled: boolean;
1687
+ triggers: {
1688
+ event: "onChange" | "onBlur";
1689
+ action: string;
1690
+ enabled: boolean;
1691
+ debounceMs: number;
1692
+ config: Record<string, unknown>;
1693
+ }[];
1694
+ placeholder?: string | undefined;
1695
+ description?: string | undefined;
1696
+ options?: {
1697
+ label: string;
1698
+ value: string;
1699
+ }[] | undefined;
1700
+ optionsSource?: {
1701
+ type: "dbTable";
1702
+ tableName: string;
1703
+ valueField: string;
1704
+ labelField: string;
1705
+ searchFields?: string[] | undefined;
1706
+ filterBy?: {
1707
+ field: string;
1708
+ valueFromField: string;
1709
+ } | undefined;
1710
+ } | undefined;
1711
+ }[];
1712
+ subforms: {
1713
+ key: string;
1714
+ label: string;
1715
+ viewId: string;
1716
+ parentField: string;
1717
+ childField: string;
1718
+ presentation: "dialog" | "drawer";
1719
+ buttonLabel?: string | undefined;
1720
+ icon?: string | undefined;
1721
+ }[];
1722
+ layout?: {
1723
+ groups: {
1724
+ id: string;
1725
+ columns: 8 | 6 | 12;
1726
+ fields: {
1727
+ key: string;
1728
+ span: number;
1729
+ }[];
1730
+ title?: string | undefined;
1731
+ }[];
1732
+ } | undefined;
1733
+ };
1734
+ triggers: {
1735
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1736
+ enabled: boolean;
1737
+ blocking: boolean;
1738
+ config: Record<string, unknown>;
1739
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
1740
+ }[];
1741
+ } | null | undefined;
1742
+ list?: {
1743
+ id: string;
1744
+ title: string;
1745
+ description: string | null;
1746
+ version: number;
1747
+ createdAt: string;
1748
+ updatedAt: string;
1749
+ source: {
1750
+ type: "dbTable";
1751
+ tableName: string;
1752
+ } | {
1753
+ type: "apiEndpoint";
1754
+ basePath: string;
1755
+ listPath?: string | undefined;
1756
+ createPath?: string | undefined;
1757
+ updatePath?: string | undefined;
1758
+ deletePath?: string | undefined;
1759
+ } | null;
1760
+ type: "list";
1761
+ schema: {
1762
+ columns: {
1763
+ key: string;
1764
+ label: string;
1765
+ sortable: boolean;
1766
+ align: "left" | "right";
1767
+ }[];
1768
+ };
1769
+ triggers: {
1770
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1771
+ enabled: boolean;
1772
+ blocking: boolean;
1773
+ config: Record<string, unknown>;
1774
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1775
+ }[];
1776
+ } | null | undefined;
1777
+ permissionRead?: string | null | undefined;
1778
+ permissionWrite?: string | null | undefined;
1779
+ }>;
1780
+ deleteBuilderView: (id: string) => Promise<void>;
1781
+ getRuntimeBuilderForm: (id: string) => Promise<{
1782
+ id: string;
1783
+ } & {
1784
+ id: string;
1785
+ title: string;
1786
+ description: string | null;
1787
+ version: number;
1788
+ createdAt: string;
1789
+ updatedAt: string;
1790
+ source: {
1791
+ type: "dbTable";
1792
+ tableName: string;
1793
+ } | {
1794
+ type: "apiEndpoint";
1795
+ basePath: string;
1796
+ listPath?: string | undefined;
1797
+ createPath?: string | undefined;
1798
+ updatePath?: string | undefined;
1799
+ deletePath?: string | undefined;
1800
+ } | null;
1801
+ type: "form";
1802
+ schema: {
1803
+ presentation: "dialog" | "drawer";
1804
+ fields: {
1805
+ key: string;
1806
+ label: string;
1807
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
1808
+ required: boolean;
1809
+ hidden: boolean;
1810
+ disabled: boolean;
1811
+ triggers: {
1812
+ event: "onChange" | "onBlur";
1813
+ action: string;
1814
+ enabled: boolean;
1815
+ debounceMs: number;
1816
+ config: Record<string, unknown>;
1817
+ }[];
1818
+ placeholder?: string | undefined;
1819
+ description?: string | undefined;
1820
+ options?: {
1821
+ label: string;
1822
+ value: string;
1823
+ }[] | undefined;
1824
+ optionsSource?: {
1825
+ type: "dbTable";
1826
+ tableName: string;
1827
+ valueField: string;
1828
+ labelField: string;
1829
+ searchFields?: string[] | undefined;
1830
+ filterBy?: {
1831
+ field: string;
1832
+ valueFromField: string;
1833
+ } | undefined;
1834
+ } | undefined;
1835
+ }[];
1836
+ subforms: {
1837
+ key: string;
1838
+ label: string;
1839
+ viewId: string;
1840
+ parentField: string;
1841
+ childField: string;
1842
+ presentation: "dialog" | "drawer";
1843
+ buttonLabel?: string | undefined;
1844
+ icon?: string | undefined;
1845
+ }[];
1846
+ layout?: {
1847
+ groups: {
1848
+ id: string;
1849
+ columns: 8 | 6 | 12;
1850
+ fields: {
1851
+ key: string;
1852
+ span: number;
1853
+ }[];
1854
+ title?: string | undefined;
1855
+ }[];
1856
+ } | undefined;
1857
+ };
1858
+ triggers: {
1859
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1860
+ enabled: boolean;
1861
+ blocking: boolean;
1862
+ config: Record<string, unknown>;
1863
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
1864
+ }[];
1865
+ }>;
1866
+ createRuntimeBuilderFormEntry: (formId: string, input: {
1867
+ values: Record<string, unknown>;
1868
+ id?: string | undefined;
1869
+ }) => Promise<{
1870
+ id: string;
1871
+ } & {
1872
+ id: string;
1873
+ viewId: string;
1874
+ values: Record<string, unknown>;
1875
+ version: number;
1876
+ createdAt: string;
1877
+ updatedAt: string;
1878
+ }>;
1879
+ listRuntimeBuilderFormFieldOptions: (formId: string, fieldKey: string, query: BuilderFieldOptionsQuery & {
1880
+ [x: string]: unknown;
1881
+ search?: string | undefined;
1882
+ } & {
1883
+ depends?: Record<string, string>;
1884
+ }) => Promise<{
1885
+ label: string;
1886
+ value: string;
1887
+ }[]>;
1888
+ runRuntimeBuilderFormFieldTrigger: (formId: string, fieldKey: string, event: "onChange" | "onBlur", input: {
1889
+ values: Record<string, unknown>;
1890
+ value?: unknown;
1891
+ }) => Promise<{
1892
+ schema: {
1893
+ field: string;
1894
+ value: unknown;
1895
+ }[];
1896
+ valuesPatch: Record<string, unknown>;
1897
+ fieldErrors: Record<string, string>;
1898
+ toast?: {
1899
+ type: "error" | "success" | "info" | "warning";
1900
+ message: string;
1901
+ } | null | undefined;
1902
+ }>;
1903
+ getRuntimeBuilderList: (id: string) => Promise<{
1904
+ id: string;
1905
+ } & {
1906
+ id: string;
1907
+ title: string;
1908
+ description: string | null;
1909
+ version: number;
1910
+ createdAt: string;
1911
+ updatedAt: string;
1912
+ source: {
1913
+ type: "dbTable";
1914
+ tableName: string;
1915
+ } | {
1916
+ type: "apiEndpoint";
1917
+ basePath: string;
1918
+ listPath?: string | undefined;
1919
+ createPath?: string | undefined;
1920
+ updatePath?: string | undefined;
1921
+ deletePath?: string | undefined;
1922
+ } | null;
1923
+ type: "list";
1924
+ schema: {
1925
+ columns: {
1926
+ key: string;
1927
+ label: string;
1928
+ sortable: boolean;
1929
+ align: "left" | "right";
1930
+ }[];
1931
+ };
1932
+ triggers: {
1933
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1934
+ enabled: boolean;
1935
+ blocking: boolean;
1936
+ config: Record<string, unknown>;
1937
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1938
+ }[];
1939
+ }>;
1940
+ listRuntimeBuilderListEntries: (listId: string, query: object & {
1941
+ page: number;
1942
+ pageSize: number;
1943
+ sort?: string | undefined;
1944
+ search?: string | undefined;
1945
+ filterField?: string | undefined;
1946
+ filterValue?: string | undefined;
1947
+ }) => Promise<{
1948
+ items: {
1949
+ id: string;
1950
+ viewId: string;
1951
+ values: Record<string, unknown>;
1952
+ version: number;
1953
+ createdAt: string;
1954
+ updatedAt: string;
1955
+ }[];
1956
+ total: number;
1957
+ page: number;
1958
+ pageSize: number;
1959
+ }>;
1960
+ getRuntimeBuilderView: (id: string) => Promise<{
1961
+ id: string;
1962
+ } & {
1963
+ id: string;
1964
+ title: string;
1965
+ description: string | null;
1966
+ version: number;
1967
+ createdAt: string;
1968
+ updatedAt: string;
1969
+ formId: string | null;
1970
+ listId: string | null;
1971
+ triggers: {
1972
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate" | "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
1973
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
1974
+ enabled: boolean;
1975
+ blocking: boolean;
1976
+ config: Record<string, unknown>;
1977
+ }[];
1978
+ form?: {
1979
+ id: string;
1980
+ title: string;
1981
+ description: string | null;
1982
+ version: number;
1983
+ createdAt: string;
1984
+ updatedAt: string;
1985
+ source: {
1986
+ type: "dbTable";
1987
+ tableName: string;
1988
+ } | {
1989
+ type: "apiEndpoint";
1990
+ basePath: string;
1991
+ listPath?: string | undefined;
1992
+ createPath?: string | undefined;
1993
+ updatePath?: string | undefined;
1994
+ deletePath?: string | undefined;
1995
+ } | null;
1996
+ type: "form";
1997
+ schema: {
1998
+ presentation: "dialog" | "drawer";
1999
+ fields: {
2000
+ key: string;
2001
+ label: string;
2002
+ type: "number" | "select" | "date" | "text" | "money" | "checkbox" | "textarea";
2003
+ required: boolean;
2004
+ hidden: boolean;
2005
+ disabled: boolean;
2006
+ triggers: {
2007
+ event: "onChange" | "onBlur";
2008
+ action: string;
2009
+ enabled: boolean;
2010
+ debounceMs: number;
2011
+ config: Record<string, unknown>;
2012
+ }[];
2013
+ placeholder?: string | undefined;
2014
+ description?: string | undefined;
2015
+ options?: {
2016
+ label: string;
2017
+ value: string;
2018
+ }[] | undefined;
2019
+ optionsSource?: {
2020
+ type: "dbTable";
2021
+ tableName: string;
2022
+ valueField: string;
2023
+ labelField: string;
2024
+ searchFields?: string[] | undefined;
2025
+ filterBy?: {
2026
+ field: string;
2027
+ valueFromField: string;
2028
+ } | undefined;
2029
+ } | undefined;
2030
+ }[];
2031
+ subforms: {
2032
+ key: string;
2033
+ label: string;
2034
+ viewId: string;
2035
+ parentField: string;
2036
+ childField: string;
2037
+ presentation: "dialog" | "drawer";
2038
+ buttonLabel?: string | undefined;
2039
+ icon?: string | undefined;
2040
+ }[];
2041
+ layout?: {
2042
+ groups: {
2043
+ id: string;
2044
+ columns: 8 | 6 | 12;
2045
+ fields: {
2046
+ key: string;
2047
+ span: number;
2048
+ }[];
2049
+ title?: string | undefined;
2050
+ }[];
2051
+ } | undefined;
2052
+ };
2053
+ triggers: {
2054
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
2055
+ enabled: boolean;
2056
+ blocking: boolean;
2057
+ config: Record<string, unknown>;
2058
+ event: "beforeCreate" | "afterCreate" | "beforeUpdate" | "afterUpdate";
2059
+ }[];
2060
+ } | null | undefined;
2061
+ list?: {
2062
+ id: string;
2063
+ title: string;
2064
+ description: string | null;
2065
+ version: number;
2066
+ createdAt: string;
2067
+ updatedAt: string;
2068
+ source: {
2069
+ type: "dbTable";
2070
+ tableName: string;
2071
+ } | {
2072
+ type: "apiEndpoint";
2073
+ basePath: string;
2074
+ listPath?: string | undefined;
2075
+ createPath?: string | undefined;
2076
+ updatePath?: string | undefined;
2077
+ deletePath?: string | undefined;
2078
+ } | null;
2079
+ type: "list";
2080
+ schema: {
2081
+ columns: {
2082
+ key: string;
2083
+ label: string;
2084
+ sortable: boolean;
2085
+ align: "left" | "right";
2086
+ }[];
2087
+ };
2088
+ triggers: {
2089
+ action: "callApi" | "webhook" | "audit" | "notify" | "validate";
2090
+ enabled: boolean;
2091
+ blocking: boolean;
2092
+ config: Record<string, unknown>;
2093
+ event: "beforeRead" | "afterRead" | "beforeDelete" | "afterDelete";
2094
+ }[];
2095
+ } | null | undefined;
2096
+ permissionRead?: string | null | undefined;
2097
+ permissionWrite?: string | null | undefined;
2098
+ }>;
2099
+ runRuntimeBuilderViewFieldTrigger: (viewId: string, fieldKey: string, event: "onChange" | "onBlur", input: {
2100
+ values: Record<string, unknown>;
2101
+ value?: unknown;
2102
+ }) => Promise<{
2103
+ schema: {
2104
+ field: string;
2105
+ value: unknown;
2106
+ }[];
2107
+ valuesPatch: Record<string, unknown>;
2108
+ fieldErrors: Record<string, string>;
2109
+ toast?: {
2110
+ type: "error" | "success" | "info" | "warning";
2111
+ message: string;
2112
+ } | null | undefined;
2113
+ }>;
2114
+ listBuilderViewEntries: (viewId: string, query: object & {
2115
+ page: number;
2116
+ pageSize: number;
2117
+ sort?: string | undefined;
2118
+ search?: string | undefined;
2119
+ filterField?: string | undefined;
2120
+ filterValue?: string | undefined;
2121
+ }) => Promise<{
2122
+ items: {
2123
+ id: string;
2124
+ viewId: string;
2125
+ values: Record<string, unknown>;
2126
+ version: number;
2127
+ createdAt: string;
2128
+ updatedAt: string;
2129
+ }[];
2130
+ total: number;
2131
+ page: number;
2132
+ pageSize: number;
2133
+ }>;
2134
+ createBuilderViewEntry: (viewId: string, input: {
2135
+ values: Record<string, unknown>;
2136
+ id?: string | undefined;
2137
+ }) => Promise<{
2138
+ id: string;
2139
+ } & {
2140
+ id: string;
2141
+ viewId: string;
2142
+ values: Record<string, unknown>;
2143
+ version: number;
2144
+ createdAt: string;
2145
+ updatedAt: string;
2146
+ }>;
2147
+ createCompositeBuilderViewEntry: (viewId: string, input: {
2148
+ data: Record<string, Record<string, unknown> | Record<string, unknown>[]>;
2149
+ }) => Promise<{
2150
+ id: string;
2151
+ } & {
2152
+ id: string;
2153
+ viewId: string;
2154
+ values: Record<string, unknown>;
2155
+ version: number;
2156
+ createdAt: string;
2157
+ updatedAt: string;
2158
+ }>;
2159
+ updateCompositeBuilderViewEntry: (viewId: string, id: string, input: {
2160
+ data: Record<string, Record<string, unknown> | Record<string, unknown>[]>;
2161
+ }) => Promise<{
2162
+ id: string;
2163
+ } & {
2164
+ id: string;
2165
+ viewId: string;
2166
+ values: Record<string, unknown>;
2167
+ version: number;
2168
+ createdAt: string;
2169
+ updatedAt: string;
2170
+ }>;
2171
+ updateBuilderViewEntry: (viewId: string, id: string, input: {
2172
+ values: Record<string, unknown>;
2173
+ version: number;
2174
+ id?: string | undefined;
2175
+ }) => Promise<{
2176
+ id: string;
2177
+ } & {
2178
+ id: string;
2179
+ viewId: string;
2180
+ values: Record<string, unknown>;
2181
+ version: number;
2182
+ createdAt: string;
2183
+ updatedAt: string;
2184
+ }>;
2185
+ deleteBuilderViewEntry: (viewId: string, id: string) => Promise<void>;
2186
+ };
2187
+ type BuilderContextValue = {
2188
+ client: BuilderClient;
2189
+ hooks: BuilderHooks<ReadyBuilderContracts>;
2190
+ notify(notification: BuilderNotification): void;
2191
+ };
2192
+ type BuilderProviderProps = {
2193
+ children: ReactNode;
2194
+ client?: BuilderClient;
2195
+ transport?: BuilderApiTransport;
2196
+ apiBasePath?: string;
2197
+ queryClient?: QueryClient;
2198
+ onNotify?(notification: BuilderNotification): void;
2199
+ };
2200
+ declare function BuilderProvider({ children, client: configuredClient, transport, apiBasePath, queryClient, onNotify, }: BuilderProviderProps): react.JSX.Element;
2201
+ declare function useBuilderRuntime(): BuilderContextValue;
2202
+ declare function builderErrorMessage(error: unknown, fallback: string): string;
2203
+
2204
+ type BuilderFormProps = {
2205
+ formId: string;
2206
+ };
2207
+ type BuilderGridProps = {
2208
+ listId: string;
2209
+ };
2210
+ type BuilderViewProps = {
2211
+ viewId: string;
2212
+ };
2213
+ declare function BuilderForm({ formId }: BuilderFormProps): react.JSX.Element;
2214
+ declare function BuilderGrid({ listId }: BuilderGridProps): react.JSX.Element;
2215
+ declare function BuilderView({ viewId }: BuilderViewProps): react.JSX.Element;
11
2216
 
12
2217
  declare const builderUiPackage: {
13
2218
  readonly name: "@duke333/builder-ui";
14
- readonly version: "0.1.5";
2219
+ readonly version: "0.2.0";
15
2220
  };
16
2221
 
17
- export { builderUiPackage };
2222
+ export { BuilderApiClient, BuilderApiContracts, BuilderApiTransport, type BuilderClient, BuilderFieldOptionsQuery, BuilderForm, type BuilderFormProps, BuilderGrid, type BuilderGridProps, BuilderHooks, type BuilderNotification, BuilderProvider, type BuilderProviderProps, BuilderView, type BuilderViewProps, type CreateBuilderClientOptions, type ReadyBuilderContracts, builderErrorMessage, builderUiPackage, createBuilderClient, useBuilderRuntime };