@lemonppt/renderer 0.2.2 → 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": "0.2.2",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -32,9 +32,9 @@
32
32
  "pptxgenjs": "3.12.0",
33
33
  "react": "^18.3.1",
34
34
  "react-dom": "^18.3.1",
35
- "@lemonppt/core": "0.2.2",
36
- "@lemonppt/templates": "0.2.2",
37
- "@lemonppt/themes": "0.2.2"
35
+ "@lemonppt/core": "1.0.1",
36
+ "@lemonppt/templates": "1.0.1",
37
+ "@lemonppt/themes": "1.0.1"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^20.0.0",
@@ -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;