@superdoc-dev/template-builder 0.1.0 → 0.2.0-next.12
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/LICENSE +661 -0
- package/README.md +80 -30
- package/dist/defaults/FieldList.d.ts.map +1 -1
- package/dist/defaults/FieldMenu.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -22
- package/dist/index.mjs +885 -885
- package/dist/types.d.ts +51 -13
- package/dist/types.d.ts.map +1 -1
- package/package.json +28 -22
package/dist/types.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
+
import { SuperDoc } from 'superdoc';
|
|
1
2
|
export interface FieldDefinition {
|
|
2
3
|
id: string;
|
|
3
4
|
label: string;
|
|
4
|
-
category?: string;
|
|
5
5
|
defaultValue?: string;
|
|
6
6
|
metadata?: Record<string, any>;
|
|
7
|
+
mode?: 'inline' | 'block';
|
|
8
|
+
group?: string;
|
|
7
9
|
}
|
|
8
10
|
export interface TemplateField {
|
|
9
|
-
id: string;
|
|
11
|
+
id: string | number;
|
|
10
12
|
alias: string;
|
|
11
13
|
tag?: string;
|
|
12
14
|
position?: number;
|
|
15
|
+
mode?: 'inline' | 'block';
|
|
16
|
+
group?: string;
|
|
13
17
|
}
|
|
14
18
|
export interface TriggerEvent {
|
|
15
19
|
position: {
|
|
@@ -19,6 +23,11 @@ export interface TriggerEvent {
|
|
|
19
23
|
bounds?: DOMRect;
|
|
20
24
|
cleanup: () => void;
|
|
21
25
|
}
|
|
26
|
+
export interface ExportEvent {
|
|
27
|
+
fields: TemplateField[];
|
|
28
|
+
blob?: Blob;
|
|
29
|
+
fileName: string;
|
|
30
|
+
}
|
|
22
31
|
export interface FieldMenuProps {
|
|
23
32
|
isVisible: boolean;
|
|
24
33
|
position?: DOMRect;
|
|
@@ -29,16 +38,19 @@ export interface FieldMenuProps {
|
|
|
29
38
|
onSelect: (field: FieldDefinition) => void;
|
|
30
39
|
onClose: () => void;
|
|
31
40
|
onCreateField?: (field: FieldDefinition) => void | Promise<FieldDefinition | void>;
|
|
41
|
+
existingFields?: TemplateField[];
|
|
42
|
+
onSelectExisting?: (field: TemplateField) => void;
|
|
32
43
|
}
|
|
33
44
|
export interface FieldListProps {
|
|
34
45
|
fields: TemplateField[];
|
|
35
46
|
onSelect: (field: TemplateField) => void;
|
|
36
|
-
onDelete: (fieldId: string) => void;
|
|
37
|
-
|
|
47
|
+
onDelete: (fieldId: string | number) => void;
|
|
48
|
+
onUpdate?: (field: TemplateField) => void;
|
|
49
|
+
selectedFieldId?: string | number;
|
|
38
50
|
}
|
|
39
51
|
export interface DocumentConfig {
|
|
40
52
|
source?: string | File | Blob;
|
|
41
|
-
mode?:
|
|
53
|
+
mode?: 'editing' | 'viewing';
|
|
42
54
|
}
|
|
43
55
|
export interface FieldsConfig {
|
|
44
56
|
available?: FieldDefinition[];
|
|
@@ -51,7 +63,7 @@ export interface MenuConfig {
|
|
|
51
63
|
}
|
|
52
64
|
export interface ListConfig {
|
|
53
65
|
component?: React.ComponentType<FieldListProps>;
|
|
54
|
-
position?:
|
|
66
|
+
position?: 'left' | 'right';
|
|
55
67
|
}
|
|
56
68
|
export interface ToolbarConfig {
|
|
57
69
|
selector?: string;
|
|
@@ -64,6 +76,23 @@ export interface ToolbarConfig {
|
|
|
64
76
|
texts?: Record<string, string>;
|
|
65
77
|
icons?: Record<string, any>;
|
|
66
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Configuration options for exporting templates
|
|
81
|
+
*/
|
|
82
|
+
export interface ExportConfig {
|
|
83
|
+
/**
|
|
84
|
+
* The name of the exported file (without extension)
|
|
85
|
+
* @default "document"
|
|
86
|
+
*/
|
|
87
|
+
fileName?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Whether to trigger an automatic download in the browser
|
|
90
|
+
* - true: Automatically downloads the file
|
|
91
|
+
* - false: Returns the Blob data for manual handling (e.g., saving to database)
|
|
92
|
+
* @default true
|
|
93
|
+
*/
|
|
94
|
+
triggerDownload?: boolean;
|
|
95
|
+
}
|
|
67
96
|
export interface SuperDocTemplateBuilderProps {
|
|
68
97
|
document?: DocumentConfig;
|
|
69
98
|
fields?: FieldsConfig;
|
|
@@ -74,10 +103,11 @@ export interface SuperDocTemplateBuilderProps {
|
|
|
74
103
|
onTrigger?: (event: TriggerEvent) => void;
|
|
75
104
|
onFieldInsert?: (field: TemplateField) => void;
|
|
76
105
|
onFieldUpdate?: (field: TemplateField) => void;
|
|
77
|
-
onFieldDelete?: (fieldId: string) => void;
|
|
106
|
+
onFieldDelete?: (fieldId: string | number) => void;
|
|
78
107
|
onFieldsChange?: (fields: TemplateField[]) => void;
|
|
79
108
|
onFieldSelect?: (field: TemplateField | null) => void;
|
|
80
109
|
onFieldCreate?: (field: FieldDefinition) => void | Promise<FieldDefinition | void>;
|
|
110
|
+
onExport?: (event: ExportEvent) => void;
|
|
81
111
|
className?: string;
|
|
82
112
|
style?: React.CSSProperties;
|
|
83
113
|
documentHeight?: string;
|
|
@@ -89,14 +119,22 @@ export interface SuperDocTemplateBuilderHandle {
|
|
|
89
119
|
insertBlockField: (field: Partial<FieldDefinition> & {
|
|
90
120
|
alias: string;
|
|
91
121
|
}) => boolean;
|
|
92
|
-
updateField: (id: string, updates: Partial<TemplateField>) => boolean;
|
|
93
|
-
deleteField: (id: string) => boolean;
|
|
94
|
-
selectField: (id: string) => void;
|
|
122
|
+
updateField: (id: string | number, updates: Partial<TemplateField>) => boolean;
|
|
123
|
+
deleteField: (id: string | number) => boolean;
|
|
124
|
+
selectField: (id: string | number) => void;
|
|
95
125
|
nextField: () => void;
|
|
96
126
|
previousField: () => void;
|
|
97
127
|
getFields: () => TemplateField[];
|
|
98
|
-
exportTemplate: (
|
|
99
|
-
|
|
100
|
-
|
|
128
|
+
exportTemplate: (config?: ExportConfig) => Promise<void | Blob>;
|
|
129
|
+
/**
|
|
130
|
+
* Returns the SuperDoc instance.
|
|
131
|
+
* Use this to access the full SuperDoc API, including:
|
|
132
|
+
* - The active editor: `getSuperDoc()?.activeEditor`
|
|
133
|
+
* - Editor commands: `getSuperDoc()?.activeEditor?.commands.*`
|
|
134
|
+
* - Editor state and helpers: `getSuperDoc()?.activeEditor?.state`
|
|
135
|
+
*
|
|
136
|
+
* Note: Full TypeScript types for SuperDoc will be available in a future update.
|
|
137
|
+
*/
|
|
138
|
+
getSuperDoc: () => SuperDoc | null;
|
|
101
139
|
}
|
|
102
140
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdoc-dev/template-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-next.12",
|
|
4
4
|
"description": "React template builder component for SuperDoc",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,13 +21,15 @@
|
|
|
21
21
|
"dev": "vite build --watch",
|
|
22
22
|
"build": "tsc && vite build",
|
|
23
23
|
"type-check": "tsc --noEmit",
|
|
24
|
-
"lint": "eslint src
|
|
25
|
-
"
|
|
24
|
+
"lint": "eslint src demo",
|
|
25
|
+
"lint:fix": "eslint src demo --fix",
|
|
26
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\" \"demo/**/*.{ts,tsx}\"",
|
|
27
|
+
"format:check": "prettier --check \"src/**/*.{ts,tsx}\" \"demo/**/*.{ts,tsx}\"",
|
|
26
28
|
"test": "vitest",
|
|
27
29
|
"test:watch": "vitest --watch",
|
|
28
30
|
"prepare": "husky",
|
|
29
31
|
"release": "semantic-release",
|
|
30
|
-
"check:all": "pnpm run
|
|
32
|
+
"check:all": "pnpm run format:check && pnpm run lint && pnpm run type-check && pnpm run build"
|
|
31
33
|
},
|
|
32
34
|
"repository": {
|
|
33
35
|
"type": "git",
|
|
@@ -44,50 +46,54 @@
|
|
|
44
46
|
"react"
|
|
45
47
|
],
|
|
46
48
|
"author": "SuperDoc Team",
|
|
47
|
-
"license": "
|
|
49
|
+
"license": "AGPLv3",
|
|
48
50
|
"bugs": {
|
|
49
51
|
"url": "https://github.com/superdoc-dev/template-builder/issues"
|
|
50
52
|
},
|
|
51
53
|
"homepage": "https://github.com/superdoc-dev/template-builder#readme",
|
|
52
54
|
"peerDependencies": {
|
|
53
55
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
54
|
-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
55
|
-
|
|
56
|
-
"dependencies": {
|
|
57
|
-
"superdoc": "^0.22.0"
|
|
56
|
+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
57
|
+
"superdoc": "^0.35.3"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@commitlint/cli": "^20.1.0",
|
|
61
61
|
"@commitlint/config-conventional": "^20.0.0",
|
|
62
|
-
"@eslint/js": "^9.
|
|
63
|
-
"@semantic-release/changelog": "^6.0.3",
|
|
62
|
+
"@eslint/js": "^9.39.1",
|
|
64
63
|
"@semantic-release/git": "^10.0.1",
|
|
65
64
|
"@testing-library/jest-dom": "^6.9.1",
|
|
66
65
|
"@testing-library/react": "^16.3.0",
|
|
67
66
|
"@testing-library/user-event": "^14.6.1",
|
|
68
|
-
"@types/node": "^24.
|
|
69
|
-
"@types/react": "^19.2.
|
|
70
|
-
"@types/react-dom": "^19.2.
|
|
71
|
-
"@vitejs/plugin-react": "^5.
|
|
72
|
-
"eslint": "^9.
|
|
67
|
+
"@types/node": "^24.10.1",
|
|
68
|
+
"@types/react": "^19.2.6",
|
|
69
|
+
"@types/react-dom": "^19.2.3",
|
|
70
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
71
|
+
"eslint": "^9.39.1",
|
|
73
72
|
"eslint-plugin-react": "^7.37.5",
|
|
74
|
-
"eslint-plugin-react-hooks": "^7.0.
|
|
73
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
75
74
|
"husky": "^9.1.7",
|
|
76
|
-
"jsdom": "^27.
|
|
75
|
+
"jsdom": "^27.2.0",
|
|
76
|
+
"lint-staged": "^16.2.7",
|
|
77
77
|
"prettier": "^3.6.2",
|
|
78
78
|
"react": "^19.2.0",
|
|
79
79
|
"react-dom": "^19.2.0",
|
|
80
|
-
"semantic-release": "^
|
|
80
|
+
"semantic-release": "^25.0.2",
|
|
81
81
|
"typescript": "^5.9.3",
|
|
82
|
-
"typescript-eslint": "^8.
|
|
83
|
-
"vite": "^7.
|
|
82
|
+
"typescript-eslint": "^8.47.0",
|
|
83
|
+
"vite": "^7.2.4",
|
|
84
84
|
"vite-plugin-dts": "^4.5.4",
|
|
85
|
-
"vitest": "^
|
|
85
|
+
"vitest": "^4.0.13"
|
|
86
86
|
},
|
|
87
87
|
"publishConfig": {
|
|
88
88
|
"access": "public"
|
|
89
89
|
},
|
|
90
90
|
"engines": {
|
|
91
91
|
"node": ">=18"
|
|
92
|
+
},
|
|
93
|
+
"lint-staged": {
|
|
94
|
+
"*.{ts,tsx}": [
|
|
95
|
+
"prettier --write",
|
|
96
|
+
"eslint --fix"
|
|
97
|
+
]
|
|
92
98
|
}
|
|
93
99
|
}
|