@lemonppt/renderer 1.0.0 → 1.0.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.
@@ -12,7 +12,7 @@ export declare function renderEditorData(goal: DeckGoal, options?: RenderEditorO
12
12
  * 补全 EditorData 中的 UI 片段字段。
13
13
  * 将渲染数据与 UI 组件解耦,方便服务端返回纯数据。
14
14
  */
15
- export declare function fillEditorDataUi(data: EditorData): EditorData;
15
+ export declare function fillEditorDataUi(data: EditorData, width?: number, height?: number): EditorData;
16
16
  /**
17
17
  * 将 EditorData 组装成完整 HTML 页面。
18
18
  * 这是为兼容旧版 renderDeck(editable: true) 保留的封装。
@@ -1 +1 @@
1
- {"version":3,"file":"render-editor-data.d.ts","sourceRoot":"","sources":["../src/render-editor-data.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiBzE,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2DD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,mBAAwB,GAAG,UAAU,CA0D9F;AA+GD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAS7D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAq2B1G"}
1
+ {"version":3,"file":"render-editor-data.d.ts","sourceRoot":"","sources":["../src/render-editor-data.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiBzE,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2DD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,mBAAwB,GAAG,UAAU,CA0D9F;AAsID;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,KAAK,SAAO,EACZ,MAAM,SAAM,GACX,UAAU,CASZ;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAq2B1G"}
@@ -130,18 +130,39 @@ function buildEditorBarMarkup(goal) {
130
130
  </div>
131
131
  </div>`;
132
132
  }
133
- function buildLeftPanelMarkup(goal) {
133
+ function buildLeftPanelMarkup(goal, data, width, height) {
134
134
  const slideCount = goal.slides.length;
135
+ const showDragHandle = slideCount > 1;
136
+ const dragHandleHtml = showDragHandle
137
+ ? '<span class="lp-thumbnail-drag-handle" data-lp-action="drag-handle" aria-hidden="true">' +
138
+ '<svg width="12" height="16" viewBox="0 0 12 16" fill="currentColor" aria-hidden="true">' +
139
+ '<circle cx="2.5" cy="2.5" r="1.5"/>' +
140
+ '<circle cx="9.5" cy="2.5" r="1.5"/>' +
141
+ '<circle cx="2.5" cy="8" r="1.5"/>' +
142
+ '<circle cx="9.5" cy="8" r="1.5"/>' +
143
+ '<circle cx="2.5" cy="13.5" r="1.5"/>' +
144
+ '<circle cx="9.5" cy="13.5" r="1.5"/>' +
145
+ '</svg>' +
146
+ '</span>'
147
+ : '';
148
+ const scale = 156 / width;
135
149
  const thumbnails = goal.slides
136
150
  .map((slide, index) => {
137
151
  const activeClass = index === 0 ? ' active' : '';
138
- return `<div class="lp-thumbnail${activeClass}" tabindex="0" draggable="true" data-slide-index="${index}" data-layout="${slide.layout}">
139
- <div class="lp-thumbnail-drag-handle" aria-hidden="true">⋮⋮</div>
140
- <div class="lp-thumbnail-index">${index + 1} / ${slideCount}</div>
141
- <div class="lp-thumbnail-title">${slide.props.title ? escapeHtml(String(slide.props.title)) : `Slide ${index + 1}`}</div>
142
- <div class="lp-thumbnail-layout">${slide.layout}</div>
143
- <div class="lp-thumbnail-drop-indicator" data-drop-position="before"></div>
144
- <div class="lp-thumbnail-drop-indicator" data-drop-position="after"></div>
152
+ const slideHtml = data.slideHtmls[index] || '';
153
+ const draggableAttr = showDragHandle ? 'draggable="true"' : '';
154
+ return `<div class="lp-thumbnail${activeClass}" role="button" tabindex="0" ${draggableAttr} data-index="${index}" data-layout="${slide.layout}" aria-label="幻灯片 ${index + 1},拖动可调整顺序">
155
+ ${dragHandleHtml}
156
+ <div class="lp-thumbnail-render">
157
+ <div class="lp-thumbnail-scaler" style="width:${width}px;height:${height}px;transform:scale(${scale});transform-origin:top left;">${slideHtml}</div>
158
+ </div>
159
+ <div class="lp-thumbnail-scrim"></div>
160
+ <div class="lp-thumbnail-content">
161
+ <div class="lp-thumbnail-index">${index + 1} / ${slideCount}</div>
162
+ <div class="lp-thumbnail-title">${slide.props.title ? escapeHtml(String(slide.props.title)) : `Slide ${index + 1}`}</div>
163
+ <div class="lp-thumbnail-layout">${escapeHtml(slide.layout)}</div>
164
+ </div>
165
+ <span class="lp-thumbnail-delete" data-lp-action="delete-slide" data-index="${index}" title="删除幻灯片" aria-label="删除幻灯片">×</span>
145
166
  </div>`;
146
167
  })
147
168
  .join('\n');
@@ -154,7 +175,9 @@ function buildLeftPanelMarkup(goal) {
154
175
  function buildRightPanelMarkup() {
155
176
  return `<aside class="lp-editor-right-panel">
156
177
  <div class="lp-property-header">属性面板</div>
157
- <div class="lp-property-empty">点击左侧缩略图选择幻灯片,然后编辑内容。</div>
178
+ <div class="lp-property-content" id="lp-property-content">
179
+ <div class="lp-property-empty">点击左侧缩略图选择幻灯片,然后编辑内容。</div>
180
+ </div>
158
181
  </aside>`;
159
182
  }
160
183
  function buildAddSlideModalMarkup(goal) {
@@ -184,11 +207,11 @@ window.__lemonPPT_goal = ${JSON.stringify(goal)};
184
207
  * 补全 EditorData 中的 UI 片段字段。
185
208
  * 将渲染数据与 UI 组件解耦,方便服务端返回纯数据。
186
209
  */
187
- export function fillEditorDataUi(data) {
210
+ export function fillEditorDataUi(data, width = 1280, height = 720) {
188
211
  return {
189
212
  ...data,
190
213
  editorBarMarkup: buildEditorBarMarkup(data.goal),
191
- leftPanelMarkup: buildLeftPanelMarkup(data.goal),
214
+ leftPanelMarkup: buildLeftPanelMarkup(data.goal, data, width, height),
192
215
  rightPanelMarkup: buildRightPanelMarkup(),
193
216
  addSlideModalMarkup: buildAddSlideModalMarkup(data.goal),
194
217
  editorScriptMarkup: buildEditorScriptMarkup(data.goal),
@@ -199,8 +222,8 @@ export function fillEditorDataUi(data) {
199
222
  * 这是为兼容旧版 renderDeck(editable: true) 保留的封装。
200
223
  */
201
224
  export function renderEditorHtmlFromData(data, options = {}) {
202
- const { width = 1280 } = options;
203
- const { goal, theme, colorScheme, appearance, slidesMarkup, themeCssVars, editorBarMarkup, leftPanelMarkup, rightPanelMarkup, addSlideModalMarkup, editorScriptMarkup } = fillEditorDataUi(data);
225
+ const { width = 1280, height = 720 } = options;
226
+ const { goal, theme, colorScheme, appearance, slidesMarkup, themeCssVars, editorBarMarkup, leftPanelMarkup, rightPanelMarkup, addSlideModalMarkup, editorScriptMarkup } = fillEditorDataUi(data, width, height);
204
227
  const slideCount = goal.slides.length;
205
228
  const appearanceAttr = appearance ? ` data-appearance="${appearance}"` : '';
206
229
  const bodyMarkup = `<div class="lp-editor-root">
@@ -1 +1 @@
1
- {"version":3,"file":"render-editor-data.js","sourceRoot":"","sources":["../src/render-editor-data.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-editor-data.js","sourceRoot":"","sources":["../src/render-editor-data.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemonppt/renderer",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -27,19 +27,14 @@
27
27
  "url": "https://github.com/lemonforme/lemonPPT/issues"
28
28
  },
29
29
  "homepage": "https://github.com/lemonforme/lemonPPT#readme",
30
- "scripts": {
31
- "build": "tsc && node scripts/build-editor-script.js && esbuild src/client-render.ts --bundle --platform=browser --format=iife --global-name=__lemonPPT_clientRender --outfile=dist/client/client-render.js --alias:react-dom/server=react-dom/server.browser --target=es2019 --minify && esbuild src/theme-echarts.ts --bundle --platform=browser --format=iife --global-name=__lemonPPT_themeECharts --outfile=dist/client/theme-echarts.js --target=es2019 --minify",
32
- "typecheck": "tsc --noEmit",
33
- "prepublishOnly": "tsc"
34
- },
35
30
  "dependencies": {
36
- "@lemonppt/core": "workspace:*",
37
- "@lemonppt/templates": "workspace:*",
38
- "@lemonppt/themes": "workspace:*",
39
31
  "playwright": "^1.61.1",
40
32
  "pptxgenjs": "3.12.0",
41
33
  "react": "^18.3.1",
42
- "react-dom": "^18.3.1"
34
+ "react-dom": "^18.3.1",
35
+ "@lemonppt/core": "1.0.1",
36
+ "@lemonppt/templates": "1.0.1",
37
+ "@lemonppt/themes": "1.0.1"
43
38
  },
44
39
  "devDependencies": {
45
40
  "@types/node": "^20.0.0",
@@ -48,5 +43,9 @@
48
43
  "esbuild": "^0.28.1",
49
44
  "typescript": "^5.5.0"
50
45
  },
51
- "license": "AGPL-3.0"
52
- }
46
+ "license": "AGPL-3.0",
47
+ "scripts": {
48
+ "build": "tsc && node scripts/build-editor-script.js && esbuild src/client-render.ts --bundle --platform=browser --format=iife --global-name=__lemonPPT_clientRender --outfile=dist/client/client-render.js --alias:react-dom/server=react-dom/server.browser --target=es2019 --minify && esbuild src/theme-echarts.ts --bundle --platform=browser --format=iife --global-name=__lemonPPT_themeECharts --outfile=dist/client/theme-echarts.js --target=es2019 --minify",
49
+ "typecheck": "tsc --noEmit"
50
+ }
51
+ }
@@ -279,13 +279,14 @@
279
279
  cursor: grab;
280
280
  display: flex;
281
281
  flex-direction: column;
282
- justify-content: center;
283
- padding: 10px;
282
+ justify-content: flex-end;
283
+ padding: 0;
284
284
  text-align: left;
285
- color: #bbb;
285
+ color: #fff;
286
286
  transition: border-color 0.15s, background 0.15s, opacity 0.15s;
287
287
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
288
288
  position: relative;
289
+ overflow: hidden;
289
290
  user-select: none;
290
291
  -webkit-user-select: none;
291
292
  outline: none;
@@ -314,9 +315,37 @@
314
315
  border-color: #10b981;
315
316
  background: #1f3d32;
316
317
  }
318
+ .lp-thumbnail-render {
319
+ position: absolute;
320
+ inset: 0;
321
+ z-index: 0;
322
+ overflow: hidden;
323
+ }
324
+ .lp-thumbnail-scaler {
325
+ position: relative;
326
+ pointer-events: none;
327
+ }
328
+ .lp-thumbnail-scrim {
329
+ position: absolute;
330
+ inset: 0;
331
+ z-index: 1;
332
+ background: linear-gradient(to bottom, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 100%);
333
+ pointer-events: none;
334
+ }
335
+ .lp-thumbnail.active .lp-thumbnail-scrim {
336
+ background: linear-gradient(to bottom, rgba(59,130,246,0.15) 0%, rgba(59,130,246,0.45) 100%);
337
+ }
338
+ .lp-thumbnail-content {
339
+ position: relative;
340
+ z-index: 2;
341
+ padding: 10px;
342
+ color: #fff;
343
+ text-shadow: 0 1px 2px rgba(0,0,0,0.8);
344
+ pointer-events: none;
345
+ }
317
346
  .lp-thumbnail-index {
318
347
  font-size: 11px;
319
- color: #888;
348
+ color: rgba(255,255,255,0.75);
320
349
  margin-bottom: 4px;
321
350
  }
322
351
  .lp-thumbnail-title {
@@ -331,9 +360,36 @@
331
360
  }
332
361
  .lp-thumbnail-layout {
333
362
  font-size: 11px;
334
- color: #666;
363
+ color: rgba(255,255,255,0.65);
335
364
  margin-top: 4px;
336
365
  }
366
+ .lp-thumbnail-delete {
367
+ position: absolute;
368
+ top: 4px;
369
+ right: 4px;
370
+ z-index: 3;
371
+ width: 20px;
372
+ height: 20px;
373
+ display: flex;
374
+ align-items: center;
375
+ justify-content: center;
376
+ border-radius: 4px;
377
+ background: rgba(239, 68, 68, 0.85);
378
+ color: #fff;
379
+ font-size: 14px;
380
+ line-height: 1;
381
+ cursor: pointer;
382
+ opacity: 0;
383
+ transition: opacity 0.15s ease;
384
+ pointer-events: auto;
385
+ }
386
+ .lp-thumbnail:hover .lp-thumbnail-delete,
387
+ .lp-thumbnail:focus-within .lp-thumbnail-delete {
388
+ opacity: 1;
389
+ }
390
+ .lp-thumbnail-delete:hover {
391
+ background: rgba(220, 38, 38, 1);
392
+ }
337
393
  .lp-thumbnail-drag-handle {
338
394
  position: absolute;
339
395
  top: 6px;
@@ -66,25 +66,46 @@
66
66
  </div>`;
67
67
  }
68
68
 
69
- function buildLeftPanel(goal) {
69
+ function buildLeftPanel(goal, slideHtmls, width, height) {
70
70
  const slideCount = goal.slides.length;
71
+ const showDragHandle = slideCount > 1;
72
+ const dragHandleHtml = showDragHandle
73
+ ? '<span class="lp-thumbnail-drag-handle" data-lp-action="drag-handle" aria-hidden="true">' +
74
+ '<svg width="12" height="16" viewBox="0 0 12 16" fill="currentColor" aria-hidden="true">' +
75
+ '<circle cx="2.5" cy="2.5" r="1.5"/>' +
76
+ '<circle cx="9.5" cy="2.5" r="1.5"/>' +
77
+ '<circle cx="2.5" cy="8" r="1.5"/>' +
78
+ '<circle cx="9.5" cy="8" r="1.5"/>' +
79
+ '<circle cx="2.5" cy="13.5" r="1.5"/>' +
80
+ '<circle cx="9.5" cy="13.5" r="1.5"/>' +
81
+ '</svg>' +
82
+ '</span>'
83
+ : '';
84
+ const scale = 156 / width;
71
85
  const thumbnails = goal.slides.map((slide, index) => {
72
86
  const activeClass = index === 0 ? ' active' : '';
73
87
  const title = slide.props && slide.props.title ? String(slide.props.title) : `Slide ${index + 1}`;
74
- return `<div class="lp-thumbnail${activeClass}" tabindex="0" draggable="true" data-slide-index="${index}" data-layout="${slide.layout}">
75
- <div class="lp-thumbnail-drag-handle" aria-hidden="true">⋮⋮</div>
76
- <div class="lp-thumbnail-index">${index + 1} / ${slideCount}</div>
77
- <div class="lp-thumbnail-title">${escapeHtml(title)}</div>
78
- <div class="lp-thumbnail-layout">${slide.layout}</div>
79
- <div class="lp-thumbnail-drop-indicator" data-drop-position="before"></div>
80
- <div class="lp-thumbnail-drop-indicator" data-drop-position="after"></div>
88
+ const slideHtml = slideHtmls[index] || '';
89
+ const draggableAttr = showDragHandle ? 'draggable="true"' : '';
90
+ return `<div class="lp-thumbnail${activeClass}" role="button" tabindex="0" ${draggableAttr} data-index="${index}" data-layout="${slide.layout}" aria-label="幻灯片 ${index + 1},拖动可调整顺序">
91
+ ${dragHandleHtml}
92
+ <div class="lp-thumbnail-render">
93
+ <div class="lp-thumbnail-scaler" style="width:${width}px;height:${height}px;transform:scale(${scale});transform-origin:top left;">${slideHtml}</div>
94
+ </div>
95
+ <div class="lp-thumbnail-scrim"></div>
96
+ <div class="lp-thumbnail-content">
97
+ <div class="lp-thumbnail-index">${index + 1} / ${slideCount}</div>
98
+ <div class="lp-thumbnail-title">${escapeHtml(title)}</div>
99
+ <div class="lp-thumbnail-layout">${escapeHtml(slide.layout)}</div>
100
+ </div>
101
+ <span class="lp-thumbnail-delete" data-lp-action="delete-slide" data-index="${index}" title="删除幻灯片" aria-label="删除幻灯片">×</span>
81
102
  </div>`;
82
103
  }).join('\n');
83
104
  return `<div class="lp-editor-thumbnails" id="lp-thumbnails">${thumbnails}</div>`;
84
105
  }
85
106
 
86
107
  function buildRightPanel() {
87
- return `<div class="lp-property-header">属性面板</div><div class="lp-property-empty">点击左侧缩略图选择幻灯片,然后编辑内容。</div>`;
108
+ return `<div class="lp-property-header">属性面板</div><div class="lp-property-content" id="lp-property-content"><div class="lp-property-empty">点击左侧缩略图选择幻灯片,然后编辑内容。</div></div>`;
88
109
  }
89
110
 
90
111
  function buildAddSlideModal(goal) {
@@ -142,13 +163,19 @@
142
163
  setTimeout(resolve, 100);
143
164
  });
144
165
 
166
+ // 先填充画布,才能从 slide 容器读取真实宽高
167
+ document.getElementById('lp-slides').innerHTML = data.slidesMarkup;
168
+ document.getElementById('lp-total').textContent = String(goal.slides.length);
169
+
170
+ const firstWrapper = document.querySelector('#lp-slides .lp-slide-wrapper');
171
+ const width = firstWrapper ? parseInt(firstWrapper.style.width, 10) || 1280 : 1280;
172
+ const height = firstWrapper ? parseInt(firstWrapper.style.height, 10) || 720 : 720;
173
+
145
174
  // 填充 UI
146
175
  document.getElementById('lp-editor-bar').innerHTML = buildEditorBar(goal, theme, staticMode);
147
- document.getElementById('lp-left-panel').innerHTML = buildLeftPanel(goal);
176
+ document.getElementById('lp-left-panel').innerHTML = buildLeftPanel(goal, data.slideHtmls, width, height);
148
177
  document.getElementById('lp-right-panel').innerHTML = buildRightPanel();
149
178
  document.getElementById('lp-modal').innerHTML = buildAddSlideModal(goal);
150
- document.getElementById('lp-slides').innerHTML = data.slidesMarkup;
151
- document.getElementById('lp-total').textContent = String(goal.slides.length);
152
179
 
153
180
  // 暴露 goal 给 editor-script
154
181
  window.__lemonPPT_goal = goal;