@superdoc-dev/template-builder 0.1.0-next.1

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.
@@ -0,0 +1,102 @@
1
+ export interface FieldDefinition {
2
+ id: string;
3
+ label: string;
4
+ category?: string;
5
+ defaultValue?: string;
6
+ metadata?: Record<string, any>;
7
+ }
8
+ export interface TemplateField {
9
+ id: string;
10
+ alias: string;
11
+ tag?: string;
12
+ position?: number;
13
+ }
14
+ export interface TriggerEvent {
15
+ position: {
16
+ from: number;
17
+ to: number;
18
+ };
19
+ bounds?: DOMRect;
20
+ cleanup: () => void;
21
+ }
22
+ export interface FieldMenuProps {
23
+ isVisible: boolean;
24
+ position?: DOMRect;
25
+ availableFields: FieldDefinition[];
26
+ filteredFields?: FieldDefinition[];
27
+ filterQuery?: string;
28
+ allowCreate?: boolean;
29
+ onSelect: (field: FieldDefinition) => void;
30
+ onClose: () => void;
31
+ onCreateField?: (field: FieldDefinition) => void | Promise<FieldDefinition | void>;
32
+ }
33
+ export interface FieldListProps {
34
+ fields: TemplateField[];
35
+ onSelect: (field: TemplateField) => void;
36
+ onDelete: (fieldId: string) => void;
37
+ selectedFieldId?: string;
38
+ }
39
+ export interface DocumentConfig {
40
+ source?: string | File | Blob;
41
+ mode?: "editing" | "viewing";
42
+ }
43
+ export interface FieldsConfig {
44
+ available?: FieldDefinition[];
45
+ initial?: TemplateField[];
46
+ allowCreate?: boolean;
47
+ }
48
+ export interface MenuConfig {
49
+ component?: React.ComponentType<FieldMenuProps>;
50
+ trigger?: string;
51
+ }
52
+ export interface ListConfig {
53
+ component?: React.ComponentType<FieldListProps>;
54
+ position?: "left" | "right";
55
+ }
56
+ export interface ToolbarConfig {
57
+ selector?: string;
58
+ toolbarGroups?: string[];
59
+ groups?: Record<string, string[]>;
60
+ fonts?: string[] | null;
61
+ hideButtons?: boolean;
62
+ responsiveToContainer?: boolean;
63
+ excludeItems?: string[];
64
+ texts?: Record<string, string>;
65
+ icons?: Record<string, any>;
66
+ }
67
+ export interface SuperDocTemplateBuilderProps {
68
+ document?: DocumentConfig;
69
+ fields?: FieldsConfig;
70
+ menu?: MenuConfig;
71
+ list?: ListConfig;
72
+ toolbar?: boolean | string | ToolbarConfig;
73
+ onReady?: () => void;
74
+ onTrigger?: (event: TriggerEvent) => void;
75
+ onFieldInsert?: (field: TemplateField) => void;
76
+ onFieldUpdate?: (field: TemplateField) => void;
77
+ onFieldDelete?: (fieldId: string) => void;
78
+ onFieldsChange?: (fields: TemplateField[]) => void;
79
+ onFieldSelect?: (field: TemplateField | null) => void;
80
+ onFieldCreate?: (field: FieldDefinition) => void | Promise<FieldDefinition | void>;
81
+ className?: string;
82
+ style?: React.CSSProperties;
83
+ documentHeight?: string;
84
+ }
85
+ export interface SuperDocTemplateBuilderHandle {
86
+ insertField: (field: Partial<FieldDefinition> & {
87
+ alias: string;
88
+ }) => boolean;
89
+ insertBlockField: (field: Partial<FieldDefinition> & {
90
+ alias: string;
91
+ }) => boolean;
92
+ updateField: (id: string, updates: Partial<TemplateField>) => boolean;
93
+ deleteField: (id: string) => boolean;
94
+ selectField: (id: string) => void;
95
+ nextField: () => void;
96
+ previousField: () => void;
97
+ getFields: () => TemplateField[];
98
+ exportTemplate: (options?: {
99
+ fileName?: string;
100
+ }) => Promise<void>;
101
+ }
102
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,93 @@
1
+ {
2
+ "name": "@superdoc-dev/template-builder",
3
+ "version": "0.1.0-next.1",
4
+ "description": "React template builder component for SuperDoc",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.mjs",
13
+ "require": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md"
19
+ ],
20
+ "scripts": {
21
+ "dev": "vite build --watch",
22
+ "build": "tsc && vite build",
23
+ "type-check": "tsc --noEmit",
24
+ "lint": "eslint src --ext .ts,.tsx",
25
+ "format": "prettier --write \"src/**/*.{ts,tsx}\"",
26
+ "test": "vitest",
27
+ "test:watch": "vitest --watch",
28
+ "prepare": "husky",
29
+ "release": "semantic-release",
30
+ "check:all": "pnpm run type-check && pnpm run lint && pnpm run format"
31
+ },
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/superdoc-dev/template-builder.git"
35
+ },
36
+ "keywords": [
37
+ "superdoc",
38
+ "template",
39
+ "template-builder",
40
+ "document",
41
+ "fields",
42
+ "sdt",
43
+ "docx",
44
+ "react"
45
+ ],
46
+ "author": "SuperDoc Team",
47
+ "license": "MIT",
48
+ "bugs": {
49
+ "url": "https://github.com/superdoc-dev/template-builder/issues"
50
+ },
51
+ "homepage": "https://github.com/superdoc-dev/template-builder#readme",
52
+ "peerDependencies": {
53
+ "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"
58
+ },
59
+ "devDependencies": {
60
+ "@commitlint/cli": "^20.1.0",
61
+ "@commitlint/config-conventional": "^20.0.0",
62
+ "@eslint/js": "^9.37.0",
63
+ "@semantic-release/changelog": "^6.0.3",
64
+ "@semantic-release/git": "^10.0.1",
65
+ "@testing-library/jest-dom": "^6.9.1",
66
+ "@testing-library/react": "^16.3.0",
67
+ "@testing-library/user-event": "^14.6.1",
68
+ "@types/node": "^24.7.0",
69
+ "@types/react": "^19.2.2",
70
+ "@types/react-dom": "^19.2.1",
71
+ "@vitejs/plugin-react": "^5.0.4",
72
+ "eslint": "^9.37.0",
73
+ "eslint-plugin-react": "^7.37.5",
74
+ "eslint-plugin-react-hooks": "^7.0.0",
75
+ "husky": "^9.1.7",
76
+ "jsdom": "^27.0.0",
77
+ "prettier": "^3.6.2",
78
+ "react": "^19.2.0",
79
+ "react-dom": "^19.2.0",
80
+ "semantic-release": "^24.2.9",
81
+ "typescript": "^5.9.3",
82
+ "typescript-eslint": "^8.46.0",
83
+ "vite": "^7.1.9",
84
+ "vite-plugin-dts": "^4.5.4",
85
+ "vitest": "^3.2.4"
86
+ },
87
+ "publishConfig": {
88
+ "access": "public"
89
+ },
90
+ "engines": {
91
+ "node": ">=18"
92
+ }
93
+ }