@dmitryvim/form-builder 0.2.32 → 0.2.34
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/browser/formbuilder.min.js +189 -175
- package/dist/browser/formbuilder.v0.2.34.min.js +1162 -0
- package/dist/cjs/index.cjs +584 -496
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.js +579 -493
- package/dist/esm/index.js.map +1 -1
- package/dist/form-builder.js +189 -175
- package/dist/types/components/colour.d.ts +1 -0
- package/dist/types/components/file/upload.d.ts +4 -0
- package/dist/types/components/file.d.ts +2 -2
- package/dist/types/types/config.d.ts +1 -0
- package/dist/types/types/schema.d.ts +8 -0
- package/dist/types/utils/styles.d.ts +42 -0
- package/package.json +1 -1
- package/dist/browser/formbuilder.v0.2.32.min.js +0 -1148
|
@@ -5,6 +5,7 @@ export interface ColourElement extends BaseElement {
|
|
|
5
5
|
multiple?: boolean;
|
|
6
6
|
minCount?: number;
|
|
7
7
|
maxCount?: number;
|
|
8
|
+
addLabel?: string;
|
|
8
9
|
}
|
|
9
10
|
export declare function renderColourElement(element: ColourElement, ctx: RenderContext, wrapper: HTMLElement, pathKey: string): void;
|
|
10
11
|
export declare function renderMultipleColourElement(element: ColourElement, ctx: RenderContext, wrapper: HTMLElement, pathKey: string): void;
|
|
@@ -27,5 +27,9 @@ export interface HandleFileSelectOptions {
|
|
|
27
27
|
maxSizeMB?: number;
|
|
28
28
|
}
|
|
29
29
|
export declare function handleFileSelect(opts: HandleFileSelectOptions): Promise<void>;
|
|
30
|
+
export interface UploadBatchFailure {
|
|
31
|
+
file: File;
|
|
32
|
+
error: Error;
|
|
33
|
+
}
|
|
30
34
|
export declare function setupFilesDropHandler(filesContainer: HTMLElement, resourceIds: string[], state: State, updateCallback: () => void, constraints: FileUploadConstraints, pathKey?: string, instance?: FormBuilderInstance | null): void;
|
|
31
35
|
export declare function setupFilesPickerHandler(filesPicker: HTMLInputElement, resourceIds: string[], state: State, updateCallback: () => void, constraints: FileUploadConstraints, pathKey?: string, instance?: FormBuilderInstance | null): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FileElement, FilesElement, RenderContext, ComponentContext, Element } from "../types/index.js";
|
|
2
|
-
export { getAllowedExtensions, isFileExtensionAllowed, isFileSizeAllowed } from "./file/constraints.js";
|
|
3
|
-
export { renderFilePreview, renderFilePreviewReadonly } from "./file/preview.js";
|
|
2
|
+
export { getAllowedExtensions, isFileExtensionAllowed, isFileSizeAllowed, } from "./file/constraints.js";
|
|
3
|
+
export { renderFilePreview, renderFilePreviewReadonly, } from "./file/preview.js";
|
|
4
4
|
export { renderResourcePills } from "./file/render-edit.js";
|
|
5
5
|
export { validateFileElement } from "./file/validate.js";
|
|
6
6
|
export declare function renderFileElement(element: FileElement, ctx: RenderContext, wrapper: HTMLElement, pathKey: string): void;
|
|
@@ -44,6 +44,7 @@ export interface TextElement extends BaseElement {
|
|
|
44
44
|
multiple?: boolean;
|
|
45
45
|
minCount?: number;
|
|
46
46
|
maxCount?: number;
|
|
47
|
+
addLabel?: string;
|
|
47
48
|
}
|
|
48
49
|
export interface TextareaElement extends BaseElement {
|
|
49
50
|
type: "textarea";
|
|
@@ -56,6 +57,7 @@ export interface TextareaElement extends BaseElement {
|
|
|
56
57
|
minCount?: number;
|
|
57
58
|
maxCount?: number;
|
|
58
59
|
autoExpand?: boolean;
|
|
60
|
+
addLabel?: string;
|
|
59
61
|
}
|
|
60
62
|
export interface NumberElement extends BaseElement {
|
|
61
63
|
type: "number";
|
|
@@ -67,6 +69,7 @@ export interface NumberElement extends BaseElement {
|
|
|
67
69
|
multiple?: boolean;
|
|
68
70
|
minCount?: number;
|
|
69
71
|
maxCount?: number;
|
|
72
|
+
addLabel?: string;
|
|
70
73
|
}
|
|
71
74
|
export interface SelectElement extends BaseElement {
|
|
72
75
|
type: "select";
|
|
@@ -75,6 +78,7 @@ export interface SelectElement extends BaseElement {
|
|
|
75
78
|
multiple?: boolean;
|
|
76
79
|
minCount?: number;
|
|
77
80
|
maxCount?: number;
|
|
81
|
+
addLabel?: string;
|
|
78
82
|
}
|
|
79
83
|
/**
|
|
80
84
|
* File accept constraint — either a legacy comma-separated string (e.g. ".jpg,.png")
|
|
@@ -118,6 +122,7 @@ export interface ContainerElement extends BaseElement {
|
|
|
118
122
|
* Ignored when `multiple: false`.
|
|
119
123
|
*/
|
|
120
124
|
displayMode?: "stack" | "slides";
|
|
125
|
+
addLabel?: string;
|
|
121
126
|
}
|
|
122
127
|
export interface ColourElement extends BaseElement {
|
|
123
128
|
type: "colour";
|
|
@@ -125,6 +130,7 @@ export interface ColourElement extends BaseElement {
|
|
|
125
130
|
multiple?: boolean;
|
|
126
131
|
minCount?: number;
|
|
127
132
|
maxCount?: number;
|
|
133
|
+
addLabel?: string;
|
|
128
134
|
}
|
|
129
135
|
export interface SliderElement extends BaseElement {
|
|
130
136
|
type: "slider";
|
|
@@ -135,6 +141,7 @@ export interface SliderElement extends BaseElement {
|
|
|
135
141
|
multiple?: boolean;
|
|
136
142
|
minCount?: number;
|
|
137
143
|
maxCount?: number;
|
|
144
|
+
addLabel?: string;
|
|
138
145
|
}
|
|
139
146
|
export interface SwitcherElement extends BaseElement {
|
|
140
147
|
type: "switcher";
|
|
@@ -142,6 +149,7 @@ export interface SwitcherElement extends BaseElement {
|
|
|
142
149
|
multiple?: boolean;
|
|
143
150
|
minCount?: number;
|
|
144
151
|
maxCount?: number;
|
|
152
|
+
addLabel?: string;
|
|
145
153
|
}
|
|
146
154
|
export interface GroupElement extends BaseElement {
|
|
147
155
|
type: "group";
|
|
@@ -7,6 +7,48 @@ export declare function applyInputStyles(element: HTMLInputElement | HTMLTextAre
|
|
|
7
7
|
* Apply themed hint/description styles to a paragraph element
|
|
8
8
|
*/
|
|
9
9
|
export declare function applyHintStyles(element: HTMLParagraphElement): void;
|
|
10
|
+
/**
|
|
11
|
+
* Mount a counter element into the field's label row so it sits inline with
|
|
12
|
+
* the heading (e.g. `Tags 3/5`) instead of below the field. The label row is
|
|
13
|
+
* marked with `[data-fb-label-row]` by `createLabelContainer` — the data
|
|
14
|
+
* attribute is the stable hook; layout utility classes may change.
|
|
15
|
+
*
|
|
16
|
+
* No-op when the wrapper has no label row (e.g. nested anonymous wrappers).
|
|
17
|
+
*/
|
|
18
|
+
export declare function mountCounterInLabel(wrapper: HTMLElement, counter: HTMLElement): void;
|
|
19
|
+
/**
|
|
20
|
+
* Visual: full-width dashed pill button, optional `+ {label}` centered.
|
|
21
|
+
* Used by every multi-value field type.
|
|
22
|
+
*
|
|
23
|
+
* The counter is returned separately so callers can place it inline with the
|
|
24
|
+
* field label (saving a row). At maxCount both the button and the row are
|
|
25
|
+
* hidden — the counter stays visible wherever the caller mounted it.
|
|
26
|
+
*
|
|
27
|
+
* `classNameSuffix` becomes `add-{suffix}-btn` to preserve test-targetable
|
|
28
|
+
* class names that the existing test suite already queries.
|
|
29
|
+
*/
|
|
30
|
+
export interface AddItemRowHandle {
|
|
31
|
+
row: HTMLDivElement;
|
|
32
|
+
button: HTMLButtonElement;
|
|
33
|
+
counter: HTMLSpanElement;
|
|
34
|
+
update: (current: number, max: number) => void;
|
|
35
|
+
}
|
|
36
|
+
export declare function createAddItemRow(classNameSuffix: string, onClick: () => void, options?: {
|
|
37
|
+
label?: string;
|
|
38
|
+
showCounter?: boolean;
|
|
39
|
+
}): AddItemRowHandle;
|
|
40
|
+
/**
|
|
41
|
+
* Slide-sized add tile rendered inside a slides-displayMode container grid.
|
|
42
|
+
* Sits as another grid cell next to existing slides at the same dimensions.
|
|
43
|
+
*/
|
|
44
|
+
export interface SlideAddTileHandle {
|
|
45
|
+
tile: HTMLButtonElement;
|
|
46
|
+
counter: HTMLSpanElement;
|
|
47
|
+
update: (current: number, max: number) => void;
|
|
48
|
+
}
|
|
49
|
+
export declare function createSlideAddTile(onClick: () => void, options?: {
|
|
50
|
+
label?: string;
|
|
51
|
+
}): SlideAddTileHandle;
|
|
10
52
|
/**
|
|
11
53
|
* Create a styled add button with theme support
|
|
12
54
|
*/
|