customforge 0.1.0-alpha.2 → 0.1.0

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.
Files changed (47) hide show
  1. package/CHANGELOG.md +85 -56
  2. package/LICENSES/NunitoSans-OFL.txt +93 -93
  3. package/LICENSES/plain-mug-CC-BY-4.0.txt +11 -0
  4. package/README.md +592 -461
  5. package/README.zh-CN.md +587 -459
  6. package/dist/{ProductCustomizer-rMRyWe7L.js → ProductCustomizer-4ytA68eg.js} +869 -143
  7. package/dist/ProductCustomizer-4ytA68eg.js.map +1 -0
  8. package/dist/bridge/TextureBridge.d.ts +1 -1
  9. package/dist/core/api.d.ts +94 -0
  10. package/dist/core/api.d.ts.map +1 -0
  11. package/dist/core/config.d.ts +3 -12
  12. package/dist/core/config.d.ts.map +1 -1
  13. package/dist/core/design.d.ts.map +1 -1
  14. package/dist/core/types.d.ts +183 -5
  15. package/dist/core/types.d.ts.map +1 -1
  16. package/dist/core/uv.d.ts +8 -0
  17. package/dist/core/uv.d.ts.map +1 -0
  18. package/dist/cup_decal_small_margins.glb +0 -0
  19. package/dist/customizer/ProductCustomizer.d.ts +98 -9
  20. package/dist/customizer/ProductCustomizer.d.ts.map +1 -1
  21. package/dist/editor/DesignEditor.d.ts +118 -10
  22. package/dist/editor/DesignEditor.d.ts.map +1 -1
  23. package/dist/editor/uvBounds.d.ts +15 -0
  24. package/dist/editor/uvBounds.d.ts.map +1 -0
  25. package/dist/index.d.ts +4 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/style.css +2120 -1327
  30. package/dist/viewer/ProductViewer.d.ts +37 -6
  31. package/dist/viewer/ProductViewer.d.ts.map +1 -1
  32. package/dist/viewer/uvLayout.d.ts +11 -0
  33. package/dist/viewer/uvLayout.d.ts.map +1 -0
  34. package/dist/workbench/CustomForgeWorkbench.d.ts +85 -8
  35. package/dist/workbench/CustomForgeWorkbench.d.ts.map +1 -1
  36. package/dist/workbench/config.d.ts +42 -1
  37. package/dist/workbench/config.d.ts.map +1 -1
  38. package/dist/workbench/icons.d.ts.map +1 -1
  39. package/dist/workbench/index.d.ts +3 -3
  40. package/dist/workbench/index.d.ts.map +1 -1
  41. package/dist/workbench/template.d.ts.map +1 -1
  42. package/dist/workbench/types.d.ts +261 -13
  43. package/dist/workbench/types.d.ts.map +1 -1
  44. package/dist/workbench.js +1248 -116
  45. package/dist/workbench.js.map +1 -1
  46. package/package.json +27 -20
  47. package/dist/ProductCustomizer-rMRyWe7L.js.map +0 -1
@@ -1,5 +1,8 @@
1
1
  import { type CanvasTexture } from 'three';
2
2
  import type { NormalizedProductConfiguration } from '../core/config';
3
+ import type { ProductViewState, ViewerAppearance } from '../core/types';
4
+ import type { UvLayout } from '../core/uv';
5
+ type ViewChangeListener = (state: ProductViewState) => void;
3
6
  /**
4
7
  * 基于 Three.js 的三维产品查看器
5
8
  *
@@ -18,17 +21,22 @@ export declare class ProductViewer {
18
21
  private surface?;
19
22
  private texture?;
20
23
  private animationFrame;
24
+ private readonly viewChangeListeners;
25
+ private readonly handleControlsChange;
21
26
  /**
22
27
  * @param host 三维查看器挂载容器
28
+ * @param ariaLabel 三维产品画布的无障碍名称
29
+ * @param appearance WebGL 画布清屏颜色等外观配置
23
30
  */
24
- constructor(host: HTMLElement);
31
+ constructor(host: HTMLElement, ariaLabel?: string, appearance?: ViewerAppearance);
25
32
  /**
26
- * 加载远程模型或创建内置演示模型
33
+ * 加载远程模型或随包提供的默认 GLB 模型
27
34
  *
28
35
  * @param product 已完成默认值补全的产品配置
29
- * @throws 模型加载失败或找不到目标 Mesh 时抛出错误
36
+ * @returns 目标 Mesh 第一个材质槽使用的 UV 三角形布局
37
+ * @throws 模型加载失败、找不到目标 Mesh 或目标 Mesh 缺少有效 UV 时抛出错误
30
38
  */
31
- loadProduct(product: NormalizedProductConfiguration): Promise<void>;
39
+ loadProduct(product: NormalizedProductConfiguration): Promise<UvLayout>;
32
40
  /**
33
41
  * 保存并绑定二维编辑器生成的实时纹理
34
42
  *
@@ -39,10 +47,29 @@ export declare class ProductViewer {
39
47
  setTexture(texture: CanvasTexture): void;
40
48
  /** 根据当前模型包围盒恢复默认相机位置 */
41
49
  resetView(): void;
50
+ /** 返回当前相机位置和轨道控制目标点的独立快照 */
51
+ getViewState(): ProductViewState;
52
+ /**
53
+ * 恢复相机位置和轨道控制目标点
54
+ *
55
+ * @param state 要恢复的三维观察视角
56
+ * @returns 应用后的独立视角快照
57
+ * @throws 坐标不是有限数值或相机与目标点重合时抛出错误
58
+ */
59
+ setViewState(state: ProductViewState): ProductViewState;
60
+ /**
61
+ * 订阅三维视角变化
62
+ *
63
+ * 用户旋转、缩放、平移以及 API 恢复视角时都会触发
64
+ *
65
+ * @param listener 接收独立视角快照的监听函数
66
+ * @returns 用于取消本次订阅的函数
67
+ */
68
+ onViewChange(listener: ViewChangeListener): () => void;
42
69
  /** 释放动画帧、相机控制、模型材质和 WebGLRenderer */
43
70
  destroy(): void;
44
- private addEnvironment;
45
- private createDemoProduct;
71
+ private addStudioLighting;
72
+ private prepareBundledProduct;
46
73
  /**
47
74
  * 按名称查找接收实时纹理的 Mesh
48
75
  *
@@ -56,9 +83,13 @@ export declare class ProductViewer {
56
83
  */
57
84
  private attachTexture;
58
85
  private fitCamera;
86
+ private defaultCameraDirection;
87
+ private vectorToValue;
88
+ private validateViewState;
59
89
  private removeProduct;
60
90
  private resize;
61
91
  private render;
62
92
  private markRenderState;
63
93
  }
94
+ export {};
64
95
  //# sourceMappingURL=ProductViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductViewer.d.ts","sourceRoot":"","sources":["../../src/viewer/ProductViewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAoBL,KAAK,aAAa,EAEnB,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AAEpE;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAU;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAM;IACtB,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,cAAc,CAAI;IAE1B;;OAEG;IACH,YAAY,IAAI,EAAE,WAAW,EA6B5B;IAED;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBxE;IAED;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAKvC;IAED,wBAAwB;IACxB,SAAS,IAAI,IAAI,CAIhB;IAED,qCAAqC;IACrC,OAAO,IAAI,IAAI,CAOd;IAED,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,iBAAiB;IA4CzB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,MAAM,CAKb;IAED,OAAO,CAAC,eAAe;CAqCxB"}
1
+ {"version":3,"file":"ProductViewer.d.ts","sourceRoot":"","sources":["../../src/viewer/ProductViewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,aAAa,EAEnB,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAW1C,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;AAE3D;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAU;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAM;IACtB,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgC;IACpE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGpC;IAED;;;;OAIG;IACH,YACE,IAAI,EAAE,WAAW,EACjB,SAAS,SAAmC,EAC5C,UAAU,GAAE,gBAAqB,EAgClC;IAED;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0B5E;IAED;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAKvC;IAED,wBAAwB;IACxB,SAAS,IAAI,IAAI,CAIhB;IAED,4BAA4B;IAC5B,YAAY,IAAI,gBAAgB,CAK/B;IAED;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAWtD;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAGrD;IAED,qCAAqC;IACrC,OAAO,IAAI,IAAI,CASd;IAED,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,qBAAqB;IA8B7B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,SAAS;IAmDjB,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,MAAM,CAKb;IAED,OAAO,CAAC,eAAe;CAqCxB"}
@@ -0,0 +1,11 @@
1
+ import { Mesh } from 'three';
2
+ import type { UvLayout } from '../core/uv';
3
+ /**
4
+ * 提取目标 Mesh 第一个材质槽使用的 UV 三角形
5
+ *
6
+ * @param mesh 接收实时纹理的目标 Mesh
7
+ * @returns 保持模型原始 V 方向的 UV 三角形和外边界布局
8
+ * @throws Mesh 缺少 UV、面数据无效或第一个材质槽没有三角形时抛出错误
9
+ */
10
+ export declare function extractUvLayout(mesh: Mesh): UvLayout;
11
+ //# sourceMappingURL=uvLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uvLayout.d.ts","sourceRoot":"","sources":["../../src/viewer/uvLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA0D1C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAqDpD"}
@@ -1,5 +1,5 @@
1
- import { ProductCustomizer } from '../customizer/ProductCustomizer';
2
- import type { WorkbenchFeatureName, WorkbenchLayoutName, WorkbenchOptions, WorkbenchStatusMode } from './types';
1
+ import type { ProductCustomizerApi } from '../core/api';
2
+ import type { CustomForgeWorkbenchApi, WorkbenchExtensionButton, WorkbenchFeatureName, WorkbenchFeatures, WorkbenchLayout, WorkbenchLayoutName, WorkbenchOptions, WorkbenchStatusMode, WorkbenchTheme } from './types';
3
3
  /**
4
4
  * 提供可配置默认界面的产品定制工作台
5
5
  *
@@ -7,9 +7,9 @@ import type { WorkbenchFeatureName, WorkbenchLayoutName, WorkbenchOptions, Workb
7
7
  * 底层 ProductCustomizer 仍通过 customizer 属性提供完整公共 API
8
8
  * 不再使用实例时必须调用 destroy
9
9
  */
10
- export declare class CustomForgeWorkbench {
10
+ export declare class CustomForgeWorkbench implements CustomForgeWorkbenchApi {
11
11
  /** Workbench 使用的底层无界面定制器 */
12
- readonly customizer: ProductCustomizer;
12
+ readonly customizer: ProductCustomizerApi;
13
13
  /** Workbench 根元素 */
14
14
  readonly element: HTMLElement;
15
15
  private readonly host;
@@ -18,32 +18,51 @@ export declare class CustomForgeWorkbench {
18
18
  private readonly unsubscribe;
19
19
  private readonly features;
20
20
  private readonly layout;
21
+ private theme;
21
22
  private readonly labels;
22
23
  private readonly icons;
23
24
  private readonly textPresets;
25
+ private readonly fontFamilies;
24
26
  private readonly backgrounds;
25
27
  private readonly elements;
28
+ private readonly extensions;
29
+ private readonly pendingExtensions;
30
+ private readonly formatError;
26
31
  private readonly layerList;
27
32
  private readonly deleteButton;
28
33
  private readonly undoButton;
29
34
  private readonly redoButton;
35
+ private readonly layersToggle;
30
36
  private readonly statusLabel;
31
- private readonly objectCountLabel;
32
37
  private readonly imageInput;
33
38
  private readonly designInput;
34
39
  private readonly loadDesignButton;
35
40
  private readonly textDialog;
36
41
  private readonly textForm;
42
+ private readonly textToolbar;
43
+ private readonly imageToolbar;
44
+ private readonly textOptions;
45
+ private readonly textFontFamily;
46
+ private readonly textFontSize;
47
+ private readonly textColor;
48
+ private readonly textBackgroundColor;
49
+ private readonly textLineHeight;
50
+ private readonly textLetterSpacing;
37
51
  private readonly imageDialog;
38
52
  private readonly imageForm;
39
53
  private readonly imageSubmitButton;
40
54
  private readonly productDialog;
41
55
  private readonly remoteForm;
42
56
  private readonly submitProductButton;
57
+ private readonly modelFileInput;
58
+ private readonly modelUrlInput;
43
59
  private selectedObjectIds;
44
60
  private selectedTextPresetId?;
45
61
  private selectedImage?;
46
62
  private activeImageTab;
63
+ private productSourceMode;
64
+ private activeProductObjectUrl?;
65
+ private layersExpanded;
47
66
  private layerSignature;
48
67
  private draggedObjectId?;
49
68
  private destroyed;
@@ -56,6 +75,8 @@ export declare class CustomForgeWorkbench {
56
75
  * @throws 挂载容器无效或产品初始化失败时清理已创建界面并继续抛出错误
57
76
  */
58
77
  static create(options: WorkbenchOptions): Promise<CustomForgeWorkbench>;
78
+ /** 返回当前默认功能控件开关的独立快照 */
79
+ getFeatures(): WorkbenchFeatures;
59
80
  /**
60
81
  * 在运行时显示或隐藏某项内置功能控件
61
82
  *
@@ -65,6 +86,8 @@ export declare class CustomForgeWorkbench {
65
86
  * @param enabled 是否显示并启用对应控件
66
87
  */
67
88
  setFeature(feature: WorkbenchFeatureName, enabled: boolean): void;
89
+ /** 返回当前默认布局区域开关的独立快照 */
90
+ getLayout(): WorkbenchLayout;
68
91
  /**
69
92
  * 在运行时显示或隐藏 Workbench 布局区域
70
93
  *
@@ -72,8 +95,31 @@ export declare class CustomForgeWorkbench {
72
95
  * @param visible 是否显示该区域
73
96
  */
74
97
  setLayout(section: WorkbenchLayoutName, visible: boolean): void;
98
+ /** 返回当前完整主题的独立快照 */
99
+ getTheme(): WorkbenchTheme;
75
100
  /**
76
- * 更新底部状态栏内容
101
+ * 合并并立即应用当前 Workbench 实例的主题变量
102
+ *
103
+ * @param theme 要覆盖的主题字段
104
+ * @returns 合并后的完整主题独立快照
105
+ */
106
+ setTheme(theme: Partial<WorkbenchTheme>): WorkbenchTheme;
107
+ /** 返回当前已注册扩展按钮的独立配置快照 */
108
+ getExtensions(): WorkbenchExtensionButton[];
109
+ /**
110
+ * 注册扩展按钮并立即渲染到声明位置
111
+ *
112
+ * @param extension 扩展按钮配置
113
+ * @returns 仅在该注册仍为当前同 ID 项时将其移除的清理函数
114
+ * @throws ID、位置、文案、图标或回调配置无效以及 ID 重复时抛出错误
115
+ */
116
+ registerExtension(extension: WorkbenchExtensionButton): () => void;
117
+ /** 按稳定 ID 移除扩展按钮并返回是否存在该注册 */
118
+ removeExtension(id: string): boolean;
119
+ /** 使用最新核心状态重新计算所有扩展按钮 */
120
+ refreshExtensions(): void;
121
+ /**
122
+ * 更新三维预览区域内的运行状态
77
123
  *
78
124
  * @param message 状态文字
79
125
  * @param mode 状态样式,默认为 ready
@@ -85,18 +131,44 @@ export declare class CustomForgeWorkbench {
85
131
  private handleRootClick;
86
132
  private handleHistoryShortcut;
87
133
  private handleImageTabShortcut;
134
+ private extensionSlot;
135
+ private extensionsAt;
136
+ private renderExtensionSlots;
137
+ private renderRegisteredExtensions;
138
+ private createExtensionButton;
139
+ private resolveExtensionPredicate;
140
+ private extensionExecutionKey;
141
+ private updateLayerActionWidths;
142
+ private runExtension;
88
143
  private action;
89
144
  private showDialog;
90
145
  private closeDialog;
91
146
  private clearDialogClose;
92
147
  private applyVisibility;
148
+ private updateRegionVisibility;
93
149
  private toolGroup;
94
150
  private updateObjectCount;
151
+ private toggleLayers;
95
152
  private updateHistoryButtons;
96
153
  private localizeStatus;
97
154
  private runHistory;
98
155
  private saveDesign;
99
- private exportTexture;
156
+ private renderTextFontOptions;
157
+ private ensureTextFontOption;
158
+ private selectedTextObjects;
159
+ private selectedImageObject;
160
+ private updateImageToolbar;
161
+ private setSelectedImageAsBackground;
162
+ private commonTextValue;
163
+ private updateTextToolbar;
164
+ private setNumberControl;
165
+ private setColorControl;
166
+ private renderTextColorPresets;
167
+ private updateTextColorPresetState;
168
+ private setPressedState;
169
+ private updateSelectedText;
170
+ private toggleSelectedTextStyle;
171
+ private toggleSelectedTextBackground;
100
172
  private renderLayers;
101
173
  private createLayerItem;
102
174
  private createLayerButton;
@@ -122,7 +194,12 @@ export declare class CustomForgeWorkbench {
122
194
  private resetImageSelection;
123
195
  private releaseImageSelection;
124
196
  private loadSelectedDesign;
197
+ private setProductSourceMode;
198
+ private updateSelectedProductFile;
199
+ private validateProductForm;
200
+ private setProductLoading;
201
+ private replaceActiveProductObjectUrl;
125
202
  private loadDemoProduct;
126
- private loadRemoteProduct;
203
+ private loadProductFromDialog;
127
204
  }
128
205
  //# sourceMappingURL=CustomForgeWorkbench.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomForgeWorkbench.d.ts","sourceRoot":"","sources":["../../src/workbench/CustomForgeWorkbench.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomForgeWorkbench.d.ts","sourceRoot":"","sources":["../../src/workbench/CustomForgeWorkbench.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { WorkbenchAsset, WorkbenchFeatures, WorkbenchIconConfiguration, WorkbenchLabels, WorkbenchLayout, WorkbenchOptions, WorkbenchTextPreset, WorkbenchTheme } from './types';
1
+ import type { WorkbenchAsset, WorkbenchExtensionButton, WorkbenchExtensionPredicate, WorkbenchExtensionVariant, WorkbenchFeatures, WorkbenchFontFamily, WorkbenchIconConfiguration, WorkbenchLabels, WorkbenchLayout, WorkbenchOptions, WorkbenchTextPreset, WorkbenchTheme } from './types';
2
2
  /** Workbench 内部使用的完整品牌配置 */
3
3
  export interface NormalizedWorkbenchBranding {
4
4
  /** 品牌 Logo 地址 */
@@ -18,6 +18,8 @@ export interface NormalizedWorkbenchBranding {
18
18
  }
19
19
  /** Workbench 内部使用的完整配置 */
20
20
  export interface NormalizedWorkbenchOptions {
21
+ /** 添加到 Workbench 根元素的 CSS 类名 */
22
+ classNames: string[];
21
23
  /** 二维编辑画布的逻辑宽度 */
22
24
  editorWidth: number;
23
25
  /** 二维编辑画布的逻辑高度 */
@@ -26,6 +28,8 @@ export interface NormalizedWorkbenchOptions {
26
28
  historyLimit: number;
27
29
  /** 初始化产品配置 */
28
30
  product: WorkbenchOptions['product'];
31
+ /** 二维编辑器与三维查看器外观配置 */
32
+ appearance: WorkbenchOptions['appearance'];
29
33
  /** 完整功能开关 */
30
34
  features: WorkbenchFeatures;
31
35
  /** 完整布局开关 */
@@ -40,11 +44,48 @@ export interface NormalizedWorkbenchOptions {
40
44
  icons: Required<WorkbenchIconConfiguration>;
41
45
  /** 可用文字排版预设 */
42
46
  textPresets: WorkbenchTextPreset[];
47
+ /** 字体选择器条目 */
48
+ fontFamilies: WorkbenchFontFamily[];
43
49
  /** 可用背景素材 */
44
50
  backgrounds: WorkbenchAsset[];
45
51
  /** 可用装饰元素 */
46
52
  elements: WorkbenchAsset[];
53
+ /** 完成校验和默认值补全的扩展按钮 */
54
+ extensions: NormalizedWorkbenchExtensionButton[];
55
+ /** 用户可见异常文案格式化函数 */
56
+ formatError: NonNullable<WorkbenchOptions['formatError']>;
47
57
  }
58
+ /** Workbench 内部使用的完整扩展按钮配置 */
59
+ export interface NormalizedWorkbenchExtensionButton extends Omit<WorkbenchExtensionButton, 'className' | 'iconUrl' | 'showLabel' | 'variant' | 'order' | 'visible' | 'disabled'> {
60
+ /** 清理空白后的可选图标地址 */
61
+ iconUrl?: string;
62
+ /** 是否在图标旁显示文案 */
63
+ showLabel: boolean;
64
+ /** 按钮视觉语义 */
65
+ variant: WorkbenchExtensionVariant;
66
+ /** 同一位置内的升序排列值 */
67
+ order: number;
68
+ /** 添加到按钮元素的宿主 CSS 类名 */
69
+ classNames: string[];
70
+ /** 固定或动态可见条件 */
71
+ visible: boolean | WorkbenchExtensionPredicate;
72
+ /** 固定或动态禁用条件 */
73
+ disabled: boolean | WorkbenchExtensionPredicate;
74
+ }
75
+ /**
76
+ * 校验并补全单个 Workbench 扩展按钮配置
77
+ *
78
+ * @param extension 外部扩展按钮配置
79
+ * @returns 可直接渲染的内部配置
80
+ */
81
+ export declare function normalizeWorkbenchExtension(extension: WorkbenchExtensionButton): NormalizedWorkbenchExtensionButton;
82
+ /**
83
+ * 校验 Workbench 扩展按钮集合并拒绝重复 ID
84
+ *
85
+ * @param extensions 外部扩展按钮集合
86
+ * @returns 保持声明顺序的完整内部配置
87
+ */
88
+ export declare function normalizeWorkbenchExtensions(extensions: readonly WorkbenchExtensionButton[]): NormalizedWorkbenchExtensionButton[];
48
89
  /**
49
90
  * 补全并校验 Workbench 默认配置
50
91
  *
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/workbench/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,iBAAiB,EACjB,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,4BAA4B;AAC5B,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAA;IAEf,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAA;IAEf,kBAAkB;IAClB,QAAQ,EAAE,OAAO,CAAA;IAEjB,WAAW;IACX,KAAK,EAAE,MAAM,CAAA;IAEb,eAAe;IACf,SAAS,EAAE,OAAO,CAAA;IAElB,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAA;IAEhB,gBAAgB;IAChB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,0BAA0B;AAC1B,MAAM,WAAW,0BAA0B;IACzC,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAA;IAEnB,kBAAkB;IAClB,YAAY,EAAE,MAAM,CAAA;IAEpB,kBAAkB;IAClB,YAAY,EAAE,MAAM,CAAA;IAEpB,cAAc;IACd,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAEpC,aAAa;IACb,QAAQ,EAAE,iBAAiB,CAAA;IAE3B,aAAa;IACb,MAAM,EAAE,eAAe,CAAA;IAEvB,aAAa;IACb,QAAQ,EAAE,2BAA2B,CAAA;IAErC,aAAa;IACb,MAAM,EAAE,eAAe,CAAA;IAEvB,aAAa;IACb,KAAK,EAAE,cAAc,CAAA;IAErB,aAAa;IACb,KAAK,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAA;IAE3C,eAAe;IACf,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAElC,aAAa;IACb,WAAW,EAAE,cAAc,EAAE,CAAA;IAE7B,aAAa;IACb,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC3B;AAyMD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,GACxB,0BAA0B,CAyB5B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/workbench/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/workbench/icons.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,SAAS,CAAA;AAEhB,gCAAgC;AAChC,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAClD,IAAI,CAkEN"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/workbench/icons.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,SAAS,CAAA;AAEhB,gCAAgC;AAChC,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAClD,IAAI,CA8EN"}
@@ -1,5 +1,5 @@
1
1
  import { CustomForgeWorkbench } from './CustomForgeWorkbench';
2
- import type { WorkbenchOptions } from './types';
2
+ import type { CustomForgeWorkbenchApi, WorkbenchOptions } from './types';
3
3
  /**
4
4
  * 创建带默认界面的产品定制工作台
5
5
  *
@@ -19,7 +19,7 @@ import type { WorkbenchOptions } from './types';
19
19
  * })
20
20
  * ```
21
21
  */
22
- export declare function createWorkbench(options: WorkbenchOptions): Promise<CustomForgeWorkbench>;
22
+ export declare function createWorkbench(options: WorkbenchOptions): Promise<CustomForgeWorkbenchApi>;
23
23
  export { CustomForgeWorkbench };
24
- export type { WorkbenchAsset, WorkbenchAssetLibrary, WorkbenchBranding, WorkbenchFeatureName, WorkbenchFeatures, WorkbenchIconConfiguration, WorkbenchIconName, WorkbenchLabels, WorkbenchLayout, WorkbenchLayoutName, WorkbenchOptions, WorkbenchStatusMode, WorkbenchTextPreset, WorkbenchTheme, } from './types';
24
+ export type { CustomForgeWorkbenchApi, WorkbenchAsset, WorkbenchAssetLibrary, WorkbenchBranding, WorkbenchFeatureName, WorkbenchFeatures, WorkbenchErrorFormatter, WorkbenchExtensionAction, WorkbenchExtensionActionContext, WorkbenchExtensionButton, WorkbenchExtensionPlacement, WorkbenchExtensionPredicate, WorkbenchExtensionStateContext, WorkbenchExtensionVariant, WorkbenchFontFamily, WorkbenchIconConfiguration, WorkbenchIconName, WorkbenchLabels, WorkbenchLayout, WorkbenchLayoutName, WorkbenchOptions, WorkbenchStatusMode, WorkbenchTextPreset, WorkbenchTheme, } from './types';
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workbench/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAC/B,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,GACf,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workbench/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAExE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,uBAAuB,CAAC,CAElC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAC/B,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,GACf,MAAM,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/workbench/template.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,wBAAgB,sBAAsB,IAAI,WAAW,CAyOpD"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/workbench/template.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,wBAAgB,sBAAsB,IAAI,WAAW,CAkWpD"}