ngx-form-designerr 0.0.10
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/README.md +269 -0
- package/fesm2022/ngx-form-designer.mjs +27262 -0
- package/fesm2022/ngx-form-designer.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/data/data-catalog.d.ts +44 -0
- package/lib/data/data-provider.d.ts +58 -0
- package/lib/data/data-source-client.d.ts +59 -0
- package/lib/data/data-source-parsers.d.ts +5 -0
- package/lib/data/external-data-source.d.ts +29 -0
- package/lib/data/file-upload-client.d.ts +19 -0
- package/lib/data/http-data-source-client.d.ts +31 -0
- package/lib/data/in-memory-data-catalog.service.d.ts +12 -0
- package/lib/data/tree-utils.d.ts +28 -0
- package/lib/email-renderer/email-renderer.component.d.ts +21 -0
- package/lib/form-core/form-engine.d.ts +48 -0
- package/lib/form-core/form-event-runner.d.ts +15 -0
- package/lib/form-core/models.d.ts +256 -0
- package/lib/form-core/plugin-metadata.d.ts +10 -0
- package/lib/form-core/rule-evaluation.service.d.ts +18 -0
- package/lib/form-core/schema-factory.d.ts +11 -0
- package/lib/form-core/schema-guard.d.ts +18 -0
- package/lib/form-core/schema-utils.d.ts +9 -0
- package/lib/form-designer/data-panel/data-panel.component.d.ts +73 -0
- package/lib/form-designer/designer-context.service.d.ts +29 -0
- package/lib/form-designer/designer-state.service.d.ts +135 -0
- package/lib/form-designer/dynamic-properties/dynamic-properties.component.d.ts +89 -0
- package/lib/form-designer/events-panel/events-panel.component.d.ts +21 -0
- package/lib/form-designer/field-palette.component.d.ts +99 -0
- package/lib/form-designer/form-designer-shell.component.d.ts +56 -0
- package/lib/form-designer/form-preview.component.d.ts +21 -0
- package/lib/form-designer/form-settings-inspector.component.d.ts +15 -0
- package/lib/form-designer/global-data-manager.component.d.ts +32 -0
- package/lib/form-designer/inspector-sections/inspector-advanced-section.component.d.ts +17 -0
- package/lib/form-designer/inspector-sections/inspector-backgrounds-section.component.d.ts +14 -0
- package/lib/form-designer/inspector-sections/inspector-borders-section.component.d.ts +45 -0
- package/lib/form-designer/inspector-sections/inspector-effects-section.component.d.ts +22 -0
- package/lib/form-designer/inspector-sections/inspector-layout-section.component.d.ts +33 -0
- package/lib/form-designer/inspector-sections/inspector-position-section.component.d.ts +28 -0
- package/lib/form-designer/inspector-sections/inspector-size-section.component.d.ts +18 -0
- package/lib/form-designer/inspector-sections/inspector-spacing-section.component.d.ts +12 -0
- package/lib/form-designer/inspector-sections/inspector-typography-section.component.d.ts +21 -0
- package/lib/form-designer/json-form-designer.component.d.ts +12 -0
- package/lib/form-designer/layer-tree/layer-tree.component.d.ts +24 -0
- package/lib/form-designer/layout-canvas.component.d.ts +70 -0
- package/lib/form-designer/page-style.d.ts +2 -0
- package/lib/form-designer/properties-panel.component.d.ts +68 -0
- package/lib/form-designer/rules-editor/query-builder/query-builder.component.d.ts +23 -0
- package/lib/form-designer/rules-editor/rules-panel/rules-panel.component.d.ts +14 -0
- package/lib/form-designer/services/widget-definition-resolver.service.d.ts +38 -0
- package/lib/form-designer/template-library.d.ts +9 -0
- package/lib/form-designer/widget-inspector.component.d.ts +28 -0
- package/lib/form-renderer/form-viewer/form-viewer.component.d.ts +35 -0
- package/lib/form-renderer/json-form-renderer.component.d.ts +65 -0
- package/lib/form-renderer/layout-node.component.d.ts +85 -0
- package/lib/plugins/core-plugins.d.ts +5 -0
- package/lib/plugins/designer-plugin.d.ts +15 -0
- package/lib/plugins/plugin-context.d.ts +18 -0
- package/lib/plugins/plugin-providers.d.ts +3 -0
- package/lib/plugins/section-definition.d.ts +16 -0
- package/lib/theme/theme.service.d.ts +15 -0
- package/lib/ui/json-schema-editor.component.d.ts +27 -0
- package/lib/ui/monaco-editor.component.d.ts +24 -0
- package/lib/ui/ui-accordion.component.d.ts +11 -0
- package/lib/ui/ui-box-model.component.d.ts +55 -0
- package/lib/ui/ui-color-swatch.component.d.ts +12 -0
- package/lib/ui/ui-dimension.component.d.ts +21 -0
- package/lib/ui/ui-edge-box.component.d.ts +20 -0
- package/lib/ui/ui-field-wrapper.component.d.ts +8 -0
- package/lib/ui/ui-icon.module.d.ts +7 -0
- package/lib/ui/ui-input.component.d.ts +17 -0
- package/lib/ui/ui-range-number.component.d.ts +16 -0
- package/lib/ui/ui-select-icon.component.d.ts +18 -0
- package/lib/ui/ui-tabs.component.d.ts +25 -0
- package/lib/website/website-brick-studio.component.d.ts +67 -0
- package/lib/website/website-designer-shell.component.d.ts +53 -0
- package/lib/website/website-preview-shell.component.d.ts +25 -0
- package/lib/website/website-project.models.d.ts +78 -0
- package/lib/website/website-project.service.d.ts +50 -0
- package/lib/website/website-section-library.d.ts +6 -0
- package/lib/widgets/email-widgets/email-button-widget.component.d.ts +15 -0
- package/lib/widgets/email-widgets/email-heading-widget.component.d.ts +15 -0
- package/lib/widgets/email-widgets/email-text-widget.component.d.ts +13 -0
- package/lib/widgets/email-widgets.d.ts +2 -0
- package/lib/widgets/field-widgets/checkbox/checkbox-widget.component.d.ts +28 -0
- package/lib/widgets/field-widgets/checkbox-group/checkbox-group-widget.component.d.ts +40 -0
- package/lib/widgets/field-widgets/file-upload/file-upload-widget.component.d.ts +45 -0
- package/lib/widgets/field-widgets/radio/radio-widget.component.d.ts +39 -0
- package/lib/widgets/field-widgets/select/select-widget.component.d.ts +36 -0
- package/lib/widgets/field-widgets/text-field/text-field.component.d.ts +29 -0
- package/lib/widgets/field-widgets/tree-select/tree-select-widget.component.d.ts +47 -0
- package/lib/widgets/page-link-context.d.ts +8 -0
- package/lib/widgets/page-widgets/brick-settings.component.d.ts +23 -0
- package/lib/widgets/page-widgets/brick-widget.component.d.ts +47 -0
- package/lib/widgets/page-widgets/button-link-settings.component.d.ts +23 -0
- package/lib/widgets/page-widgets/button-widget.component.d.ts +21 -0
- package/lib/widgets/page-widgets/heading-widget.component.d.ts +22 -0
- package/lib/widgets/page-widgets/inline-quill-editor.component.d.ts +34 -0
- package/lib/widgets/page-widgets/table-inspector.component.d.ts +17 -0
- package/lib/widgets/page-widgets/table-widget.component.d.ts +35 -0
- package/lib/widgets/page-widgets/text-block-widget.component.d.ts +22 -0
- package/lib/widgets/page-widgets.d.ts +2 -0
- package/lib/widgets/static-widgets/image/image-widget.component.d.ts +18 -0
- package/lib/widgets/style-helpers.d.ts +8 -0
- package/lib/widgets/style-properties.d.ts +28 -0
- package/lib/widgets/style-sections.d.ts +1 -0
- package/lib/widgets/table-widget.d.ts +2 -0
- package/lib/widgets/widget-definition.d.ts +76 -0
- package/lib/widgets/widget-editor-context.d.ts +8 -0
- package/lib/widgets/widget-packs.d.ts +4 -0
- package/lib/widgets/widgets.d.ts +2 -0
- package/package.json +47 -0
- package/public-api.d.ts +70 -0
- package/tailwind.preset.js +51 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class TableInspectorComponent {
|
|
3
|
+
config: any;
|
|
4
|
+
getValue: (path: string) => any;
|
|
5
|
+
setValue: (path: string, value: any) => void;
|
|
6
|
+
onChange: () => void;
|
|
7
|
+
get columns(): any;
|
|
8
|
+
get rows(): any;
|
|
9
|
+
addColumn(): void;
|
|
10
|
+
removeColumn(index: number): void;
|
|
11
|
+
updateColumns(): void;
|
|
12
|
+
addRow(): void;
|
|
13
|
+
removeRow(index: number): void;
|
|
14
|
+
updateRows(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableInspectorComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableInspectorComponent, "app-table-inspector", never, { "config": { "alias": "config"; "required": false; }; "getValue": { "alias": "getValue"; "required": false; }; "setValue": { "alias": "setValue"; "required": false; }; "onChange": { "alias": "onChange"; "required": false; }; }, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { OnInit, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { FormEngine } from '../../form-core/form-engine';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class TableWidgetComponent implements OnInit, OnChanges, OnDestroy {
|
|
6
|
+
config: any;
|
|
7
|
+
engine?: FormEngine;
|
|
8
|
+
control?: FormControl;
|
|
9
|
+
private readonly dataProvider;
|
|
10
|
+
private readonly pluginCtx;
|
|
11
|
+
searchControl: FormControl<string | null>;
|
|
12
|
+
loading: boolean;
|
|
13
|
+
error: string | null;
|
|
14
|
+
pageSize: number;
|
|
15
|
+
pageIndex: number;
|
|
16
|
+
total: number;
|
|
17
|
+
displayRows: any[];
|
|
18
|
+
private readonly destroyRef;
|
|
19
|
+
private reqId;
|
|
20
|
+
ngOnInit(): void;
|
|
21
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
22
|
+
ngOnDestroy(): void;
|
|
23
|
+
getStyles(): Record<string, any>;
|
|
24
|
+
showToolbar(): boolean;
|
|
25
|
+
get pageStart(): number;
|
|
26
|
+
get pageEnd(): number;
|
|
27
|
+
prevPage(): void;
|
|
28
|
+
nextPage(): void;
|
|
29
|
+
hasNextPage(): boolean;
|
|
30
|
+
private updateRows;
|
|
31
|
+
private getRowsFromBinding;
|
|
32
|
+
private getDependencyFieldIds;
|
|
33
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableWidgetComponent, never>;
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableWidgetComponent, "app-table-widget", never, { "config": { "alias": "config"; "required": true; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class TextBlockWidgetComponent {
|
|
3
|
+
private readonly editor;
|
|
4
|
+
private readonly router;
|
|
5
|
+
config: any;
|
|
6
|
+
engine?: any;
|
|
7
|
+
control?: any;
|
|
8
|
+
getStyles(): Record<string, any>;
|
|
9
|
+
isDesignMode(): boolean;
|
|
10
|
+
isEditing(): boolean;
|
|
11
|
+
textEditorClass(): string;
|
|
12
|
+
textContainerClass(): string;
|
|
13
|
+
textHtml(): string;
|
|
14
|
+
quillHtml(): string;
|
|
15
|
+
onHtmlChange(html: string): void;
|
|
16
|
+
onLinkClick(event: MouseEvent): void;
|
|
17
|
+
private wrapHtmlForQuill;
|
|
18
|
+
private normalizeInlineHtml;
|
|
19
|
+
private normalizeInternalHref;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextBlockWidgetComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextBlockWidgetComponent, "app-text-block-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { FormEngine } from '../../../form-core/form-engine';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class ImageWidgetComponent implements OnInit, OnChanges {
|
|
6
|
+
config: any;
|
|
7
|
+
engine?: FormEngine;
|
|
8
|
+
control?: FormControl;
|
|
9
|
+
displaySrc: string | null;
|
|
10
|
+
private readonly dataProvider;
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
13
|
+
private updateSrc;
|
|
14
|
+
getContainerStyles(): Record<string, any>;
|
|
15
|
+
getSpacing(token: string): string;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ImageWidgetComponent, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ImageWidgetComponent, "app-image-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for normalizing style objects coming from widget configs.
|
|
3
|
+
* - Converts number values to px strings.
|
|
4
|
+
* - Skips null/undefined/empty values.
|
|
5
|
+
*/
|
|
6
|
+
export type StyleRecord = Record<string, any>;
|
|
7
|
+
export declare function normalizeStyle(style?: StyleRecord): Record<string, any>;
|
|
8
|
+
export declare function mergeAndNormalize(base?: StyleRecord, override?: StyleRecord): Record<string, any>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PropertyField, PropertySection } from './widget-definition';
|
|
2
|
+
export declare const LAYOUT_FIELDS: PropertyField[];
|
|
3
|
+
export declare const SPACING_MARGIN_FIELDS: PropertyField[];
|
|
4
|
+
export declare const SPACING_PADDING_FIELDS: PropertyField[];
|
|
5
|
+
export declare const SPACING_BOX_MODEL_FIELD: PropertyField;
|
|
6
|
+
export declare const APPEARANCE_FIELDS: PropertyField[];
|
|
7
|
+
export declare const TYPOGRAPHY_FIELDS: PropertyField[];
|
|
8
|
+
export declare const TRANSFORM_FIELDS: PropertyField[];
|
|
9
|
+
export declare const EFFECTS_FIELDS: PropertyField[];
|
|
10
|
+
export declare const STYLE_LAYOUT_SECTION: PropertySection;
|
|
11
|
+
export declare const STYLE_SPACING_SECTION: PropertySection;
|
|
12
|
+
export declare const STYLE_APPEARANCE_SECTION: PropertySection;
|
|
13
|
+
export declare const STYLE_TYPOGRAPHY_SECTION: PropertySection;
|
|
14
|
+
export declare const STYLE_TRANSFORM_SECTION: PropertySection;
|
|
15
|
+
export declare const STYLE_EFFECTS_SECTION: PropertySection;
|
|
16
|
+
export declare const STYLE_SECTIONS: PropertySection[];
|
|
17
|
+
/**
|
|
18
|
+
* Standard style sections for form widgets (no transforms)
|
|
19
|
+
*/
|
|
20
|
+
export declare const STANDARD_FORM_STYLE_SECTIONS: PropertySection[];
|
|
21
|
+
/**
|
|
22
|
+
* Full style sections for web widgets (includes transforms)
|
|
23
|
+
*/
|
|
24
|
+
export declare const FULL_WEB_STYLE_SECTIONS: PropertySection[];
|
|
25
|
+
/**
|
|
26
|
+
* Email-safe style sections (no transforms or advanced effects)
|
|
27
|
+
*/
|
|
28
|
+
export declare const EMAIL_SAFE_STYLE_SECTIONS: PropertySection[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { STYLE_LAYOUT_SECTION, STYLE_SPACING_SECTION, STYLE_APPEARANCE_SECTION, STYLE_TYPOGRAPHY_SECTION, STYLE_TRANSFORM_SECTION, STYLE_EFFECTS_SECTION, STYLE_SECTIONS } from './style-properties';
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Type, InjectionToken } from '@angular/core';
|
|
2
|
+
import { WidgetKind, DesignerFlavor } from '../form-core/models';
|
|
3
|
+
export interface WidgetConfig {
|
|
4
|
+
label?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
export type PropertyFieldType = 'text' | 'textarea' | 'number' | 'select' | 'checkbox' | 'slide-toggle' | 'color' | 'color-swatch' | 'icon-picker' | 'padding' | 'margin' | 'shadow' | 'border' | 'options-editor' | 'validators-editor' | 'conditional-editor' | 'custom' | 'field-reference' | 'dimension' | 'edge-box' | 'box-model' | 'range-number' | 'select-icon';
|
|
11
|
+
export interface PropertyField {
|
|
12
|
+
key: string;
|
|
13
|
+
type: PropertyFieldType;
|
|
14
|
+
label: string;
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
helpText?: string;
|
|
17
|
+
hint?: string;
|
|
18
|
+
options?: {
|
|
19
|
+
label: string;
|
|
20
|
+
value: any;
|
|
21
|
+
icon?: string;
|
|
22
|
+
}[];
|
|
23
|
+
allowedFieldTypes?: string[];
|
|
24
|
+
includeSelf?: boolean;
|
|
25
|
+
min?: number;
|
|
26
|
+
max?: number;
|
|
27
|
+
step?: number;
|
|
28
|
+
icon?: string;
|
|
29
|
+
unit?: string;
|
|
30
|
+
linkedByDefault?: boolean;
|
|
31
|
+
allowedUnits?: string[];
|
|
32
|
+
customComponent?: Type<any>;
|
|
33
|
+
customInputs?: Record<string, any>;
|
|
34
|
+
hiddenIf?: (config: any) => boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface PropertySection {
|
|
37
|
+
label: string;
|
|
38
|
+
expanded?: boolean;
|
|
39
|
+
fields: PropertyField[];
|
|
40
|
+
}
|
|
41
|
+
export declare const WIDGET_ID_SEPARATOR: ":";
|
|
42
|
+
/**
|
|
43
|
+
* Generates a stable widget ID from a plugin ID and widget name/type.
|
|
44
|
+
* @param pluginId Globally unique plugin ID (e.g. 'core.form', 'acme.analytics')
|
|
45
|
+
* @param widgetName Short widget identifier (e.g. 'text', 'line-chart')
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildWidgetId(pluginId: string, widgetName: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Implementation helper for defining widgets with standard IDs.
|
|
50
|
+
* Plugin authors should use this to ensure ID consistency.
|
|
51
|
+
*/
|
|
52
|
+
export declare function defineWidget(pluginId: string, def: Omit<WidgetDefinition, 'id'>): WidgetDefinition;
|
|
53
|
+
export type DataShape = 'scalar' | 'list';
|
|
54
|
+
export interface DataBindingContract {
|
|
55
|
+
shape: DataShape;
|
|
56
|
+
targetPath?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface WidgetDefinition {
|
|
59
|
+
id: string;
|
|
60
|
+
kind: WidgetKind;
|
|
61
|
+
flavor?: DesignerFlavor;
|
|
62
|
+
type: string;
|
|
63
|
+
icon: string;
|
|
64
|
+
label: string;
|
|
65
|
+
createConfig: () => any;
|
|
66
|
+
renderer: Type<any>;
|
|
67
|
+
properties?: PropertySection[];
|
|
68
|
+
dataBinding?: DataBindingContract;
|
|
69
|
+
dataConsumer?: 'value' | 'list' | 'image' | 'none';
|
|
70
|
+
inspector?: Type<any>;
|
|
71
|
+
}
|
|
72
|
+
export interface WidgetPack {
|
|
73
|
+
flavor: DesignerFlavor;
|
|
74
|
+
widgets: WidgetDefinition[];
|
|
75
|
+
}
|
|
76
|
+
export declare const WIDGET_DEFINITIONS: InjectionToken<WidgetDefinition[]>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import type { FieldSchema } from '../form-core/models';
|
|
3
|
+
export type WidgetEditorContext = {
|
|
4
|
+
isDesignMode: () => boolean;
|
|
5
|
+
isSelected: () => boolean;
|
|
6
|
+
updateField: (fieldId: string, updates: Partial<FieldSchema>) => void;
|
|
7
|
+
};
|
|
8
|
+
export declare const WIDGET_EDITOR_CONTEXT: InjectionToken<WidgetEditorContext>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DesignerFlavor } from '../form-core/models';
|
|
2
|
+
import { WidgetDefinition, WidgetPack } from './widget-definition';
|
|
3
|
+
export declare const DEFAULT_WIDGET_PACKS: WidgetPack[];
|
|
4
|
+
export declare function getWidgetsForFlavor(flavor: DesignerFlavor, packs?: WidgetPack[]): WidgetDefinition[];
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ngx-form-designerr",
|
|
3
|
+
"version": "0.0.10",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^19.0.0",
|
|
6
|
+
"@angular/core": "^19.0.0",
|
|
7
|
+
"@angular/forms": "^19.0.0",
|
|
8
|
+
"@angular/cdk": "^19.0.0",
|
|
9
|
+
"@monaco-editor/loader": "^1.4.0",
|
|
10
|
+
"lucide-angular": "^0.469.0",
|
|
11
|
+
"quill": "^2.0.3",
|
|
12
|
+
"react": "^18.2.0",
|
|
13
|
+
"react-dom": "^18.2.0",
|
|
14
|
+
"@babel/standalone": "^7.25.0",
|
|
15
|
+
"@json-editor/json-editor": "^2.15.2"
|
|
16
|
+
},
|
|
17
|
+
"peerDependenciesMeta": {
|
|
18
|
+
"react": {
|
|
19
|
+
"optional": true
|
|
20
|
+
},
|
|
21
|
+
"react-dom": {
|
|
22
|
+
"optional": true
|
|
23
|
+
},
|
|
24
|
+
"@babel/standalone": {
|
|
25
|
+
"optional": true
|
|
26
|
+
},
|
|
27
|
+
"@json-editor/json-editor": {
|
|
28
|
+
"optional": true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"tslib": "^2.3.0",
|
|
33
|
+
"uuid": "^13.0.0"
|
|
34
|
+
},
|
|
35
|
+
"sideEffects": false,
|
|
36
|
+
"module": "fesm2022/ngx-form-designer.mjs",
|
|
37
|
+
"typings": "index.d.ts",
|
|
38
|
+
"exports": {
|
|
39
|
+
"./package.json": {
|
|
40
|
+
"default": "./package.json"
|
|
41
|
+
},
|
|
42
|
+
".": {
|
|
43
|
+
"types": "./index.d.ts",
|
|
44
|
+
"default": "./fesm2022/ngx-form-designer.mjs"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export * from './lib/form-core/models';
|
|
2
|
+
export * from './lib/form-core/form-engine';
|
|
3
|
+
export * from './lib/form-core/schema-factory';
|
|
4
|
+
export * from './lib/form-core/schema-guard';
|
|
5
|
+
export * from './lib/form-renderer/json-form-renderer.component';
|
|
6
|
+
export * from './lib/form-renderer/layout-node.component';
|
|
7
|
+
export * from './lib/email-renderer/email-renderer.component';
|
|
8
|
+
export * from './lib/form-renderer/form-viewer/form-viewer.component';
|
|
9
|
+
export * from './lib/form-designer/json-form-designer.component';
|
|
10
|
+
export * from './lib/form-designer/form-designer-shell.component';
|
|
11
|
+
export * from './lib/form-designer/designer-state.service';
|
|
12
|
+
export * from './lib/form-designer/designer-context.service';
|
|
13
|
+
export * from './lib/form-designer/layout-canvas.component';
|
|
14
|
+
export * from './lib/form-designer/field-palette.component';
|
|
15
|
+
export * from './lib/form-designer/properties-panel.component';
|
|
16
|
+
export * from './lib/form-designer/template-library';
|
|
17
|
+
export * from './lib/form-designer/widget-inspector.component';
|
|
18
|
+
export * from './lib/form-designer/dynamic-properties/dynamic-properties.component';
|
|
19
|
+
export * from './lib/form-designer/data-panel/data-panel.component';
|
|
20
|
+
export * from './lib/form-designer/rules-editor/rules-panel/rules-panel.component';
|
|
21
|
+
export * from './lib/form-designer/events-panel/events-panel.component';
|
|
22
|
+
export * from './lib/form-designer/services/widget-definition-resolver.service';
|
|
23
|
+
export * from './lib/form-designer/inspector-sections/inspector-layout-section.component';
|
|
24
|
+
export * from './lib/form-designer/inspector-sections/inspector-spacing-section.component';
|
|
25
|
+
export * from './lib/form-designer/inspector-sections/inspector-size-section.component';
|
|
26
|
+
export * from './lib/form-designer/inspector-sections/inspector-position-section.component';
|
|
27
|
+
export * from './lib/form-designer/inspector-sections/inspector-typography-section.component';
|
|
28
|
+
export * from './lib/form-designer/inspector-sections/inspector-borders-section.component';
|
|
29
|
+
export * from './lib/form-designer/inspector-sections/inspector-backgrounds-section.component';
|
|
30
|
+
export * from './lib/form-designer/inspector-sections/inspector-effects-section.component';
|
|
31
|
+
export * from './lib/form-designer/inspector-sections/inspector-advanced-section.component';
|
|
32
|
+
export * from './lib/website/website-project.models';
|
|
33
|
+
export * from './lib/website/website-project.service';
|
|
34
|
+
export * from './lib/website/website-designer-shell.component';
|
|
35
|
+
export * from './lib/website/website-brick-studio.component';
|
|
36
|
+
export * from './lib/website/website-preview-shell.component';
|
|
37
|
+
export * from './lib/website/website-section-library';
|
|
38
|
+
export * from './lib/widgets/widget-definition';
|
|
39
|
+
export * from './lib/widgets/widgets';
|
|
40
|
+
export * from './lib/widgets/page-widgets';
|
|
41
|
+
export * from './lib/widgets/email-widgets';
|
|
42
|
+
export * from './lib/widgets/widget-packs';
|
|
43
|
+
export * from './lib/plugins/designer-plugin';
|
|
44
|
+
export * from './lib/plugins/core-plugins';
|
|
45
|
+
export * from './lib/plugins/plugin-providers';
|
|
46
|
+
export * from './lib/plugins/plugin-context';
|
|
47
|
+
export * from './lib/plugins/section-definition';
|
|
48
|
+
export * from './lib/theme/theme.service';
|
|
49
|
+
export * from './lib/ui/ui-tabs.component';
|
|
50
|
+
export * from './lib/ui/ui-accordion.component';
|
|
51
|
+
export * from './lib/ui/ui-field-wrapper.component';
|
|
52
|
+
export * from './lib/ui/ui-input.component';
|
|
53
|
+
export * from './lib/ui/ui-dimension.component';
|
|
54
|
+
export * from './lib/ui/ui-box-model.component';
|
|
55
|
+
export * from './lib/ui/ui-edge-box.component';
|
|
56
|
+
export * from './lib/ui/ui-color-swatch.component';
|
|
57
|
+
export * from './lib/ui/ui-range-number.component';
|
|
58
|
+
export * from './lib/ui/ui-select-icon.component';
|
|
59
|
+
export * from './lib/widgets/style-properties';
|
|
60
|
+
export * from './lib/widgets/style-sections';
|
|
61
|
+
export * from './lib/widgets/style-helpers';
|
|
62
|
+
export * from './lib/data/data-catalog';
|
|
63
|
+
export * from './lib/data/data-provider';
|
|
64
|
+
export * from './lib/data/in-memory-data-catalog.service';
|
|
65
|
+
export * from './lib/form-designer/global-data-manager.component';
|
|
66
|
+
export * from './lib/data/file-upload-client';
|
|
67
|
+
export * from './lib/data/data-source-client';
|
|
68
|
+
export * from './lib/data/http-data-source-client';
|
|
69
|
+
export * from './lib/data/data-source-parsers';
|
|
70
|
+
export * from './lib/data/external-data-source';
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Tailwind CSS Preset for ngx-form-designer
|
|
2
|
+
// This file can be used by consumers to inherit the library's design tokens.
|
|
3
|
+
|
|
4
|
+
/** @type {import('tailwindcss').Config} */
|
|
5
|
+
module.exports = {
|
|
6
|
+
theme: {
|
|
7
|
+
extend: {
|
|
8
|
+
colors: {
|
|
9
|
+
accent: {
|
|
10
|
+
50: '#eff6ff',
|
|
11
|
+
100: '#dbeafe',
|
|
12
|
+
200: '#bfdbfe',
|
|
13
|
+
500: '#2563eb',
|
|
14
|
+
600: '#1d4ed8',
|
|
15
|
+
700: '#1e40af'
|
|
16
|
+
},
|
|
17
|
+
ink: {
|
|
18
|
+
900: '#0f172a',
|
|
19
|
+
700: '#1f2937',
|
|
20
|
+
600: '#374151',
|
|
21
|
+
500: '#4b5563',
|
|
22
|
+
400: '#6b7280'
|
|
23
|
+
},
|
|
24
|
+
slate: {
|
|
25
|
+
50: '#f8fafc',
|
|
26
|
+
100: '#f1f5f9',
|
|
27
|
+
200: '#e2e8f0',
|
|
28
|
+
300: '#cbd5e1'
|
|
29
|
+
},
|
|
30
|
+
// Light theme tokens (Webflow-style inspector)
|
|
31
|
+
'panel-dark': '#ffffff',
|
|
32
|
+
'input-dark': '#f9fafb',
|
|
33
|
+
'border-dark': '#e5e7eb',
|
|
34
|
+
'text-secondary-dark': '#6b7280',
|
|
35
|
+
'highlight-orange': '#c46c35',
|
|
36
|
+
'primary-blue': '#0073e6'
|
|
37
|
+
},
|
|
38
|
+
borderRadius: {
|
|
39
|
+
'md': '10px',
|
|
40
|
+
'lg': '12px'
|
|
41
|
+
},
|
|
42
|
+
boxShadow: {
|
|
43
|
+
'card': '0 1px 2px rgba(15, 23, 42, 0.05)',
|
|
44
|
+
'popover': '0 10px 40px rgba(15, 23, 42, 0.12)'
|
|
45
|
+
},
|
|
46
|
+
fontFamily: {
|
|
47
|
+
sans: ['Inter', 'Segoe UI', 'system-ui', 'sans-serif']
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
}
|