@duke333/builder-ui 0.1.0 → 0.1.3

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.
@@ -1,432 +1,11 @@
1
+ import { A as BuilderViewEditorEntity, C as BuilderViewEditorValues, W as BuilderFormEditorLayoutGroupValues, u as BuilderFormEditorValues, s as BuilderFormEditorFieldValues, X as BuilderFormEditorSubformValues } from '../BuilderAdminPages-Buy2nvjs.js';
2
+ 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, t as BuilderFormEditorPageDependencies, v as BuilderListEditorBodyProps, w as BuilderListEditorColumnValues, x as BuilderListEditorEntity, y as BuilderListEditorPageDependencies, z as BuilderListEditorValues, D as builderEditorOptionsToText, E as builderEditorSearchFieldsToText, F as builderEditorTextToOptions, G as builderEditorTextToSearchFields, Y as builderFormEditorDefaultLayoutGroups, Z as builderFormEditorDefaultSpan, 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-Buy2nvjs.js';
1
3
  import * as react from 'react';
2
- import { ReactNode, ComponentType } from 'react';
3
- import { UseFormReturn, UseFieldArrayReturn, Resolver } from 'react-hook-form';
4
-
5
- declare const BUILDER_EDITOR_NONE_VALUE = "__none";
6
- type BuilderEditorSelectOption = {
7
- label: string;
8
- value: string;
9
- };
10
- type BuilderEditorDbTable<TFieldType extends string = string> = {
11
- name: string;
12
- label?: string;
13
- lookupColumns?: Array<{
14
- name: string;
15
- label: string;
16
- }>;
17
- columns: Array<{
18
- name: string;
19
- label: string;
20
- fieldType: TFieldType;
21
- nullable: boolean;
22
- dataType: string;
23
- sortable: boolean;
24
- }>;
25
- };
26
- type BuilderEditorSource = {
27
- type: "dbTable";
28
- tableName: string;
29
- } | {
30
- type: "apiEndpoint";
31
- basePath: string;
32
- } | null;
33
- type BuilderEditorTrigger<TEvent extends string> = {
34
- event: TEvent;
35
- action: string;
36
- enabled: boolean;
37
- blocking: boolean;
38
- config: Record<string, unknown>;
39
- };
40
- type BuilderEditorField<TFieldType extends string> = {
41
- key: string;
42
- label: string;
43
- type: TFieldType;
44
- required: boolean;
45
- hidden?: boolean;
46
- disabled?: boolean;
47
- placeholder?: string;
48
- description?: string;
49
- options?: BuilderEditorSelectOption[];
50
- optionsSource?: {
51
- type: "dbTable";
52
- tableName: string;
53
- valueField: string;
54
- labelField: string;
55
- searchFields?: string[];
56
- filterBy?: {
57
- field: string;
58
- valueFromField: string;
59
- };
60
- } | undefined;
61
- triggers?: BuilderEditorFieldTrigger[];
62
- };
63
- type BuilderEditorSubform = {
64
- key: string;
65
- label: string;
66
- viewId: string;
67
- parentField: string;
68
- childField: string;
69
- buttonLabel?: string;
70
- icon?: string;
71
- };
72
- type BuilderEditorFormLayoutField = {
73
- key: string;
74
- span?: number;
75
- };
76
- type BuilderEditorFormLayoutGroup = {
77
- id: string;
78
- title?: string | null;
79
- columns?: 6 | 8 | 12;
80
- fields?: BuilderEditorFormLayoutField[];
81
- };
82
- type BuilderEditorFormLayout = {
83
- groups?: BuilderEditorFormLayoutGroup[];
84
- };
85
- type BuilderEditorColumn = {
86
- key: string;
87
- label: string;
88
- sortable: boolean;
89
- align: "left" | "right";
90
- };
91
- type BuilderFormEditorEntity<TFieldType extends string = string, TTriggerEvent extends string = string> = {
92
- title: string;
93
- description: string | null;
94
- version: number;
95
- source: BuilderEditorSource;
96
- schema: {
97
- fields: BuilderEditorField<TFieldType>[];
98
- layout?: BuilderEditorFormLayout;
99
- subforms?: BuilderEditorSubform[];
100
- };
101
- triggers: BuilderEditorTrigger<TTriggerEvent>[];
102
- };
103
- type BuilderListEditorEntity<TTriggerEvent extends string = string> = {
104
- title: string;
105
- description: string | null;
106
- version: number;
107
- source: BuilderEditorSource;
108
- schema: {
109
- columns: BuilderEditorColumn[];
110
- };
111
- triggers: BuilderEditorTrigger<TTriggerEvent>[];
112
- };
113
- type BuilderFormEditorFieldValues<TFieldType extends string = string> = {
114
- key: string;
115
- label: string;
116
- type: TFieldType;
117
- required: boolean;
118
- hidden: boolean;
119
- disabled: boolean;
120
- placeholder?: string;
121
- optionsText?: string;
122
- optionsMode: "static" | "table";
123
- optionsTable: string;
124
- optionsValueField: string;
125
- optionsLabelField: string;
126
- optionsSearchFieldsText?: string;
127
- optionsDependsOn?: string;
128
- optionsFilterField?: string;
129
- triggers: BuilderEditorFieldTriggerValues[];
130
- };
131
- type BuilderFormEditorSubformValues = {
132
- key: string;
133
- label: string;
134
- viewId: string;
135
- parentField: string;
136
- childField: string;
137
- buttonLabel?: string;
138
- icon?: string;
139
- };
140
- type BuilderFormEditorLayoutFieldValues = {
141
- key: string;
142
- span: number;
143
- };
144
- type BuilderFormEditorLayoutGroupValues = {
145
- id: string;
146
- title: string;
147
- columns: 6 | 8 | 12;
148
- fields: BuilderFormEditorLayoutFieldValues[];
149
- };
150
- type BuilderEditorTriggerValues<TEvent extends string = string> = {
151
- event: TEvent;
152
- route: string;
153
- enabled: boolean;
154
- blocking: boolean;
155
- };
156
- type BuilderEditorFieldTrigger = {
157
- event: string;
158
- action: string;
159
- enabled: boolean;
160
- debounceMs: number;
161
- config: Record<string, unknown>;
162
- };
163
- type BuilderEditorFieldTriggerValues = {
164
- event: string;
165
- action: string;
166
- enabled: boolean;
167
- debounceMs: number;
168
- };
169
- type BuilderFormEditorValues<TFieldType extends string = string, TTriggerEvent extends string = string> = {
170
- title: string;
171
- description?: string;
172
- sourceType: "none" | "dbTable" | "apiEndpoint";
173
- sourceTable: string;
174
- apiBasePath?: string;
175
- fields: BuilderFormEditorFieldValues<TFieldType>[];
176
- layoutGroups: BuilderFormEditorLayoutGroupValues[];
177
- subforms?: BuilderFormEditorSubformValues[];
178
- triggers: BuilderEditorTriggerValues<TTriggerEvent>[];
179
- version: number;
180
- };
181
- type BuilderListEditorColumnValues = {
182
- key: string;
183
- label: string;
184
- sortable: boolean;
185
- align: "left" | "right";
186
- };
187
- type BuilderListEditorValues<TTriggerEvent extends string = string> = {
188
- title: string;
189
- description?: string;
190
- sourceType: "none" | "dbTable" | "apiEndpoint";
191
- sourceTable: string;
192
- apiBasePath?: string;
193
- columns: BuilderListEditorColumnValues[];
194
- triggers: BuilderEditorTriggerValues<TTriggerEvent>[];
195
- version: number;
196
- };
197
- type BuilderViewEditorEntity<TTrigger = unknown> = {
198
- title: string;
199
- description: string | null;
200
- formId: string | null;
201
- listId: string | null;
202
- permissionRead?: string | null;
203
- permissionWrite?: string | null;
204
- triggers: TTrigger[];
205
- version: number;
206
- };
207
- type BuilderViewEditorValues = {
208
- title: string;
209
- description?: string;
210
- formId: string;
211
- listId: string;
212
- permissionRead: string;
213
- permissionWrite: string;
214
- triggersText?: string;
215
- version: number;
216
- };
217
- declare function builderEditorOptionsToText(options?: BuilderEditorSelectOption[]): string;
218
- declare function builderEditorTextToOptions(value?: string): BuilderEditorSelectOption[] | undefined;
219
- declare function builderEditorSearchFieldsToText(fields?: string[]): string;
220
- declare function builderEditorTextToSearchFields(value?: string): string[] | undefined;
221
- declare function getBuilderEditorTriggerRoute(config: Record<string, unknown>): string;
222
- declare function builderFormEditorDefaultSpan<TFieldType extends string>(field: BuilderFormEditorFieldValues<TFieldType>): 6 | 12;
223
- declare function builderFormEditorDefaultLayoutGroups<TFieldType extends string>(fields: BuilderFormEditorFieldValues<TFieldType>[], subforms?: BuilderFormEditorSubformValues[]): BuilderFormEditorLayoutGroupValues[];
224
- declare function builderFormEditorValuesFromEntity<TFieldType extends string, TTriggerEvent extends string>(form: BuilderFormEditorEntity<TFieldType, TTriggerEvent> | null, emptyValues: BuilderFormEditorValues<TFieldType, TTriggerEvent>): BuilderFormEditorValues<TFieldType, TTriggerEvent>;
225
- declare function builderListEditorValuesFromEntity<TTriggerEvent extends string>(list: BuilderListEditorEntity<TTriggerEvent> | null, emptyValues: BuilderListEditorValues<TTriggerEvent>): BuilderListEditorValues<TTriggerEvent>;
226
- declare function builderViewEditorValuesFromEntity<TTrigger>(view: BuilderViewEditorEntity<TTrigger> | null, emptyValues: BuilderViewEditorValues, defaultPermission: string): BuilderViewEditorValues;
227
- declare function builderFormEditorFieldsFromTable<TFieldType extends string>(table: BuilderEditorDbTable<TFieldType>): BuilderFormEditorFieldValues<TFieldType>[];
228
- declare function builderListEditorColumnsFromTable<TFieldType extends string>(table: BuilderEditorDbTable<TFieldType>): BuilderListEditorColumnValues[];
229
- declare function builderFormEditorInputFromValues<TFieldType extends string, TTriggerEvent extends string>(values: BuilderFormEditorValues<TFieldType, TTriggerEvent>): {
230
- title: string;
231
- description: string | null;
232
- source: {
233
- type: "dbTable";
234
- tableName: string;
235
- basePath?: undefined;
236
- } | {
237
- type: "apiEndpoint";
238
- basePath: string;
239
- tableName?: undefined;
240
- } | null;
241
- schema: {
242
- fields: {
243
- key: string;
244
- label: string;
245
- type: TFieldType;
246
- required: boolean;
247
- hidden: boolean;
248
- disabled: boolean;
249
- placeholder: string;
250
- options: BuilderEditorSelectOption[] | undefined;
251
- optionsSource: {
252
- type: "dbTable";
253
- tableName: string;
254
- valueField: string;
255
- labelField: string;
256
- searchFields: string[] | undefined;
257
- filterBy: {
258
- field: string;
259
- valueFromField: string;
260
- } | undefined;
261
- } | undefined;
262
- triggers: {
263
- event: string;
264
- action: string;
265
- enabled: boolean;
266
- debounceMs: number;
267
- config: {};
268
- }[];
269
- }[];
270
- layout: {
271
- groups: BuilderFormEditorLayoutGroupValues[];
272
- };
273
- subforms: {
274
- key: string;
275
- label: string;
276
- viewId: string;
277
- parentField: string;
278
- childField: string;
279
- buttonLabel: string | undefined;
280
- icon: string | undefined;
281
- }[];
282
- };
283
- triggers: {
284
- event: TTriggerEvent;
285
- action: "callApi";
286
- enabled: boolean;
287
- blocking: boolean;
288
- config: {
289
- route: string;
290
- };
291
- }[];
292
- version: number;
293
- };
294
- declare function builderListEditorInputFromValues<TTriggerEvent extends string>(values: BuilderListEditorValues<TTriggerEvent>): {
295
- title: string;
296
- description: string | null;
297
- source: {
298
- type: "dbTable";
299
- tableName: string;
300
- basePath?: undefined;
301
- } | {
302
- type: "apiEndpoint";
303
- basePath: string;
304
- tableName?: undefined;
305
- } | null;
306
- schema: {
307
- columns: BuilderListEditorColumnValues[];
308
- };
309
- triggers: {
310
- event: TTriggerEvent;
311
- action: "callApi";
312
- enabled: boolean;
313
- blocking: boolean;
314
- config: {
315
- route: string;
316
- };
317
- }[];
318
- version: number;
319
- };
320
- declare function builderViewEditorInputFromValues<TTrigger>(values: BuilderViewEditorValues, parseTriggers: (value: string) => TTrigger[]): {
321
- title: string;
322
- description: string | null;
323
- formId: string | null;
324
- listId: string | null;
325
- permissionRead: string;
326
- permissionWrite: string;
327
- triggers: TTrigger[];
328
- version: number;
329
- };
330
-
331
- type BuilderEditorEntity = {
332
- id: string;
333
- };
334
- type BuilderEditorQuery<TEntity> = {
335
- data?: TEntity;
336
- isPending: boolean;
337
- isError: boolean;
338
- };
339
- type BuilderEditorListQuery<TItem> = {
340
- data?: TItem[];
341
- };
342
- type BuilderEditorSaveMutation<TInput, TEntity> = {
343
- mutateAsync(args: {
344
- id?: string;
345
- input: TInput;
346
- }): Promise<TEntity>;
347
- isPending: boolean;
348
- };
349
- type BuilderEditorNotifications = {
350
- success(message: string): void;
351
- error(error: unknown): void;
352
- };
353
- type BuilderEditorLabels = {
354
- created: string;
355
- saved: string;
356
- };
357
- type BuilderEditorStateLabels = {
358
- loading: string;
359
- error: string;
360
- };
361
- type BuilderFormEditorBodyProps<TFieldType extends string, TTriggerEvent extends string> = {
362
- formId?: string;
363
- form: UseFormReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>>;
364
- fieldArray: UseFieldArrayReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>, "fields">;
365
- subformArray: UseFieldArrayReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>, "subforms">;
366
- triggerArray: UseFieldArrayReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>, "triggers">;
367
- fields: BuilderFormEditorFieldValues<TFieldType>[];
368
- subforms: BuilderFormEditorSubformValues[];
369
- sourceType: BuilderFormEditorValues<TFieldType, TTriggerEvent>["sourceType"];
370
- sourceTable: string;
371
- tables: BuilderEditorDbTable<TFieldType>[];
372
- emptyField: BuilderFormEditorFieldValues<TFieldType>;
373
- emptyTrigger: BuilderEditorTriggerValues<TTriggerEvent>;
374
- isSaving: boolean;
375
- importFieldsFromTable(): void;
376
- };
377
- type BuilderListEditorBodyProps<TTriggerEvent extends string> = {
378
- listId?: string;
379
- form: UseFormReturn<BuilderListEditorValues<TTriggerEvent>>;
380
- columnArray: UseFieldArrayReturn<BuilderListEditorValues<TTriggerEvent>, "columns">;
381
- triggerArray: UseFieldArrayReturn<BuilderListEditorValues<TTriggerEvent>, "triggers">;
382
- sourceType: BuilderListEditorValues<TTriggerEvent>["sourceType"];
383
- sourceTable: string;
384
- tables: BuilderEditorDbTable[];
385
- emptyColumn: BuilderListEditorColumnValues;
386
- emptyTrigger: BuilderEditorTriggerValues<TTriggerEvent>;
387
- isSaving: boolean;
388
- importColumnsFromTable(): void;
389
- };
390
- type BuilderFormEditorPageDependencies<TEntity extends BuilderEditorEntity & BuilderFormEditorEntity<TFieldType, TTriggerEvent>, TInput, TFieldType extends string, TTriggerEvent extends string> = {
391
- emptyValues: BuilderFormEditorValues<TFieldType, TTriggerEvent>;
392
- emptyField: BuilderFormEditorFieldValues<TFieldType>;
393
- emptyTrigger: BuilderEditorTriggerValues<TTriggerEvent>;
394
- resolver?: Resolver<BuilderFormEditorValues<TFieldType, TTriggerEvent>>;
395
- labels: BuilderEditorLabels;
396
- states: BuilderEditorStateLabels;
397
- hooks: {
398
- useEntity(id?: string): BuilderEditorQuery<TEntity>;
399
- useTables(): BuilderEditorListQuery<BuilderEditorDbTable<TFieldType>>;
400
- useSave(): BuilderEditorSaveMutation<TInput, TEntity>;
401
- };
402
- buildInput(values: BuilderFormEditorValues<TFieldType, TTriggerEvent>): TInput;
403
- navigateAfterCreate(entity: TEntity): void;
404
- notifications: BuilderEditorNotifications;
405
- Body(props: BuilderFormEditorBodyProps<TFieldType, TTriggerEvent>): ReactNode;
406
- };
407
- type BuilderListEditorPageDependencies<TEntity extends BuilderEditorEntity & BuilderListEditorEntity<TTriggerEvent>, TInput, TTriggerEvent extends string> = {
408
- emptyValues: BuilderListEditorValues<TTriggerEvent>;
409
- emptyColumn: BuilderListEditorColumnValues;
410
- emptyTrigger: BuilderEditorTriggerValues<TTriggerEvent>;
411
- resolver?: Resolver<BuilderListEditorValues<TTriggerEvent>>;
412
- labels: BuilderEditorLabels;
413
- states: BuilderEditorStateLabels;
414
- hooks: {
415
- useEntity(id?: string): BuilderEditorQuery<TEntity>;
416
- useTables(): BuilderEditorListQuery<BuilderEditorDbTable>;
417
- useSave(): BuilderEditorSaveMutation<TInput, TEntity>;
418
- };
419
- buildInput(values: BuilderListEditorValues<TTriggerEvent>): TInput;
420
- navigateAfterCreate(entity: TEntity): void;
421
- notifications: BuilderEditorNotifications;
422
- Body(props: BuilderListEditorBodyProps<TTriggerEvent>): ReactNode;
423
- };
424
- declare function createBuilderFormEditorPageComponent<TEntity extends BuilderEditorEntity & BuilderFormEditorEntity<TFieldType, TTriggerEvent>, TInput, TFieldType extends string, TTriggerEvent extends string>(deps: BuilderFormEditorPageDependencies<TEntity, TInput, TFieldType, TTriggerEvent>): ({ formId }: {
425
- formId?: string;
426
- }) => react.JSX.Element;
427
- declare function createBuilderListEditorPageComponent<TEntity extends BuilderEditorEntity & BuilderListEditorEntity<TTriggerEvent>, TInput, TTriggerEvent extends string>(deps: BuilderListEditorPageDependencies<TEntity, TInput, TTriggerEvent>): ({ listId }: {
428
- listId?: string;
429
- }) => react.JSX.Element;
4
+ import { ComponentType, ReactNode } from 'react';
5
+ import { BuilderApiContracts } from '../api/index.js';
6
+ import { BuilderHooks } from '../hooks/index.js';
7
+ import { UseFormReturn, Resolver } from 'react-hook-form';
8
+ import '@tanstack/react-query';
430
9
 
431
10
  type BuilderEntityManagerEntity = {
432
11
  id: string;
@@ -563,6 +142,35 @@ declare function createBuilderEntityDialogManagerComponent<TEntity extends Build
563
142
  query: TQuery;
564
143
  }, TQuery, TController>(deps: BuilderEntityDialogManagerDependencies<TEntity, TColumn, TState, TQuery, TController>): () => react.JSX.Element;
565
144
 
145
+ type BuilderOptionEntity$1 = {
146
+ id: string;
147
+ title: string;
148
+ };
149
+ type BuilderDefaultViewEditorContracts = BuilderApiContracts & {
150
+ BuilderForm: BuilderOptionEntity$1;
151
+ BuilderList: BuilderOptionEntity$1;
152
+ BuilderView: BuilderViewEditorEntity & {
153
+ id: string;
154
+ title: string;
155
+ };
156
+ };
157
+ type BuilderDefaultViewEditorPageOptions<C extends BuilderDefaultViewEditorContracts> = {
158
+ hooks: BuilderHooks<C>;
159
+ backHref: string;
160
+ editHref(id: string): string;
161
+ permissionOptions: Array<{
162
+ value: string;
163
+ label: string;
164
+ }>;
165
+ defaultPermission?: string;
166
+ parseTriggers(value: string): unknown[];
167
+ notifySuccess?(message: string): void;
168
+ notifyError?(error: unknown): void;
169
+ };
170
+ declare function createBuilderDefaultViewEditorPage<C extends BuilderDefaultViewEditorContracts>(options: BuilderDefaultViewEditorPageOptions<C>): ({ viewId }: {
171
+ viewId?: string;
172
+ }) => react.JSX.Element;
173
+
566
174
  type BuilderOptionEntity = {
567
175
  id: string;
568
176
  title: string;
@@ -611,7 +219,7 @@ type BuilderViewDialogDependencies<TView extends BuilderViewEditorEntity & {
611
219
  id: string;
612
220
  }, TForm extends BuilderOptionEntity, TList extends BuilderOptionEntity, TInput> = {
613
221
  emptyValues: BuilderViewEditorValues;
614
- defaultPermission: string;
222
+ defaultPermission?: string;
615
223
  permissionOptions: Array<{
616
224
  value: string;
617
225
  label: string;
@@ -628,4 +236,55 @@ declare function createBuilderViewDialogComponent<TView extends BuilderViewEdito
628
236
  id: string;
629
237
  }, TForm extends BuilderOptionEntity, TList extends BuilderOptionEntity, TInput>(deps: BuilderViewDialogDependencies<TView, TForm, TList, TInput>): ({ open, editing, forms, lists, onClose, onSave, isSaving, }: BuilderViewDialogProps<TView, TForm, TList, TInput>) => react.JSX.Element;
630
238
 
631
- export { BUILDER_EDITOR_NONE_VALUE, type BuilderEditorDbTable, type BuilderEditorSelectOption, type BuilderEditorTriggerValues, type BuilderEntityDialogManagerDependencies, type BuilderEntityManagerActions, type BuilderEntityManagerAddButtonProps, type BuilderEntityManagerDataGridProps, type BuilderEntityManagerDeleteDialogProps, type BuilderEntityManagerDependencies, type BuilderEntityManagerDialogAddButtonProps, type BuilderEntityManagerEditorDialogProps, type BuilderEntityManagerEntity, type BuilderEntityManagerHookResult, type BuilderEntityManagerLabels, type BuilderEntityManagerMutation, type BuilderFormEditorBodyProps, type BuilderFormEditorEntity, type BuilderFormEditorFieldValues, type BuilderFormEditorLayoutGroupValues, type BuilderFormEditorPageDependencies, type BuilderFormEditorValues, type BuilderListEditorBodyProps, type BuilderListEditorColumnValues, type BuilderListEditorEntity, type BuilderListEditorPageDependencies, type BuilderListEditorValues, type BuilderViewDialogBodyProps, type BuilderViewDialogDependencies, type BuilderViewDialogProps, type BuilderViewDialogShellProps, type BuilderViewEditorEntity, type BuilderViewEditorValues, builderEditorOptionsToText, builderEditorSearchFieldsToText, builderEditorTextToOptions, builderEditorTextToSearchFields, builderFormEditorDefaultLayoutGroups, builderFormEditorDefaultSpan, builderFormEditorFieldsFromTable, builderFormEditorInputFromValues, builderFormEditorValuesFromEntity, builderListEditorColumnsFromTable, builderListEditorInputFromValues, builderListEditorValuesFromEntity, builderViewEditorInputFromValues, builderViewEditorValuesFromEntity, createBuilderEntityDialogManagerComponent, createBuilderEntityManagerComponent, createBuilderFormEditorPageComponent, createBuilderListEditorPageComponent, createBuilderViewDialogComponent, getBuilderEditorTriggerRoute };
239
+ declare const builderFormLayoutDragDataType = "application/x-winu-builder-layout-field";
240
+ type BuilderFormLayoutItem = {
241
+ key: string;
242
+ kind: "field" | "subform";
243
+ meta: string;
244
+ span: number;
245
+ };
246
+ type BuilderFormLayoutDragPayload = {
247
+ type: "palette";
248
+ key: string;
249
+ } | {
250
+ type: "layout";
251
+ groupIndex: number;
252
+ fieldIndex: number;
253
+ key: string;
254
+ };
255
+ declare function clampBuilderFormLayoutSpan(span: number, columns: 6 | 8 | 12): number;
256
+ declare function swapBuilderFormLayoutItems<T>(items: T[], from: number, to: number): T[];
257
+ declare function nextBuilderFormLayoutGroupId(groups: BuilderFormEditorLayoutGroupValues[]): string;
258
+ declare function serializeBuilderFormLayoutDragPayload(payload: BuilderFormLayoutDragPayload): string;
259
+ declare function parseBuilderFormLayoutDragPayload(raw: string): {
260
+ type: "palette";
261
+ key: string;
262
+ groupIndex?: undefined;
263
+ fieldIndex?: undefined;
264
+ } | {
265
+ type: "layout";
266
+ groupIndex: number | undefined;
267
+ fieldIndex: number | undefined;
268
+ key: string;
269
+ } | null;
270
+ type UseBuilderFormLayoutEditorArgs<TFieldType extends string, TTriggerEvent extends string> = {
271
+ form: UseFormReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>>;
272
+ fields: BuilderFormEditorFieldValues<TFieldType>[];
273
+ subforms?: BuilderFormEditorSubformValues[];
274
+ };
275
+ declare function useBuilderFormLayoutEditor<TFieldType extends string, TTriggerEvent extends string>({ form, fields, subforms }: UseBuilderFormLayoutEditorArgs<TFieldType, TTriggerEvent>): {
276
+ assignedKeys: Set<string>;
277
+ layoutGroups: BuilderFormEditorLayoutGroupValues[];
278
+ layoutItems: BuilderFormLayoutItem[];
279
+ unassignedItems: BuilderFormLayoutItem[];
280
+ addGroup: () => void;
281
+ addItemToGroup: (groupIndex: number, itemKey: string, insertAt?: number) => void;
282
+ addItemToNewGroup: (itemKey: string) => void;
283
+ applyDragPayload: (payload: BuilderFormLayoutDragPayload | null, targetGroupIndex: number, targetFieldIndex?: number) => void;
284
+ resetDefaultLayout: () => void;
285
+ setGroups: (groups: BuilderFormEditorLayoutGroupValues[]) => void;
286
+ updateGroup: (groupIndex: number, group: BuilderFormEditorLayoutGroupValues) => void;
287
+ updateGroupFields: (groupIndex: number, updater: (fields: BuilderFormEditorLayoutGroupValues["fields"]) => BuilderFormEditorLayoutGroupValues["fields"]) => void;
288
+ };
289
+
290
+ export { type BuilderDefaultViewEditorContracts, type BuilderDefaultViewEditorPageOptions, type BuilderEntityDialogManagerDependencies, type BuilderEntityManagerActions, type BuilderEntityManagerAddButtonProps, type BuilderEntityManagerDataGridProps, type BuilderEntityManagerDeleteDialogProps, type BuilderEntityManagerDependencies, type BuilderEntityManagerDialogAddButtonProps, type BuilderEntityManagerEditorDialogProps, type BuilderEntityManagerEntity, type BuilderEntityManagerHookResult, type BuilderEntityManagerLabels, type BuilderEntityManagerMutation, BuilderFormEditorFieldValues, BuilderFormEditorLayoutGroupValues, BuilderFormEditorValues, type BuilderFormLayoutDragPayload, type BuilderFormLayoutItem, type BuilderViewDialogBodyProps, type BuilderViewDialogDependencies, type BuilderViewDialogProps, type BuilderViewDialogShellProps, BuilderViewEditorEntity, BuilderViewEditorValues, builderFormLayoutDragDataType, clampBuilderFormLayoutSpan, createBuilderDefaultViewEditorPage, createBuilderEntityDialogManagerComponent, createBuilderEntityManagerComponent, createBuilderViewDialogComponent, nextBuilderFormLayoutGroupId, parseBuilderFormLayoutDragPayload, serializeBuilderFormLayoutDragPayload, swapBuilderFormLayoutItems, useBuilderFormLayoutEditor };