@pinepaper.studio/mcp-server 1.5.0 → 1.5.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.
Files changed (49) hide show
  1. package/README.md +0 -25
  2. package/dist/agent/export-manager.d.ts.map +1 -1
  3. package/dist/agent/export-manager.js +24 -14
  4. package/dist/agent/export-manager.js.map +1 -1
  5. package/dist/cli.js +61 -66
  6. package/dist/cli.js.map +1 -1
  7. package/dist/index.d.ts +4 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +66 -17
  10. package/dist/index.js.map +1 -1
  11. package/dist/metrics/types.d.ts +3 -1
  12. package/dist/metrics/types.d.ts.map +1 -1
  13. package/dist/prompts/index.d.ts +3 -12
  14. package/dist/prompts/index.d.ts.map +1 -1
  15. package/dist/prompts/index.js +5 -96
  16. package/dist/prompts/index.js.map +1 -1
  17. package/dist/tools/compact-descriptions.d.ts +1 -1
  18. package/dist/tools/compact-descriptions.d.ts.map +1 -1
  19. package/dist/tools/compact-descriptions.js +44 -13
  20. package/dist/tools/compact-descriptions.js.map +1 -1
  21. package/dist/tools/definitions.d.ts +6 -4
  22. package/dist/tools/definitions.d.ts.map +1 -1
  23. package/dist/tools/definitions.js +154 -37
  24. package/dist/tools/definitions.js.map +1 -1
  25. package/dist/tools/handlers.d.ts.map +1 -1
  26. package/dist/tools/handlers.js +390 -5
  27. package/dist/tools/handlers.js.map +1 -1
  28. package/dist/tools/index.d.ts +3 -1
  29. package/dist/tools/index.d.ts.map +1 -1
  30. package/dist/tools/index.js +2 -1
  31. package/dist/tools/index.js.map +1 -1
  32. package/dist/tools/minimal-descriptions.d.ts +9 -0
  33. package/dist/tools/minimal-descriptions.d.ts.map +1 -0
  34. package/dist/tools/minimal-descriptions.js +158 -0
  35. package/dist/tools/minimal-descriptions.js.map +1 -0
  36. package/dist/tools/toolkits.d.ts +51 -0
  37. package/dist/tools/toolkits.d.ts.map +1 -0
  38. package/dist/tools/toolkits.js +336 -0
  39. package/dist/tools/toolkits.js.map +1 -0
  40. package/dist/types/code-generator.d.ts +1 -5
  41. package/dist/types/code-generator.d.ts.map +1 -1
  42. package/dist/types/code-generator.js +21 -192
  43. package/dist/types/code-generator.js.map +1 -1
  44. package/dist/types/schemas.d.ts +42 -65
  45. package/dist/types/schemas.d.ts.map +1 -1
  46. package/dist/types/schemas.js +24 -48
  47. package/dist/types/schemas.js.map +1 -1
  48. package/manifest.json +30 -6
  49. package/package.json +1 -1
@@ -0,0 +1,336 @@
1
+ /**
2
+ * Toolkit Profiles — Workflow-based tool filtering
3
+ *
4
+ * Controls which tools are exposed via tools/list based on the PINEPAPER_TOOLKIT env var.
5
+ * Reduces token usage for smaller-context models (e.g., Haiku) by only showing relevant tools.
6
+ *
7
+ * Profiles are composed from reusable tag groups (categories of tools).
8
+ * Handler dispatch is NOT filtered — hidden tools still execute if called directly.
9
+ */
10
+ export const TOOLKIT_PROFILES_LIST = ['full', 'agent', 'diagram', 'map', 'font', 'minimal'];
11
+ // =============================================================================
12
+ // TAG GROUPS — each maps a category to its tool names
13
+ // =============================================================================
14
+ export const TOOL_TAGS = {
15
+ // --- Core infrastructure (included in most profiles) ---
16
+ agent: [
17
+ 'pinepaper_agent_start_job',
18
+ 'pinepaper_agent_end_job',
19
+ 'pinepaper_agent_reset',
20
+ 'pinepaper_agent_batch_execute',
21
+ 'pinepaper_agent_export',
22
+ 'pinepaper_agent_analyze',
23
+ ],
24
+ browser: [
25
+ 'pinepaper_browser_connect',
26
+ 'pinepaper_browser_disconnect',
27
+ 'pinepaper_browser_screenshot',
28
+ 'pinepaper_browser_status',
29
+ ],
30
+ canvas: [
31
+ 'pinepaper_set_background_color',
32
+ 'pinepaper_set_canvas_size',
33
+ 'pinepaper_get_canvas_size',
34
+ 'pinepaper_clear_canvas',
35
+ 'pinepaper_refresh_page',
36
+ 'pinepaper_get_canvas_presets',
37
+ ],
38
+ // --- Item creation & modification ---
39
+ core: [
40
+ 'pinepaper_create_item',
41
+ 'pinepaper_modify_item',
42
+ 'pinepaper_delete_item',
43
+ 'pinepaper_create_glossy_sphere',
44
+ 'pinepaper_create_diagonal_stripes',
45
+ 'pinepaper_create_grid',
46
+ ],
47
+ import: [
48
+ 'pinepaper_import_svg',
49
+ 'pinepaper_import_image',
50
+ ],
51
+ assets: [
52
+ 'pinepaper_search_assets',
53
+ 'pinepaper_import_asset',
54
+ ],
55
+ batch: [
56
+ 'pinepaper_batch_create',
57
+ 'pinepaper_batch_modify',
58
+ ],
59
+ // --- Relations & animation ---
60
+ relations: [
61
+ 'pinepaper_add_relation',
62
+ 'pinepaper_remove_relation',
63
+ 'pinepaper_query_relations',
64
+ 'pinepaper_register_custom_relation',
65
+ ],
66
+ animation: [
67
+ 'pinepaper_animate',
68
+ 'pinepaper_keyframe_animate',
69
+ 'pinepaper_play_timeline',
70
+ 'pinepaper_get_animatable_properties',
71
+ 'pinepaper_get_available_easings',
72
+ ],
73
+ masks: [
74
+ 'pinepaper_apply_animated_mask',
75
+ 'pinepaper_apply_custom_mask',
76
+ 'pinepaper_remove_mask',
77
+ 'pinepaper_get_mask_types',
78
+ 'pinepaper_get_mask_animations',
79
+ ],
80
+ camera: [
81
+ 'pinepaper_camera_animate',
82
+ 'pinepaper_camera_zoom',
83
+ 'pinepaper_camera_pan',
84
+ 'pinepaper_camera_move_to',
85
+ 'pinepaper_camera_reset',
86
+ 'pinepaper_camera_stop',
87
+ 'pinepaper_camera_state',
88
+ ],
89
+ // --- Generators & effects ---
90
+ generators: [
91
+ 'pinepaper_execute_generator',
92
+ 'pinepaper_list_generators',
93
+ ],
94
+ effects: [
95
+ 'pinepaper_apply_effect',
96
+ ],
97
+ filters: [
98
+ 'pinepaper_add_filter',
99
+ ],
100
+ // --- Compositions ---
101
+ scene: [
102
+ 'pinepaper_create_scene',
103
+ ],
104
+ template: [
105
+ 'pinepaper_apply_template',
106
+ ],
107
+ // --- Query & export ---
108
+ query: [
109
+ 'pinepaper_get_items',
110
+ 'pinepaper_get_relation_stats',
111
+ ],
112
+ export: [
113
+ 'pinepaper_export_svg',
114
+ 'pinepaper_export_training_data',
115
+ 'pinepaper_export_scene',
116
+ ],
117
+ // --- Domain: Diagrams ---
118
+ diagram: [
119
+ 'pinepaper_create_diagram_shape',
120
+ 'pinepaper_connect',
121
+ 'pinepaper_connect_ports',
122
+ 'pinepaper_add_ports',
123
+ 'pinepaper_auto_layout',
124
+ 'pinepaper_get_diagram_shapes',
125
+ 'pinepaper_update_connector',
126
+ 'pinepaper_remove_connector',
127
+ 'pinepaper_diagram_mode',
128
+ ],
129
+ // --- Domain: Maps ---
130
+ map: [
131
+ 'pinepaper_load_map',
132
+ 'pinepaper_highlight_regions',
133
+ 'pinepaper_unhighlight_regions',
134
+ 'pinepaper_apply_data_colors',
135
+ 'pinepaper_add_marker',
136
+ 'pinepaper_add_map_labels',
137
+ 'pinepaper_pan_map',
138
+ 'pinepaper_zoom_map',
139
+ 'pinepaper_export_map',
140
+ 'pinepaper_import_custom_map',
141
+ 'pinepaper_get_region_at_point',
142
+ 'pinepaper_animate_map_regions',
143
+ 'pinepaper_animate_map_wave',
144
+ 'pinepaper_stop_map_animations',
145
+ 'pinepaper_get_animated_map_regions',
146
+ 'pinepaper_export_map_region_csv',
147
+ 'pinepaper_import_map_region_csv',
148
+ 'pinepaper_select_map_regions',
149
+ 'pinepaper_deselect_map_regions',
150
+ 'pinepaper_get_highlighted_map_regions',
151
+ 'pinepaper_export_map_geojson',
152
+ 'pinepaper_export_original_map_geojson',
153
+ 'pinepaper_get_map_source_info',
154
+ ],
155
+ // --- Domain: Fonts ---
156
+ font: [
157
+ 'pinepaper_font_show_studio',
158
+ 'pinepaper_font_set_name',
159
+ 'pinepaper_font_get_required_chars',
160
+ 'pinepaper_font_get_status',
161
+ 'pinepaper_font_create_glyph',
162
+ 'pinepaper_font_create_space',
163
+ 'pinepaper_font_remove_glyph',
164
+ 'pinepaper_font_set_metrics',
165
+ 'pinepaper_font_export',
166
+ 'pinepaper_font_load_into_document',
167
+ 'pinepaper_font_export_data',
168
+ 'pinepaper_font_import_data',
169
+ 'pinepaper_font_clear',
170
+ 'pinepaper_font_remove_overlap',
171
+ 'pinepaper_font_correct_direction',
172
+ 'pinepaper_font_cleanup_path',
173
+ ],
174
+ // --- Domain: Letter Collage ---
175
+ letter_collage: [
176
+ 'pinepaper_create_letter_collage',
177
+ 'pinepaper_animate_letter_collage',
178
+ 'pinepaper_get_letter_collage_options',
179
+ ],
180
+ // --- Domain: Interactive ---
181
+ triggers: [
182
+ 'pinepaper_add_trigger',
183
+ 'pinepaper_remove_trigger',
184
+ 'pinepaper_query_triggers',
185
+ ],
186
+ quiz: [
187
+ 'pinepaper_create_quiz',
188
+ 'pinepaper_get_quiz_state',
189
+ 'pinepaper_reset_quiz',
190
+ ],
191
+ // --- Advanced ---
192
+ performance: [
193
+ 'pinepaper_get_performance_metrics',
194
+ 'pinepaper_diagnostic_report',
195
+ ],
196
+ custom_code: [
197
+ 'pinepaper_execute_custom_code',
198
+ ],
199
+ p5: [
200
+ 'pinepaper_p5_draw',
201
+ ],
202
+ register: [
203
+ 'pinepaper_register_item',
204
+ ],
205
+ // --- On-demand guide & runtime config (included in ALL profiles) ---
206
+ guide: [
207
+ 'pinepaper_tool_guide',
208
+ 'pinepaper_set_toolkit',
209
+ ],
210
+ };
211
+ // =============================================================================
212
+ // PROFILES — each is a list of tag names to include
213
+ // =============================================================================
214
+ export const TOOLKIT_PROFILES = {
215
+ full: [], // Empty = no filtering, return all tools
216
+ agent: [
217
+ 'agent', 'browser', 'canvas',
218
+ 'core', 'import', 'assets', 'batch',
219
+ 'relations', 'animation', 'masks',
220
+ 'generators', 'effects',
221
+ 'scene',
222
+ 'query', 'export',
223
+ 'p5', 'guide',
224
+ ],
225
+ diagram: [
226
+ 'agent', 'browser', 'canvas',
227
+ 'core',
228
+ 'diagram',
229
+ 'query', 'export',
230
+ 'guide',
231
+ ],
232
+ map: [
233
+ 'agent', 'browser', 'canvas',
234
+ 'map',
235
+ 'query', 'export',
236
+ 'guide',
237
+ ],
238
+ font: [
239
+ 'agent', 'browser', 'canvas',
240
+ 'core',
241
+ 'font', 'letter_collage',
242
+ 'export',
243
+ 'guide',
244
+ ],
245
+ minimal: [
246
+ 'agent', 'browser', 'canvas',
247
+ 'guide',
248
+ ],
249
+ };
250
+ /**
251
+ * Filter tools based on a toolkit profile.
252
+ * Returns only the tools whose names appear in the selected profile's tag groups.
253
+ * The 'full' profile returns all tools unchanged (no filtering).
254
+ */
255
+ export function getToolsForToolkit(tools, profile) {
256
+ if (profile === 'full') {
257
+ return tools;
258
+ }
259
+ const tags = TOOLKIT_PROFILES[profile];
260
+ if (!tags) {
261
+ return tools; // Unknown profile = no filtering
262
+ }
263
+ // Build set of allowed tool names from all tags in this profile
264
+ const allowed = new Set();
265
+ for (const tag of tags) {
266
+ const toolNames = TOOL_TAGS[tag];
267
+ if (toolNames) {
268
+ for (const name of toolNames) {
269
+ allowed.add(name);
270
+ }
271
+ }
272
+ }
273
+ return tools.filter(tool => allowed.has(tool.name));
274
+ }
275
+ /**
276
+ * Detect toolkit profile from PINEPAPER_TOOLKIT environment variable.
277
+ * Returns 'agent' if not set or invalid.
278
+ */
279
+ export function detectToolkitFromEnvironment() {
280
+ const value = process.env.PINEPAPER_TOOLKIT;
281
+ if (value && TOOLKIT_PROFILES_LIST.includes(value)) {
282
+ return value;
283
+ }
284
+ return 'agent';
285
+ }
286
+ /** Returns true if PINEPAPER_TOOLKIT was explicitly set in the environment. */
287
+ export function isToolkitExplicitlySet() {
288
+ const value = process.env.PINEPAPER_TOOLKIT;
289
+ return !!value && TOOLKIT_PROFILES_LIST.includes(value);
290
+ }
291
+ const VALID_VERBOSITIES = ['verbose', 'compact', 'minimal'];
292
+ /**
293
+ * Detect tool description verbosity from environment.
294
+ * Reads PINEPAPER_VERBOSITY first, falls back to PINEPAPER_TOOL_VERBOSITY for backward compat.
295
+ * Returns 'compact' if not set or invalid.
296
+ */
297
+ export function detectVerbosityFromEnvironment() {
298
+ const value = process.env.PINEPAPER_VERBOSITY || process.env.PINEPAPER_TOOL_VERBOSITY;
299
+ if (value && VALID_VERBOSITIES.includes(value)) {
300
+ return value;
301
+ }
302
+ return 'compact';
303
+ }
304
+ /** Returns true if PINEPAPER_VERBOSITY or PINEPAPER_TOOL_VERBOSITY was explicitly set. */
305
+ export function isVerbosityExplicitlySet() {
306
+ const value = process.env.PINEPAPER_VERBOSITY || process.env.PINEPAPER_TOOL_VERBOSITY;
307
+ return !!value && VALID_VERBOSITIES.includes(value);
308
+ }
309
+ /**
310
+ * Known client profiles for auto-detection via MCP initialize handshake.
311
+ * Applied only when env vars are NOT explicitly set.
312
+ */
313
+ const CLIENT_PROFILES = {
314
+ 'claude-ai': { toolkit: 'minimal', verbosity: 'compact' },
315
+ 'claude-desktop': { toolkit: 'full', verbosity: 'compact' },
316
+ 'claude-code': { toolkit: 'agent', verbosity: 'compact' },
317
+ cursor: { toolkit: 'full', verbosity: 'compact' },
318
+ windsurf: { toolkit: 'full', verbosity: 'compact' },
319
+ };
320
+ /**
321
+ * Get client profile by name. Exact match first, then prefix match, case-insensitive.
322
+ * Returns null for unknown clients.
323
+ */
324
+ export function getClientProfile(clientName) {
325
+ const lower = clientName.toLowerCase();
326
+ // Exact match
327
+ if (CLIENT_PROFILES[lower])
328
+ return CLIENT_PROFILES[lower];
329
+ // Prefix match
330
+ for (const [key, profile] of Object.entries(CLIENT_PROFILES)) {
331
+ if (lower.startsWith(key))
332
+ return profile;
333
+ }
334
+ return null;
335
+ }
336
+ //# sourceMappingURL=toolkits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolkits.js","sourceRoot":"","sources":["../../src/tools/toolkits.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Converts MCP tool inputs to executable PinePaper JavaScript code.
5
5
  * This code is designed to run in the browser context where window.PinePaper is available.
6
6
  */
7
- import { ItemType, RelationType, CreateItemInputSchema, ModifyItemInputSchema, AddRelationInputSchema, AnimateItemInputSchema, KeyframeAnimateInputSchema, ExecuteGeneratorInputSchema, ApplyEffectInputSchema, SetBackgroundColorInputSchema, SetCanvasSizeInputSchema, CreateGlossySphereInputSchema, CreateDiagonalStripesInputSchema, BatchCreateInputSchema, BatchModifyInputSchema, CreateGridInputSchema, CreateSceneInput, CreateDiagramShapeInput, ConnectInput, ConnectPortsInput, AddPortsInput, AutoLayoutInput, GetDiagramShapesInput, UpdateConnectorInput, RemoveConnectorInput, DiagramModeInput, AgentStartJobInput, AgentEndJobInput, AgentResetInput, AgentBatchExecuteInput, AgentExportInput, AgentAnalyzeInput, AddTriggerInput, RemoveTriggerInput, QueryTriggersInput, CreateQuizInput, GetQuizStateInput, ResetQuizInput, ExportWidgetInput, CreateLetterCollageInput, AnimateLetterCollageInput, LoadMapInput, HighlightRegionsInput, UnhighlightRegionsInput, ApplyDataColorsInput, AddMarkerInput, AddMapLabelsInput, PanMapInput, ZoomMapInput, ImportCustomMapInput, GetRegionAtPointInput, AnimateMapRegionsInput, AnimateMapWaveInput, StopMapAnimationsInput, ExportMapRegionCSVInput, ImportMapRegionCSVInput, SelectMapRegionsInput, DeselectMapRegionsInput, RegisterCustomRelationInput, ExecuteCustomCodeInput, ApplyAnimatedMaskInput, ApplyCustomMaskInput, RemoveMaskInput, ApplyTemplateInput, ImportImageInput } from './schemas.js';
7
+ import { ItemType, RelationType, CreateItemInputSchema, ModifyItemInputSchema, AddRelationInputSchema, AnimateItemInputSchema, KeyframeAnimateInputSchema, ExecuteGeneratorInputSchema, ApplyEffectInputSchema, SetBackgroundColorInputSchema, SetCanvasSizeInputSchema, CreateGlossySphereInputSchema, CreateDiagonalStripesInputSchema, BatchCreateInputSchema, BatchModifyInputSchema, CreateGridInputSchema, CreateSceneInput, CreateDiagramShapeInput, ConnectInput, ConnectPortsInput, AddPortsInput, AutoLayoutInput, GetDiagramShapesInput, UpdateConnectorInput, RemoveConnectorInput, DiagramModeInput, AgentStartJobInput, AgentEndJobInput, AgentResetInput, AgentBatchExecuteInput, AgentExportInput, AgentAnalyzeInput, AddTriggerInput, RemoveTriggerInput, QueryTriggersInput, CreateQuizInput, GetQuizStateInput, ResetQuizInput, CreateLetterCollageInput, AnimateLetterCollageInput, LoadMapInput, HighlightRegionsInput, UnhighlightRegionsInput, ApplyDataColorsInput, AddMarkerInput, AddMapLabelsInput, PanMapInput, ZoomMapInput, ImportCustomMapInput, GetRegionAtPointInput, AnimateMapRegionsInput, AnimateMapWaveInput, StopMapAnimationsInput, ExportMapRegionCSVInput, ImportMapRegionCSVInput, SelectMapRegionsInput, DeselectMapRegionsInput, RegisterCustomRelationInput, ExecuteCustomCodeInput, ApplyAnimatedMaskInput, ApplyCustomMaskInput, RemoveMaskInput, ApplyTemplateInput, ImportImageInput } from './schemas.js';
8
8
  import { z } from 'zod';
9
9
  export declare class PinePaperCodeGenerator {
10
10
  /**
@@ -219,10 +219,6 @@ export declare class PinePaperCodeGenerator {
219
219
  * Generate code for resetting a quiz
220
220
  */
221
221
  generateResetQuiz(input: ResetQuizInput): string;
222
- /**
223
- * Generate code for exporting widget
224
- */
225
- generateExportWidget(input: ExportWidgetInput): string;
226
222
  /**
227
223
  * Generate code to create a letter collage
228
224
  */
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../../src/types/code-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,QAAQ,EAER,YAAY,EAEZ,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,EAExB,6BAA6B,EAC7B,gCAAgC,EAGhC,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EAIrB,gBAAgB,EAGhB,uBAAuB,EAEvB,YAAY,EAEZ,iBAAiB,EAEjB,aAAa,EAEb,eAAe,EAEf,qBAAqB,EAErB,oBAAoB,EAEpB,oBAAoB,EAEpB,gBAAgB,EAGhB,kBAAkB,EAElB,gBAAgB,EAEhB,eAAe,EAEf,sBAAsB,EAEtB,gBAAgB,EAEhB,iBAAiB,EAGjB,eAAe,EAEf,kBAAkB,EAElB,kBAAkB,EAGlB,eAAe,EAEf,iBAAiB,EAEjB,cAAc,EAGd,iBAAiB,EAGjB,wBAAwB,EAExB,yBAAyB,EAQzB,YAAY,EAEZ,qBAAqB,EAErB,uBAAuB,EAEvB,oBAAoB,EAEpB,cAAc,EAEd,iBAAiB,EAEjB,WAAW,EAEX,YAAY,EAIZ,oBAAoB,EAEpB,qBAAqB,EAGrB,sBAAsB,EAEtB,mBAAmB,EAEnB,sBAAsB,EAItB,uBAAuB,EAEvB,uBAAuB,EAEvB,qBAAqB,EAErB,uBAAuB,EAKvB,2BAA2B,EAE3B,sBAAsB,EAGtB,sBAAsB,EAEtB,oBAAoB,EAEpB,eAAe,EAGf,kBAAkB,EAGlB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0qBxB,qBAAa,sBAAsB;IACjC;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAAG,MAAM;IASxE;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAAG,MAAM;IAQxE;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1C;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,GAAG,MAAM;IAU1E;;OAEG;IACH,sBAAsB,CACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,MAAM;IAIT;;OAEG;IACH,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,YAAY,EAC3B,SAAS,GAAE,UAAU,GAAG,UAAuB,GAC9C,MAAM;IAIT;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,GAAG,MAAM;IAStE;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,GAAG,MAAM;IAUlF;;OAEG;IACH,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,GAAG,MAAM;IAQpF;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,GAAG,MAAM;IAS1E;;OAEG;IACH,gBAAgB,CAAC,MAAM,CAAC,EAAE;QACxB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GAAG,MAAM;IAIV;;OAEG;IACH,oBAAoB,CAClB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM;IAIT;;OAEG;IACH,0BAA0B,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,GAAG,MAAM;IAKxF;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,GAAG,MAAM;IAS9E;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,0BAA0B,CACxB,MAAM,GAAE,MAAM,GAAG,OAAgB,EACjC,eAAe,GAAE,OAAc,GAC9B,MAAM;IAIT;;OAEG;IACH,wBAAwB,IAAI,MAAM;IAIlC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,iBAAiB,CACf,SAAS,CAAC,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,EACZ,QAAQ,GAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAuB,EACvD,KAAK,GAAE,MAAY,GAClB,MAAM;IA4CT;;OAEG;IACH,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,MAAM;IAQT;;OAEG;IACH,0BAA0B,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,GAAG,MAAM;IA0FxF;;OAEG;IACH,6BAA6B,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,GAAG,MAAM;IAyD9F;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,GAAG,MAAM;IAK1E;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,GAAG,MAAM;IAK1E;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAAG,MAAM;IAaxE;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIpC;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAgMpD;;OAEG;IACH,0BAA0B,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM;IA4BlE;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAgD5C;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IA2BtD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IAuB9C;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAmBlD;;OAEG;IACH,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM;IAe9D;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IA+B5D;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IAgB5D;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IA+CpD;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM;IA2DxD;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IA4IpD;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAyDlD;;OAEG;IACH,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;IAkDhE;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAyKlC;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IA4IpD;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IAwItD;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAqClD;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM;IA2CxD;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM;IA6CxD;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAwDlD;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IAkCtD;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAsChD;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IA2KtD;;OAEG;IACH,2BAA2B,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM;IAoDpE;;OAEG;IACH,4BAA4B,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM;IAgCtE;;OAEG;IACH,+BAA+B,IAAI,MAAM;IAiCzC;;OAEG;IACH,wBAAwB,IAAI,MAAM;IA0ClC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IA4B5C;;OAEG;IACH,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM;IAsB9D;;OAEG;IACH,0BAA0B,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM;IAqBlE;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IAsB5D;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IA6BhD;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IAsBtD;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAuB1C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAuB5C;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAkB3B;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IA8C5D;;OAEG;IACH,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM;IA2B9D;;OAEG;IACH,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;IAyBhE;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM;IA0B1D;;OAEG;IACH,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;IAwBhE;;OAEG;IACH,6BAA6B,IAAI,MAAM;IAkBvC;;OAEG;IACH,0BAA0B,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM;IA0BlE;;OAEG;IACH,0BAA0B,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM;IA2BlE;;OAEG;IACH,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM;IAqB9D;;OAEG;IACH,0BAA0B,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM;IAqBlE;;OAEG;IACH,gCAAgC,IAAI,MAAM;IAkB1C;;OAEG;IACH,mBAAmB,IAAI,MAAM;IA2E7B;;OAEG;IACH,wBAAwB,CAAC,OAAO,GAAE;QAChC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,MAAM;IA8Bf;;OAEG;IACH,gCAAgC,CAAC,OAAO,GAAE;QACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,MAAM;IAwBf;;OAEG;IACH,wBAAwB,IAAI,MAAM;IAkBlC;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,GAAG,MAAM;IAyDV,8BAA8B,CAAC,KAAK,EAAE,2BAA2B,GAAG,MAAM;IA+B1E,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;IAoBhE,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;IA6BhE,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IA0B5D,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAoBlD,+BAA+B,IAAI,MAAM;IA0CzC,2BAA2B,IAAI,MAAM;IAmBrC,oBAAoB,IAAI,MAAM;IAW9B,yBAAyB,IAAI,MAAM;IAkBnC,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM;IAgDxD,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CA8BrD;AAGD,eAAO,MAAM,aAAa,wBAA+B,CAAC"}
1
+ {"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../../src/types/code-generator.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,6 @@ AgentStartJobInputSchema, AgentEndJobInputSchema, AgentResetInputSchema, AgentBa
14
14
  AddTriggerInputSchema, RemoveTriggerInputSchema, QueryTriggersInputSchema,
15
15
  // Quiz types
16
16
  CreateQuizInputSchema, GetQuizStateInputSchema, ResetQuizInputSchema,
17
- // Widget export types
18
- ExportWidgetInputSchema,
19
17
  // Letter collage types
20
18
  CreateLetterCollageInputSchema, AnimateLetterCollageInputSchema,
21
19
  // Map types
@@ -1874,35 +1872,36 @@ return { success: true, action: 'seek', time: ${op.time || 0} };
1874
1872
  break;
1875
1873
 
1876
1874
  case 'gif':
1877
- if (app.exportEngine && app.exportEngine.exportGIF) {
1878
- const blob = await app.exportEngine.exportGIF({ fps: settings.fps, quality: settings.compression, duration: 5 });
1879
- const reader = new FileReader();
1880
- const dataUrl = await new Promise(resolve => {
1881
- reader.onloadend = () => resolve(reader.result);
1882
- reader.readAsDataURL(blob);
1883
- });
1884
- result = { success: true, platform, format: 'gif', data: dataUrl, mimeType: 'image/gif', size: blob.size };
1885
- } else {
1886
- result = { success: false, error: 'GIF export not available' };
1887
- }
1888
- break;
1889
-
1890
1875
  case 'mp4':
1891
- case 'webm':
1892
- const exportMethod = format === 'mp4' ? 'exportMP4' : 'exportWebM';
1893
- const mimeType = format === 'mp4' ? 'video/mp4' : 'video/webm';
1894
- if (app.exportEngine && app.exportEngine[exportMethod]) {
1895
- const blob = await app.exportEngine[exportMethod]({ fps: settings.fps, duration: 5, ...dimensions });
1876
+ case 'webm': {
1877
+ const videoMimeType = { mp4: 'video/mp4', webm: 'video/webm', gif: 'image/gif' }[format];
1878
+ // Use _quickExportVideo (delegates to VideoExporter.export internally)
1879
+ if (app.exportEngine && app.exportEngine._quickExportVideo) {
1880
+ const videoResult = await app.exportEngine._quickExportVideo(format, { fps: settings.fps, duration: 5 }, false);
1881
+ if (videoResult && videoResult.blob) {
1882
+ const reader = new FileReader();
1883
+ const dataUrl = await new Promise(resolve => {
1884
+ reader.onloadend = () => resolve(reader.result);
1885
+ reader.readAsDataURL(videoResult.blob);
1886
+ });
1887
+ result = { success: true, platform, format, data: dataUrl, mimeType: videoMimeType, size: videoResult.blob.size };
1888
+ } else {
1889
+ result = { success: false, error: format.toUpperCase() + ' export returned no data' };
1890
+ }
1891
+ } else if (app.exportEngine && app.exportEngine.videoExporter) {
1892
+ // Fallback: call VideoExporter.export directly
1893
+ const blob = await app.exportEngine.videoExporter.export({ format, fps: settings.fps, duration: 5 });
1896
1894
  const reader = new FileReader();
1897
1895
  const dataUrl = await new Promise(resolve => {
1898
1896
  reader.onloadend = () => resolve(reader.result);
1899
1897
  reader.readAsDataURL(blob);
1900
1898
  });
1901
- result = { success: true, platform, format, data: dataUrl, mimeType, size: blob.size };
1899
+ result = { success: true, platform, format, data: dataUrl, mimeType: videoMimeType, size: blob.size };
1902
1900
  } else {
1903
1901
  result = { success: false, error: format.toUpperCase() + ' export not available' };
1904
1902
  }
1905
1903
  break;
1904
+ }
1906
1905
 
1907
1906
  case 'pdf':
1908
1907
  if (app.exportEngine && app.exportEngine.exportPDF) {
@@ -1914,7 +1913,7 @@ return { success: true, action: 'seek', time: ${op.time || 0} };
1914
1913
  });
1915
1914
  result = { success: true, platform, format: 'pdf', data: dataUrl, mimeType: 'application/pdf', size: blob.size, dpi: settings.dpi };
1916
1915
  } else {
1917
- result = { success: false, error: 'PDF export not available' };
1916
+ result = { success: false, error: 'PDF export failed' };
1918
1917
  }
1919
1918
  break;
1920
1919
 
@@ -2311,176 +2310,6 @@ quiz.state = {
2311
2310
  app.historyManager.saveState();
2312
2311
 
2313
2312
  ({ success: true, quizId: quiz.id, reset: true });
2314
- `.trim();
2315
- }
2316
- // ===========================================================================
2317
- // WIDGET EXPORT CODE GENERATORS
2318
- // ===========================================================================
2319
- /**
2320
- * Generate code for exporting widget
2321
- */
2322
- generateExportWidget(input) {
2323
- const validated = ExportWidgetInputSchema.parse(input);
2324
- const { format, sizing, interactivity, autoplay, loop, lmsEnabled, width, height } = validated;
2325
- const sizingMode = sizing || 'responsive';
2326
- const interactivityLevel = interactivity || 'view';
2327
- const shouldAutoplay = autoplay !== false;
2328
- const shouldLoop = loop !== false;
2329
- const hasLms = lmsEnabled || false;
2330
- return `
2331
- // Export widget as ${format}
2332
- (async function() {
2333
- const format = '${format}';
2334
- const sizing = '${sizingMode}';
2335
- const interactivity = '${interactivityLevel}';
2336
- const autoplay = ${shouldAutoplay};
2337
- const loop = ${shouldLoop};
2338
- const lmsEnabled = ${hasLms};
2339
- const fixedWidth = ${width || 'null'};
2340
- const fixedHeight = ${height || 'null'};
2341
-
2342
- // Capture scene data
2343
- const sceneData = app.exportSceneData ? JSON.stringify(app.exportSceneData()) : '{}';
2344
-
2345
- // Get canvas dimensions
2346
- let canvasWidth = fixedWidth || (app.canvasEl ? app.canvasEl.width : 800);
2347
- let canvasHeight = fixedHeight || (app.canvasEl ? app.canvasEl.height : 600);
2348
-
2349
- // Check for animations
2350
- const items = app.itemRegistry ? app.itemRegistry.getAll() : [];
2351
- const hasAnimations = items.some(e => e.item.data?.animationType);
2352
- const hasRelations = app.relationRegistry && app.relationRegistry.getAll().length > 0;
2353
- const hasQuiz = app.quizManager && app.quizManager.quizzes.length > 0;
2354
- const hasTriggers = items.some(e => e.item.data?.triggers?.length > 0);
2355
-
2356
- const metadata = {
2357
- hasInteractivity: hasTriggers || interactivity === 'full',
2358
- hasAnimations: hasAnimations || hasRelations,
2359
- hasQuiz,
2360
- width: canvasWidth,
2361
- height: canvasHeight,
2362
- sizing,
2363
- interactivity
2364
- };
2365
-
2366
- let code = '';
2367
- let embedCode = '';
2368
-
2369
- switch (format) {
2370
- case 'web-component':
2371
- code = \`<script src="https://cdn.pinepaper.io/widget.js"></script>
2372
- <pinepaper-widget
2373
- data-scene='\${sceneData}'
2374
- data-sizing="\${sizing}"
2375
- data-interactivity="\${interactivity}"
2376
- data-autoplay="\${autoplay}"
2377
- data-loop="\${loop}"
2378
- \${fixedWidth ? 'width="' + canvasWidth + '"' : ''}
2379
- \${fixedHeight ? 'height="' + canvasHeight + '"' : ''}
2380
- ></pinepaper-widget>\`;
2381
- embedCode = code;
2382
- break;
2383
-
2384
- case 'standalone-html':
2385
- code = \`<!DOCTYPE html>
2386
- <html>
2387
- <head>
2388
- <meta charset="UTF-8">
2389
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
2390
- <title>PinePaper Widget</title>
2391
- <script src="https://cdn.pinepaper.io/runtime.js"></script>
2392
- <style>
2393
- body { margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #f5f5f5; }
2394
- .pinepaper-container { \${sizing === 'responsive' ? 'width: 100%; max-width: ' + canvasWidth + 'px;' : sizing === 'fluid' ? 'width: 100%; height: 100%;' : 'width: ' + canvasWidth + 'px; height: ' + canvasHeight + 'px;'} }
2395
- </style>
2396
- </head>
2397
- <body>
2398
- <div class="pinepaper-container" id="pinepaper-widget"></div>
2399
- <script>
2400
- PinePaper.init('#pinepaper-widget', {
2401
- scene: \${sceneData},
2402
- autoplay: \${autoplay},
2403
- loop: \${loop},
2404
- interactivity: '\${interactivity}'\${hasLms ? ',\\n lms: true' : ''}
2405
- });
2406
- </script>
2407
- </body>
2408
- </html>\`;
2409
- embedCode = \`<iframe src="[URL_TO_HOSTED_FILE]" width="\${canvasWidth}" height="\${canvasHeight}" frameborder="0"></iframe>\`;
2410
- break;
2411
-
2412
- case 'iframe-embed':
2413
- const dataUri = 'data:text/html;base64,' + btoa(\`<!DOCTYPE html><html><head><script src="https://cdn.pinepaper.io/runtime.js"></script></head><body><div id="w"></div><script>PinePaper.init('#w',{scene:\${sceneData},autoplay:\${autoplay},loop:\${loop}});</script></body></html>\`);
2414
- code = dataUri;
2415
- embedCode = \`<iframe src="\${dataUri}" width="\${canvasWidth}" height="\${canvasHeight}" frameborder="0" allowfullscreen></iframe>\`;
2416
- break;
2417
-
2418
- case 'react-component':
2419
- code = \`import { useEffect, useRef } from 'react';
2420
-
2421
- export function PinepaperWidget({ className }) {
2422
- const containerRef = useRef(null);
2423
-
2424
- useEffect(() => {
2425
- if (containerRef.current && window.PinePaper) {
2426
- window.PinePaper.init(containerRef.current, {
2427
- scene: \${sceneData},
2428
- autoplay: \${autoplay},
2429
- loop: \${loop},
2430
- interactivity: '\${interactivity}'
2431
- });
2432
- }
2433
- }, []);
2434
-
2435
- return <div ref={containerRef} className={className} style={{ width: '\${sizing === 'fixed' ? canvasWidth + 'px' : '100%'}', height: '\${sizing === 'fixed' ? canvasHeight + 'px' : 'auto'}' }} />;
2436
- }
2437
-
2438
- // Usage: <PinepaperWidget className="my-widget" />\`;
2439
- embedCode = '<PinepaperWidget />';
2440
- break;
2441
-
2442
- case 'vue-component':
2443
- code = \`<template>
2444
- <div ref="container" :class="className" :style="containerStyle"></div>
2445
- </template>
2446
-
2447
- <script setup>
2448
- import { ref, onMounted, computed } from 'vue';
2449
-
2450
- const props = defineProps({ className: String });
2451
- const container = ref(null);
2452
-
2453
- const containerStyle = computed(() => ({
2454
- width: '\${sizing === 'fixed' ? canvasWidth + 'px' : '100%'}',
2455
- height: '\${sizing === 'fixed' ? canvasHeight + 'px' : 'auto'}'
2456
- }));
2457
-
2458
- onMounted(() => {
2459
- if (container.value && window.PinePaper) {
2460
- window.PinePaper.init(container.value, {
2461
- scene: \${sceneData},
2462
- autoplay: \${autoplay},
2463
- loop: \${loop},
2464
- interactivity: '\${interactivity}'
2465
- });
2466
- }
2467
- });
2468
- </script>
2469
-
2470
- <!-- Usage: <PinepaperWidget class="my-widget" /> -->\`;
2471
- embedCode = '<PinepaperWidget />';
2472
- break;
2473
- }
2474
-
2475
- return {
2476
- success: true,
2477
- format,
2478
- code,
2479
- embedCode,
2480
- sceneData,
2481
- metadata
2482
- };
2483
- })();
2484
2313
  `.trim();
2485
2314
  }
2486
2315
  // ===========================================================================