@lemonppt/templates 0.1.6 → 0.1.7

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 (185) hide show
  1. package/dist/base/comparison-v3.d.ts +19 -0
  2. package/dist/base/comparison-v3.d.ts.map +1 -0
  3. package/dist/base/comparison-v3.js +16 -0
  4. package/dist/base/comparison-v3.js.map +1 -0
  5. package/dist/base/comparison-v3.test.d.ts +2 -0
  6. package/dist/base/comparison-v3.test.d.ts.map +1 -0
  7. package/dist/base/comparison-v3.test.js +16 -0
  8. package/dist/base/comparison-v3.test.js.map +1 -0
  9. package/dist/base/content-v4.d.ts +16 -0
  10. package/dist/base/content-v4.d.ts.map +1 -0
  11. package/dist/base/content-v4.js +16 -0
  12. package/dist/base/content-v4.js.map +1 -0
  13. package/dist/base/content-v4.test.d.ts +2 -0
  14. package/dist/base/content-v4.test.d.ts.map +1 -0
  15. package/dist/base/content-v4.test.js +16 -0
  16. package/dist/base/content-v4.test.js.map +1 -0
  17. package/dist/base/cover-v2.d.ts +15 -0
  18. package/dist/base/cover-v2.d.ts.map +1 -0
  19. package/dist/base/cover-v2.js +15 -0
  20. package/dist/base/cover-v2.js.map +1 -0
  21. package/dist/base/cover-v2.test.d.ts +2 -0
  22. package/dist/base/cover-v2.test.d.ts.map +1 -0
  23. package/dist/base/cover-v2.test.js +16 -0
  24. package/dist/base/cover-v2.test.js.map +1 -0
  25. package/dist/base/feature-v2.d.ts +17 -0
  26. package/dist/base/feature-v2.d.ts.map +1 -0
  27. package/dist/base/feature-v2.js +15 -0
  28. package/dist/base/feature-v2.js.map +1 -0
  29. package/dist/base/feature-v2.test.d.ts +2 -0
  30. package/dist/base/feature-v2.test.d.ts.map +1 -0
  31. package/dist/base/feature-v2.test.js +16 -0
  32. package/dist/base/feature-v2.test.js.map +1 -0
  33. package/dist/base/feature-v3.d.ts +17 -0
  34. package/dist/base/feature-v3.d.ts.map +1 -0
  35. package/dist/base/feature-v3.js +16 -0
  36. package/dist/base/feature-v3.js.map +1 -0
  37. package/dist/base/feature-v3.test.d.ts +2 -0
  38. package/dist/base/feature-v3.test.d.ts.map +1 -0
  39. package/dist/base/feature-v3.test.js +16 -0
  40. package/dist/base/feature-v3.test.js.map +1 -0
  41. package/dist/base/gallery-v3.d.ts +16 -0
  42. package/dist/base/gallery-v3.d.ts.map +1 -0
  43. package/dist/base/gallery-v3.js +16 -0
  44. package/dist/base/gallery-v3.js.map +1 -0
  45. package/dist/base/gallery-v3.test.d.ts +2 -0
  46. package/dist/base/gallery-v3.test.d.ts.map +1 -0
  47. package/dist/base/gallery-v3.test.js +16 -0
  48. package/dist/base/gallery-v3.test.js.map +1 -0
  49. package/dist/base/image-v2.d.ts +15 -0
  50. package/dist/base/image-v2.d.ts.map +1 -0
  51. package/dist/base/image-v2.js +15 -0
  52. package/dist/base/image-v2.js.map +1 -0
  53. package/dist/base/image-v2.test.d.ts +2 -0
  54. package/dist/base/image-v2.test.d.ts.map +1 -0
  55. package/dist/base/image-v2.test.js +16 -0
  56. package/dist/base/image-v2.test.js.map +1 -0
  57. package/dist/base/metric-v3.d.ts +18 -0
  58. package/dist/base/metric-v3.d.ts.map +1 -0
  59. package/dist/base/metric-v3.js +15 -0
  60. package/dist/base/metric-v3.js.map +1 -0
  61. package/dist/base/metric-v3.test.d.ts +2 -0
  62. package/dist/base/metric-v3.test.d.ts.map +1 -0
  63. package/dist/base/metric-v3.test.js +16 -0
  64. package/dist/base/metric-v3.test.js.map +1 -0
  65. package/dist/base/pricing-v2.d.ts +19 -0
  66. package/dist/base/pricing-v2.d.ts.map +1 -0
  67. package/dist/base/pricing-v2.js +15 -0
  68. package/dist/base/pricing-v2.js.map +1 -0
  69. package/dist/base/pricing-v2.test.d.ts +2 -0
  70. package/dist/base/pricing-v2.test.d.ts.map +1 -0
  71. package/dist/base/pricing-v2.test.js +16 -0
  72. package/dist/base/pricing-v2.test.js.map +1 -0
  73. package/dist/base/process-v3.d.ts +16 -0
  74. package/dist/base/process-v3.d.ts.map +1 -0
  75. package/dist/base/process-v3.js +16 -0
  76. package/dist/base/process-v3.js.map +1 -0
  77. package/dist/base/process-v3.test.d.ts +2 -0
  78. package/dist/base/process-v3.test.d.ts.map +1 -0
  79. package/dist/base/process-v3.test.js +16 -0
  80. package/dist/base/process-v3.test.js.map +1 -0
  81. package/dist/base/quote-v3.d.ts +14 -0
  82. package/dist/base/quote-v3.d.ts.map +1 -0
  83. package/dist/base/quote-v3.js +15 -0
  84. package/dist/base/quote-v3.js.map +1 -0
  85. package/dist/base/quote-v3.test.d.ts +2 -0
  86. package/dist/base/quote-v3.test.d.ts.map +1 -0
  87. package/dist/base/quote-v3.test.js +16 -0
  88. package/dist/base/quote-v3.test.js.map +1 -0
  89. package/dist/base/roadmap-v2.d.ts +16 -0
  90. package/dist/base/roadmap-v2.d.ts.map +1 -0
  91. package/dist/base/roadmap-v2.js +15 -0
  92. package/dist/base/roadmap-v2.js.map +1 -0
  93. package/dist/base/roadmap-v2.test.d.ts +2 -0
  94. package/dist/base/roadmap-v2.test.d.ts.map +1 -0
  95. package/dist/base/roadmap-v2.test.js +16 -0
  96. package/dist/base/roadmap-v2.test.js.map +1 -0
  97. package/dist/base/stats-v2.d.ts +18 -0
  98. package/dist/base/stats-v2.d.ts.map +1 -0
  99. package/dist/base/stats-v2.js +16 -0
  100. package/dist/base/stats-v2.js.map +1 -0
  101. package/dist/base/stats-v2.test.d.ts +2 -0
  102. package/dist/base/stats-v2.test.d.ts.map +1 -0
  103. package/dist/base/stats-v2.test.js +16 -0
  104. package/dist/base/stats-v2.test.js.map +1 -0
  105. package/dist/base/team-v2.d.ts +18 -0
  106. package/dist/base/team-v2.d.ts.map +1 -0
  107. package/dist/base/team-v2.js +15 -0
  108. package/dist/base/team-v2.js.map +1 -0
  109. package/dist/base/team-v2.test.d.ts +2 -0
  110. package/dist/base/team-v2.test.d.ts.map +1 -0
  111. package/dist/base/team-v2.test.js +16 -0
  112. package/dist/base/team-v2.test.js.map +1 -0
  113. package/dist/base/testimonial-v3.d.ts +17 -0
  114. package/dist/base/testimonial-v3.d.ts.map +1 -0
  115. package/dist/base/testimonial-v3.js +15 -0
  116. package/dist/base/testimonial-v3.js.map +1 -0
  117. package/dist/base/testimonial-v3.test.d.ts +2 -0
  118. package/dist/base/testimonial-v3.test.d.ts.map +1 -0
  119. package/dist/base/testimonial-v3.test.js +16 -0
  120. package/dist/base/testimonial-v3.test.js.map +1 -0
  121. package/dist/base/timeline-v2.d.ts +17 -0
  122. package/dist/base/timeline-v2.d.ts.map +1 -0
  123. package/dist/base/timeline-v2.js +15 -0
  124. package/dist/base/timeline-v2.js.map +1 -0
  125. package/dist/base/timeline-v2.test.d.ts +2 -0
  126. package/dist/base/timeline-v2.test.d.ts.map +1 -0
  127. package/dist/base/timeline-v2.test.js +27 -0
  128. package/dist/base/timeline-v2.test.js.map +1 -0
  129. package/dist/base/timeline-v3.d.ts +17 -0
  130. package/dist/base/timeline-v3.d.ts.map +1 -0
  131. package/dist/base/timeline-v3.js +16 -0
  132. package/dist/base/timeline-v3.js.map +1 -0
  133. package/dist/base/timeline-v3.test.d.ts +2 -0
  134. package/dist/base/timeline-v3.test.d.ts.map +1 -0
  135. package/dist/base/timeline-v3.test.js +16 -0
  136. package/dist/base/timeline-v3.test.js.map +1 -0
  137. package/dist/index.d.ts +22 -0
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +22 -0
  140. package/dist/index.js.map +1 -1
  141. package/dist/registry.d.ts +17 -0
  142. package/dist/registry.d.ts.map +1 -1
  143. package/dist/registry.js +110 -6
  144. package/dist/registry.js.map +1 -1
  145. package/dist/themes/dark-tech/cover-v1.d.ts +15 -0
  146. package/dist/themes/dark-tech/cover-v1.d.ts.map +1 -0
  147. package/dist/themes/dark-tech/cover-v1.js +15 -0
  148. package/dist/themes/dark-tech/cover-v1.js.map +1 -0
  149. package/dist/themes/dark-tech/cover-v1.test.d.ts +2 -0
  150. package/dist/themes/dark-tech/cover-v1.test.d.ts.map +1 -0
  151. package/dist/themes/dark-tech/cover-v1.test.js +17 -0
  152. package/dist/themes/dark-tech/cover-v1.test.js.map +1 -0
  153. package/dist/themes/dark-tech/feature-v1.d.ts +16 -0
  154. package/dist/themes/dark-tech/feature-v1.d.ts.map +1 -0
  155. package/dist/themes/dark-tech/feature-v1.js +15 -0
  156. package/dist/themes/dark-tech/feature-v1.js.map +1 -0
  157. package/dist/themes/dark-tech/feature-v1.test.d.ts +2 -0
  158. package/dist/themes/dark-tech/feature-v1.test.d.ts.map +1 -0
  159. package/dist/themes/dark-tech/feature-v1.test.js +23 -0
  160. package/dist/themes/dark-tech/feature-v1.test.js.map +1 -0
  161. package/dist/themes/dark-tech/metric-v1.d.ts +14 -0
  162. package/dist/themes/dark-tech/metric-v1.d.ts.map +1 -0
  163. package/dist/themes/dark-tech/metric-v1.js +15 -0
  164. package/dist/themes/dark-tech/metric-v1.js.map +1 -0
  165. package/dist/themes/dark-tech/metric-v1.test.d.ts +2 -0
  166. package/dist/themes/dark-tech/metric-v1.test.d.ts.map +1 -0
  167. package/dist/themes/dark-tech/metric-v1.test.js +22 -0
  168. package/dist/themes/dark-tech/metric-v1.test.js.map +1 -0
  169. package/dist/themes/warm-business/testimonial-v1.d.ts +15 -0
  170. package/dist/themes/warm-business/testimonial-v1.d.ts.map +1 -0
  171. package/dist/themes/warm-business/testimonial-v1.js +15 -0
  172. package/dist/themes/warm-business/testimonial-v1.js.map +1 -0
  173. package/dist/themes/warm-business/testimonial-v1.test.d.ts +2 -0
  174. package/dist/themes/warm-business/testimonial-v1.test.d.ts.map +1 -0
  175. package/dist/themes/warm-business/testimonial-v1.test.js +22 -0
  176. package/dist/themes/warm-business/testimonial-v1.test.js.map +1 -0
  177. package/dist/themes/warm-business/timeline-v1.d.ts +17 -0
  178. package/dist/themes/warm-business/timeline-v1.d.ts.map +1 -0
  179. package/dist/themes/warm-business/timeline-v1.js +15 -0
  180. package/dist/themes/warm-business/timeline-v1.js.map +1 -0
  181. package/dist/themes/warm-business/timeline-v1.test.d.ts +2 -0
  182. package/dist/themes/warm-business/timeline-v1.test.d.ts.map +1 -0
  183. package/dist/themes/warm-business/timeline-v1.test.js +23 -0
  184. package/dist/themes/warm-business/timeline-v1.test.js.map +1 -0
  185. package/package.json +3 -3
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EditableField } from '../editable-field.js';
3
+ export const timelineV2Meta = {
4
+ id: 'timeline_v2',
5
+ theme: 'base',
6
+ role: 'timeline',
7
+ displayName: '垂直时间线',
8
+ description: '垂直时间线展示关键里程碑,适合发展历程、项目节点',
9
+ needsMedia: false,
10
+ };
11
+ export function TimelineV2(props) {
12
+ const { kicker, title, milestones = [], _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-timeline-v2", children: [_jsxs("div", { className: "lp-timeline-v2-header", children: [kicker && (_jsx(EditableField, { prop: "kicker", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-kicker", children: kicker })), _jsx(EditableField, { prop: "title", slideIdx: _slideIdx, editable: _editable, as: "h2", className: "lp-heading", children: title })] }), _jsx("div", { className: "lp-timeline-v2-list", children: milestones.map((milestone, index) => (_jsxs("div", { className: "lp-timeline-v2-item", children: [_jsxs("div", { className: "lp-timeline-v2-marker", children: [_jsx("div", { className: "lp-timeline-v2-dot" }), index < milestones.length - 1 && _jsx("div", { className: "lp-timeline-v2-line" })] }), _jsxs("div", { className: "lp-timeline-v2-body", children: [_jsx(EditableField, { prop: `milestones.${index}.date`, slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-timeline-v2-date", children: milestone.date }), _jsx(EditableField, { prop: `milestones.${index}.title`, slideIdx: _slideIdx, editable: _editable, as: "h3", className: "lp-timeline-v2-title", children: milestone.title }), milestone.description && (_jsx(EditableField, { prop: `milestones.${index}.description`, slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-timeline-v2-description", children: milestone.description }))] })] }, index))) })] }));
14
+ }
15
+ //# sourceMappingURL=timeline-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v2.js","sourceRoot":"","sources":["../../src/base/timeline-v2.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,0BAA0B;IACvC,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEvE,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,uBAAuB,aACnC,MAAM,IAAI,CACT,KAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,WAAW,YAClG,MAAM,GACO,CACjB,EACD,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,YAAY,YACjG,KAAK,GACQ,IACZ,EACN,cAAK,SAAS,EAAC,qBAAqB,YACjC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,eAAiB,SAAS,EAAC,qBAAqB,aAC9C,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,oBAAoB,GAAG,EACrC,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,cAAK,SAAS,EAAC,qBAAqB,GAAG,IACrE,EACN,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,aAAa,IACZ,IAAI,EAAE,cAAc,KAAK,OAAO,EAChC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,qBAAqB,YAE9B,SAAS,CAAC,IAAI,GACD,EAChB,KAAC,aAAa,IACZ,IAAI,EAAE,cAAc,KAAK,QAAQ,EACjC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,IAAI,EACP,SAAS,EAAC,sBAAsB,YAE/B,SAAS,CAAC,KAAK,GACF,EACf,SAAS,CAAC,WAAW,IAAI,CACxB,KAAC,aAAa,IACZ,IAAI,EAAE,cAAc,KAAK,cAAc,EACvC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,GAAG,EACN,SAAS,EAAC,4BAA4B,YAErC,SAAS,CAAC,WAAW,GACR,CACjB,IACG,KAnCE,KAAK,CAoCT,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=timeline-v2.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v2.test.d.ts","sourceRoot":"","sources":["../../src/base/timeline-v2.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ // lemonPPT - AI-powered presentation generation
2
+ // Copyright (c) 2026 lemonforme
3
+ // SPDX-License-Identifier: AGPL-3.0-or-later
4
+ import { describe, expect, it } from 'vitest';
5
+ import { TimelineV2, timelineV2Meta } from './timeline-v2.js';
6
+ describe('timeline_v2', () => {
7
+ it('should have correct meta', () => {
8
+ expect(timelineV2Meta.id).toBe('timeline_v2');
9
+ expect(timelineV2Meta.role).toBe('timeline');
10
+ });
11
+ it('should render with title and milestones', () => {
12
+ const result = TimelineV2({
13
+ title: '项目里程碑',
14
+ kicker: '发展历程',
15
+ milestones: [
16
+ { date: '2026 Q1', title: '立项', description: '确定产品方向' },
17
+ { date: '2026 Q2', title: 'MVP', description: '完成核心功能' },
18
+ ],
19
+ });
20
+ expect(result).toBeDefined();
21
+ });
22
+ it('should render without milestones', () => {
23
+ const result = TimelineV2({ title: '空时间线' });
24
+ expect(result).toBeDefined();
25
+ });
26
+ });
27
+ //# sourceMappingURL=timeline-v2.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v2.test.js","sourceRoot":"","sources":["../../src/base/timeline-v2.test.tsx"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,gCAAgC;AAChC,6CAA6C;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,MAAM;YACd,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE;gBACvD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;aACzD;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface TimelineV3Props {
4
+ kicker?: string;
5
+ title: string;
6
+ events?: {
7
+ date?: string;
8
+ title?: string;
9
+ description?: string;
10
+ }[];
11
+ _slideIdx?: number;
12
+ _editable?: boolean;
13
+ [key: string]: unknown;
14
+ }
15
+ export declare const timelineV3Meta: LayoutMeta;
16
+ export declare function TimelineV3(props: TimelineV3Props): ReactNode;
17
+ //# sourceMappingURL=timeline-v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v3.d.ts","sourceRoot":"","sources":["../../src/base/timeline-v3.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,EAAE,UAO5B,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CAyD5D"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EditableField } from '../editable-field.js';
3
+ export const timelineV3Meta = {
4
+ id: 'timeline_v3',
5
+ theme: 'base',
6
+ role: 'timeline',
7
+ displayName: '垂直时间线',
8
+ description: '左侧节点时间线加右侧事件卡片',
9
+ needsMedia: false,
10
+ };
11
+ export function TimelineV3(props) {
12
+ const { kicker, title, events = [], _slideIdx, _editable } = props;
13
+ const safeEvents = events.slice(0, 4);
14
+ return (_jsxs("div", { className: "lp-slide lp-timeline-v3", children: [_jsxs("div", { className: "lp-timeline-v3-header", children: [kicker && (_jsx(EditableField, { prop: "kicker", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-kicker", children: kicker })), _jsx(EditableField, { prop: "title", slideIdx: _slideIdx, editable: _editable, as: "h2", className: "lp-heading lp-timeline-v3-title", children: title })] }), _jsx("div", { className: "lp-timeline-v3-list", children: safeEvents.map((event, index) => (_jsxs("div", { className: "lp-timeline-v3-event", children: [_jsxs("div", { className: "lp-timeline-v3-node", children: [_jsx("div", { className: "lp-timeline-v3-dot" }), index < safeEvents.length - 1 && _jsx("div", { className: "lp-timeline-v3-line" })] }), _jsxs("div", { className: "lp-timeline-v3-card", children: [_jsx(EditableField, { prop: `events.${index}.date`, slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-timeline-v3-date", children: event.date }), _jsx(EditableField, { prop: `events.${index}.title`, slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-timeline-v3-event-title", children: event.title }), _jsx(EditableField, { prop: `events.${index}.description`, slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-timeline-v3-event-desc", children: event.description })] })] }, index))) })] }));
15
+ }
16
+ //# sourceMappingURL=timeline-v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v3.js","sourceRoot":"","sources":["../../src/base/timeline-v3.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtC,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,uBAAuB,aACnC,MAAM,IAAI,CACT,KAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,WAAW,YAClG,MAAM,GACO,CACjB,EACD,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,iCAAiC,YACtH,KAAK,GACQ,IACZ,EACN,cAAK,SAAS,EAAC,qBAAqB,YACjC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,eAAiB,SAAS,EAAC,sBAAsB,aAC/C,eAAK,SAAS,EAAC,qBAAqB,aAClC,cAAK,SAAS,EAAC,oBAAoB,GAAG,EACrC,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,cAAK,SAAS,EAAC,qBAAqB,GAAG,IACrE,EACN,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,aAAa,IACZ,IAAI,EAAE,UAAU,KAAK,OAAO,EAC5B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,qBAAqB,YAE9B,KAAK,CAAC,IAAI,GACG,EAChB,KAAC,aAAa,IACZ,IAAI,EAAE,UAAU,KAAK,QAAQ,EAC7B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,4BAA4B,YAErC,KAAK,CAAC,KAAK,GACE,EAChB,KAAC,aAAa,IACZ,IAAI,EAAE,UAAU,KAAK,cAAc,EACnC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,GAAG,EACN,SAAS,EAAC,2BAA2B,YAEpC,KAAK,CAAC,WAAW,GACJ,IACZ,KAjCE,KAAK,CAkCT,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=timeline-v3.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v3.test.d.ts","sourceRoot":"","sources":["../../src/base/timeline-v3.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ // lemonPPT - AI-powered presentation generation
2
+ // Copyright (c) 2026 lemonforme
3
+ // SPDX-License-Identifier: AGPL-3.0-or-later
4
+ import { describe, expect, it } from 'vitest';
5
+ import { TimelineV3, timelineV3Meta } from './timeline-v3.js';
6
+ describe('timeline_v3', () => {
7
+ it('should have correct meta', () => {
8
+ expect(timelineV3Meta.id).toBe('timeline_v3');
9
+ expect(timelineV3Meta.role).toBe('timeline');
10
+ });
11
+ it('should render with title', () => {
12
+ const result = TimelineV3({ title: '测试标题', kicker: '标签' });
13
+ expect(result).toBeDefined();
14
+ });
15
+ });
16
+ //# sourceMappingURL=timeline-v3.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v3.test.js","sourceRoot":"","sources":["../../src/base/timeline-v3.test.tsx"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,gCAAgC;AAChC,6CAA6C;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -32,4 +32,26 @@ export * from './base/partners-v1.js';
32
32
  export * from './base/testimonial-v1.js';
33
33
  export * from './base/testimonial-v2.js';
34
34
  export * from './base/roadmap-v1.js';
35
+ export * from './base/timeline-v2.js';
36
+ export * from './base/roadmap-v2.js';
37
+ export * from './base/pricing-v2.js';
38
+ export * from './base/feature-v2.js';
39
+ export * from './base/team-v2.js';
40
+ export * from './base/metric-v3.js';
41
+ export * from './base/cover-v2.js';
42
+ export * from './base/content-v4.js';
43
+ export * from './base/stats-v2.js';
44
+ export * from './base/image-v2.js';
45
+ export * from './base/quote-v3.js';
46
+ export * from './base/process-v3.js';
47
+ export * from './base/feature-v3.js';
48
+ export * from './base/gallery-v3.js';
49
+ export * from './base/testimonial-v3.js';
50
+ export * from './base/comparison-v3.js';
51
+ export * from './base/timeline-v3.js';
52
+ export * from './themes/dark-tech/cover-v1.js';
53
+ export * from './themes/dark-tech/feature-v1.js';
54
+ export * from './themes/dark-tech/metric-v1.js';
55
+ export * from './themes/warm-business/timeline-v1.js';
56
+ export * from './themes/warm-business/testimonial-v1.js';
35
57
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC"}
package/dist/index.js CHANGED
@@ -35,4 +35,26 @@ export * from './base/partners-v1.js';
35
35
  export * from './base/testimonial-v1.js';
36
36
  export * from './base/testimonial-v2.js';
37
37
  export * from './base/roadmap-v1.js';
38
+ export * from './base/timeline-v2.js';
39
+ export * from './base/roadmap-v2.js';
40
+ export * from './base/pricing-v2.js';
41
+ export * from './base/feature-v2.js';
42
+ export * from './base/team-v2.js';
43
+ export * from './base/metric-v3.js';
44
+ export * from './base/cover-v2.js';
45
+ export * from './base/content-v4.js';
46
+ export * from './base/stats-v2.js';
47
+ export * from './base/image-v2.js';
48
+ export * from './base/quote-v3.js';
49
+ export * from './base/process-v3.js';
50
+ export * from './base/feature-v3.js';
51
+ export * from './base/gallery-v3.js';
52
+ export * from './base/testimonial-v3.js';
53
+ export * from './base/comparison-v3.js';
54
+ export * from './base/timeline-v3.js';
55
+ export * from './themes/dark-tech/cover-v1.js';
56
+ export * from './themes/dark-tech/feature-v1.js';
57
+ export * from './themes/dark-tech/metric-v1.js';
58
+ export * from './themes/warm-business/timeline-v1.js';
59
+ export * from './themes/warm-business/testimonial-v1.js';
38
60
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,gCAAgC;AAChC,6CAA6C;AAE7C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,gCAAgC;AAChC,6CAA6C;AAE7C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC"}
@@ -4,14 +4,31 @@ export interface RegisteredLayout<P extends Record<string, unknown>> {
4
4
  meta: LayoutMeta;
5
5
  component: ComponentType<P>;
6
6
  }
7
+ /** 通用共享版式的主题标识;旧版式中仍可能使用 'base',两者等价。 */
8
+ export declare const UNIVERSAL_THEME = "*";
9
+ /** 与 UNIVERSAL_THEME 等价的历史主题标识,用于兼容旧版式。 */
10
+ export declare const LEGACY_UNIVERSAL_THEME = "base";
11
+ export declare function normalizeUniversalTheme(theme: string): string;
7
12
  export declare function registerLayout<P extends Record<string, unknown>>(layout: RegisteredLayout<P>): void;
8
13
  export declare function getLayout(id: string): RegisteredLayout<Record<string, unknown>> | undefined;
14
+ /**
15
+ * 根据页面角色和主题解析最合适的版式。
16
+ * 优先返回主题专属变体,找不到则返回通用共享版式。
17
+ */
18
+ export declare function resolveLayout(role: string, theme?: string): RegisteredLayout<Record<string, unknown>> | undefined;
9
19
  export declare function listLayouts(): LayoutMeta[];
10
20
  export declare function listLayoutsByTheme(theme: string): LayoutMeta[];
11
21
  export declare function listLayoutsByRole(role: LayoutMeta['role']): LayoutMeta[];
22
+ /**
23
+ * 返回指定角色在指定主题下可用的版式元数据。
24
+ * 包含主题专属变体与通用共享版式。
25
+ */
26
+ export declare function listLayoutsByRoleAndTheme(role: LayoutMeta['role'], theme?: string): LayoutMeta[];
12
27
  export interface RenderSlideOptions {
13
28
  slideIdx?: number;
14
29
  editable?: boolean;
30
+ /** 当前 deck 主题,用于未来支持主题专属渲染回退。 */
31
+ theme?: string;
15
32
  }
16
33
  export declare function renderSlide(slide: Slide, options?: RenderSlideOptions): ReactElement | null;
17
34
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAmCzD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC7B;AAID,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC1B,IAAI,CAEN;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAE3F;AAED,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAE1C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAE9D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAExE;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,kBAAuB,GAAG,YAAY,GAAG,IAAI,CAO/F"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAkBxD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAgDzD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED,yCAAyC;AACzC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,2CAA2C;AAC3C,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAE7C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAQD,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC1B,IAAI,CAUN;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAE3F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAejH;AAED,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAE1C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAM9D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAExE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAShG;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,kBAAuB,GAAG,YAAY,GAAG,IAAI,CAO/F"}
package/dist/registry.js CHANGED
@@ -1,4 +1,21 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TimelineV3, timelineV3Meta } from './base/timeline-v3.js';
3
+ import { ComparisonV3, comparisonV3Meta } from './base/comparison-v3.js';
4
+ import { TestimonialV3, testimonialV3Meta } from './base/testimonial-v3.js';
5
+ import { GalleryV3, galleryV3Meta } from './base/gallery-v3.js';
6
+ import { FeatureV3, featureV3Meta } from './base/feature-v3.js';
7
+ import { ProcessV3, processV3Meta } from './base/process-v3.js';
8
+ import { QuoteV3, quoteV3Meta } from './base/quote-v3.js';
9
+ import { ImageV2, imageV2Meta } from './base/image-v2.js';
10
+ import { StatsV2, statsV2Meta } from './base/stats-v2.js';
11
+ import { ContentV4, contentV4Meta } from './base/content-v4.js';
12
+ import { CoverV2, coverV2Meta } from './base/cover-v2.js';
13
+ import { MetricV3, metricV3Meta } from './base/metric-v3.js';
14
+ import { TeamV2, teamV2Meta } from './base/team-v2.js';
15
+ import { FeatureV2, featureV2Meta } from './base/feature-v2.js';
16
+ import { PricingV2, pricingV2Meta } from './base/pricing-v2.js';
17
+ import { RoadmapV2, roadmapV2Meta } from './base/roadmap-v2.js';
18
+ import { TimelineV2, timelineV2Meta } from './base/timeline-v2.js';
2
19
  import { ClosingV1, closingV1Meta } from './base/closing-v1.js';
3
20
  import { ClosingV2, closingV2Meta } from './base/closing-v2.js';
4
21
  import { ChartV1, chartV1Meta } from './base/chart-v1.js';
@@ -32,24 +49,82 @@ import { QuoteV1, quoteV1Meta } from './base/quote-v1.js';
32
49
  import { QuoteV2, quoteV2Meta } from './base/quote-v2.js';
33
50
  import { SwotV1, swotV1Meta } from './base/swot-v1.js';
34
51
  import { TableOfContentsV1, tableOfContentsV1Meta } from './base/table-of-contents-v1.js';
35
- const registry = new Map();
52
+ import { DarkTechCoverV1, darkTechCoverV1Meta } from './themes/dark-tech/cover-v1.js';
53
+ import { DarkTechFeatureV1, darkTechFeatureV1Meta } from './themes/dark-tech/feature-v1.js';
54
+ import { DarkTechMetricV1, darkTechMetricV1Meta } from './themes/dark-tech/metric-v1.js';
55
+ import { WarmBusinessTimelineV1, warmBusinessTimelineV1Meta, } from './themes/warm-business/timeline-v1.js';
56
+ import { WarmBusinessTestimonialV1, warmBusinessTestimonialV1Meta, } from './themes/warm-business/testimonial-v1.js';
57
+ /** 通用共享版式的主题标识;旧版式中仍可能使用 'base',两者等价。 */
58
+ export const UNIVERSAL_THEME = '*';
59
+ /** 与 UNIVERSAL_THEME 等价的历史主题标识,用于兼容旧版式。 */
60
+ export const LEGACY_UNIVERSAL_THEME = 'base';
61
+ export function normalizeUniversalTheme(theme) {
62
+ return theme === LEGACY_UNIVERSAL_THEME ? UNIVERSAL_THEME : theme;
63
+ }
64
+ /** 按版式 ID 索引,保持向后兼容。 */
65
+ const registryById = new Map();
66
+ /** 按 (role, theme) 二维索引,支持主题专属变体。 */
67
+ const registryByRoleTheme = new Map();
36
68
  export function registerLayout(layout) {
37
- registry.set(layout.meta.id, layout);
69
+ const normalized = layout;
70
+ registryById.set(normalized.meta.id, normalized);
71
+ const role = normalized.meta.role;
72
+ const theme = normalizeUniversalTheme(normalized.meta.theme);
73
+ if (!registryByRoleTheme.has(role)) {
74
+ registryByRoleTheme.set(role, new Map());
75
+ }
76
+ registryByRoleTheme.get(role).set(theme, normalized);
38
77
  }
39
78
  export function getLayout(id) {
40
- return registry.get(id);
79
+ return registryById.get(id);
80
+ }
81
+ /**
82
+ * 根据页面角色和主题解析最合适的版式。
83
+ * 优先返回主题专属变体,找不到则返回通用共享版式。
84
+ */
85
+ export function resolveLayout(role, theme) {
86
+ const byTheme = registryByRoleTheme.get(role);
87
+ if (!byTheme) {
88
+ return undefined;
89
+ }
90
+ if (theme) {
91
+ const normalized = normalizeUniversalTheme(theme);
92
+ const exact = byTheme.get(normalized);
93
+ if (exact) {
94
+ return exact;
95
+ }
96
+ }
97
+ return byTheme.get(UNIVERSAL_THEME) ?? byTheme.get(LEGACY_UNIVERSAL_THEME);
41
98
  }
42
99
  export function listLayouts() {
43
- return Array.from(registry.values()).map((l) => l.meta);
100
+ return Array.from(registryById.values()).map((l) => l.meta);
44
101
  }
45
102
  export function listLayoutsByTheme(theme) {
46
- return listLayouts().filter((l) => l.theme === theme);
103
+ const normalized = normalizeUniversalTheme(theme);
104
+ return listLayouts().filter((l) => {
105
+ const layoutTheme = normalizeUniversalTheme(l.theme);
106
+ return layoutTheme === normalized;
107
+ });
47
108
  }
48
109
  export function listLayoutsByRole(role) {
49
110
  return listLayouts().filter((l) => l.role === role);
50
111
  }
112
+ /**
113
+ * 返回指定角色在指定主题下可用的版式元数据。
114
+ * 包含主题专属变体与通用共享版式。
115
+ */
116
+ export function listLayoutsByRoleAndTheme(role, theme) {
117
+ const normalized = theme ? normalizeUniversalTheme(theme) : UNIVERSAL_THEME;
118
+ return listLayouts().filter((l) => {
119
+ if (l.role !== role) {
120
+ return false;
121
+ }
122
+ const layoutTheme = normalizeUniversalTheme(l.theme);
123
+ return layoutTheme === normalized || layoutTheme === UNIVERSAL_THEME;
124
+ });
125
+ }
51
126
  export function renderSlide(slide, options = {}) {
52
- const registered = getLayout(slide.layout);
127
+ const registered = getLayout(slide.layout) ?? resolveLayout(slide.role, options.theme);
53
128
  if (!registered) {
54
129
  return null;
55
130
  }
@@ -57,6 +132,23 @@ export function renderSlide(slide, options = {}) {
57
132
  return _jsx(Component, { ...slide.props, _slideIdx: options.slideIdx, _editable: options.editable });
58
133
  }
59
134
  // 注册内置版式
135
+ registerLayout({ meta: timelineV3Meta, component: TimelineV3 });
136
+ registerLayout({ meta: comparisonV3Meta, component: ComparisonV3 });
137
+ registerLayout({ meta: testimonialV3Meta, component: TestimonialV3 });
138
+ registerLayout({ meta: galleryV3Meta, component: GalleryV3 });
139
+ registerLayout({ meta: featureV3Meta, component: FeatureV3 });
140
+ registerLayout({ meta: processV3Meta, component: ProcessV3 });
141
+ registerLayout({ meta: quoteV3Meta, component: QuoteV3 });
142
+ registerLayout({ meta: imageV2Meta, component: ImageV2 });
143
+ registerLayout({ meta: statsV2Meta, component: StatsV2 });
144
+ registerLayout({ meta: contentV4Meta, component: ContentV4 });
145
+ registerLayout({ meta: coverV2Meta, component: CoverV2 });
146
+ registerLayout({ meta: metricV3Meta, component: MetricV3 });
147
+ registerLayout({ meta: teamV2Meta, component: TeamV2 });
148
+ registerLayout({ meta: featureV2Meta, component: FeatureV2 });
149
+ registerLayout({ meta: pricingV2Meta, component: PricingV2 });
150
+ registerLayout({ meta: roadmapV2Meta, component: RoadmapV2 });
151
+ registerLayout({ meta: timelineV2Meta, component: TimelineV2 });
60
152
  registerLayout({ meta: coverV1Meta, component: CoverV1 });
61
153
  registerLayout({ meta: metricV1Meta, component: MetricV1 });
62
154
  registerLayout({ meta: metricV2Meta, component: MetricV2 });
@@ -90,4 +182,16 @@ registerLayout({ meta: closingV1Meta, component: ClosingV1 });
90
182
  registerLayout({ meta: closingV2Meta, component: ClosingV2 });
91
183
  registerLayout({ meta: swotV1Meta, component: SwotV1 });
92
184
  registerLayout({ meta: pestV1Meta, component: PestV1 });
185
+ // 主题专属变体(阶段 3)
186
+ registerLayout({ meta: darkTechCoverV1Meta, component: DarkTechCoverV1 });
187
+ registerLayout({ meta: darkTechFeatureV1Meta, component: DarkTechFeatureV1 });
188
+ registerLayout({ meta: darkTechMetricV1Meta, component: DarkTechMetricV1 });
189
+ registerLayout({
190
+ meta: warmBusinessTimelineV1Meta,
191
+ component: WarmBusinessTimelineV1,
192
+ });
193
+ registerLayout({
194
+ meta: warmBusinessTestimonialV1Meta,
195
+ component: WarmBusinessTestimonialV1,
196
+ });
93
197
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAA0B,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAA0B,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAA2B,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAA2B,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAA+B,MAAM,gCAAgC,CAAC;AAOvH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqD,CAAC;AAE9E,MAAM,UAAU,cAAc,CAC5B,MAA2B;IAE3B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAmD,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC;AAOD,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,UAA8B,EAAE;IACxE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,OAAO,KAAC,SAAS,OAAK,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,GAAI,CAAC;AAClG,CAAC;AAED,SAAS;AACT,cAAc,CAAe,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,cAAc,CAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3E,cAAc,CAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3E,cAAc,CAAyB,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACtG,cAAc,CAAe,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,cAAc,CAAe,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,cAAc,CAAoB,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AACvF,cAAc,CAAoB,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AACvF,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAe,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,cAAc,CAAe,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAe,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,cAAc,CAAc,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACjF,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAe,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,cAAc,CAAe,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAa,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,cAAc,CAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACjF,cAAc,CAAqB,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;AAC1F,cAAc,CAAqB,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;AAC1F,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,cAAc,CAAc,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,cAAc,CAAc,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface DarkTechCoverV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ subtitle?: string;
7
+ date?: string;
8
+ image?: string;
9
+ _slideIdx?: number;
10
+ _editable?: boolean;
11
+ [key: string]: unknown;
12
+ }
13
+ export declare const darkTechCoverV1Meta: LayoutMeta;
14
+ export declare function DarkTechCoverV1(props: DarkTechCoverV1Props): ReactNode;
15
+ //# sourceMappingURL=cover-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cover-v1.d.ts","sourceRoot":"","sources":["../../../src/themes/dark-tech/cover-v1.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,UAOjC,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,SAAS,CAuCtE"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EditableField } from '../../editable-field.js';
3
+ export const darkTechCoverV1Meta = {
4
+ id: 'dark_tech_cover_v1',
5
+ theme: 'dark-tech',
6
+ role: 'cover',
7
+ displayName: '深色科技封面',
8
+ description: '科技网格背景 + 霓虹标题',
9
+ needsMedia: true,
10
+ };
11
+ export function DarkTechCoverV1(props) {
12
+ const { kicker, title, subtitle, date, image, _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-dark-tech-cover-v1", children: [_jsx("div", { className: "lp-dark-tech-cover-grid", "aria-hidden": "true" }), _jsx("div", { className: "lp-dark-tech-cover-glow", "aria-hidden": "true" }), image && (_jsx("img", { className: "lp-dark-tech-cover-image", src: image, alt: "", "data-lp-editable-image": "true", "data-lp-slide-idx": _slideIdx, "data-lp-prop": "image" })), _jsxs("div", { className: "lp-dark-tech-cover-content", children: [kicker && (_jsx(EditableField, { prop: "kicker", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-dark-tech-cover-kicker", children: kicker })), _jsx(EditableField, { prop: "title", slideIdx: _slideIdx, editable: _editable, as: "h1", className: "lp-dark-tech-cover-title", children: title }), subtitle && (_jsx(EditableField, { prop: "subtitle", slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-dark-tech-cover-subtitle", children: subtitle })), date && (_jsx(EditableField, { prop: "date", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-dark-tech-cover-date", children: date }))] })] }));
14
+ }
15
+ //# sourceMappingURL=cover-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cover-v1.js","sourceRoot":"","sources":["../../../src/themes/dark-tech/cover-v1.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAaxD,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,EAAE,EAAE,oBAAoB;IACxB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE7E,OAAO,CACL,eAAK,SAAS,EAAC,gCAAgC,aAC7C,cAAK,SAAS,EAAC,yBAAyB,iBAAa,MAAM,GAAG,EAC9D,cAAK,SAAS,EAAC,yBAAyB,iBAAa,MAAM,GAAG,EAC7D,KAAK,IAAI,CACR,cACE,SAAS,EAAC,0BAA0B,EACpC,GAAG,EAAE,KAAK,EACV,GAAG,EAAC,EAAE,4BACiB,MAAM,uBACV,SAAS,kBACf,OAAO,GACpB,CACH,EACD,eAAK,SAAS,EAAC,4BAA4B,aACxC,MAAM,IAAI,CACT,KAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,2BAA2B,YAClH,MAAM,GACO,CACjB,EACD,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,0BAA0B,YAC/G,KAAK,GACQ,EACf,QAAQ,IAAI,CACX,KAAC,aAAa,IAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,GAAG,EAAC,SAAS,EAAC,6BAA6B,YACpH,QAAQ,GACK,CACjB,EACA,IAAI,IAAI,CACP,KAAC,aAAa,IAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,yBAAyB,YAC9G,IAAI,GACS,CACjB,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cover-v1.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cover-v1.test.d.ts","sourceRoot":"","sources":["../../../src/themes/dark-tech/cover-v1.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ // lemonPPT - AI-powered presentation generation
2
+ // Copyright (c) 2026 lemonforme
3
+ // SPDX-License-Identifier: AGPL-3.0-or-later
4
+ import { describe, expect, it } from 'vitest';
5
+ import { DarkTechCoverV1, darkTechCoverV1Meta } from './cover-v1.js';
6
+ describe('dark_tech_cover_v1', () => {
7
+ it('should have correct meta', () => {
8
+ expect(darkTechCoverV1Meta.id).toBe('dark_tech_cover_v1');
9
+ expect(darkTechCoverV1Meta.role).toBe('cover');
10
+ expect(darkTechCoverV1Meta.theme).toBe('dark-tech');
11
+ });
12
+ it('should render with title', () => {
13
+ const result = DarkTechCoverV1({ title: '测试标题', kicker: '标签' });
14
+ expect(result).toBeDefined();
15
+ });
16
+ });
17
+ //# sourceMappingURL=cover-v1.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cover-v1.test.js","sourceRoot":"","sources":["../../../src/themes/dark-tech/cover-v1.test.tsx"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,gCAAgC;AAChC,6CAA6C;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAErE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC1D,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface DarkTechFeatureV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ features?: {
7
+ title?: string;
8
+ description?: string;
9
+ }[];
10
+ _slideIdx?: number;
11
+ _editable?: boolean;
12
+ [key: string]: unknown;
13
+ }
14
+ export declare const darkTechFeatureV1Meta: LayoutMeta;
15
+ export declare function DarkTechFeatureV1(props: DarkTechFeatureV1Props): ReactNode;
16
+ //# sourceMappingURL=feature-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-v1.d.ts","sourceRoot":"","sources":["../../../src/themes/dark-tech/feature-v1.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,UAOnC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,CA8C1E"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EditableField } from '../../editable-field.js';
3
+ export const darkTechFeatureV1Meta = {
4
+ id: 'dark_tech_feature_v1',
5
+ theme: 'dark-tech',
6
+ role: 'feature',
7
+ displayName: '深色科技特性',
8
+ description: '霓虹边框卡片 + 科技网格背景',
9
+ needsMedia: false,
10
+ };
11
+ export function DarkTechFeatureV1(props) {
12
+ const { kicker, title, features = [], _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-dark-tech-feature-v1", children: [_jsx("div", { className: "lp-dark-tech-feature-grid", "aria-hidden": "true" }), _jsx("div", { className: "lp-dark-tech-feature-glow", "aria-hidden": "true" }), _jsxs("div", { className: "lp-dark-tech-feature-header", children: [kicker && (_jsx(EditableField, { prop: "kicker", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-dark-tech-feature-kicker", children: kicker })), _jsx(EditableField, { prop: "title", slideIdx: _slideIdx, editable: _editable, as: "h2", className: "lp-dark-tech-feature-title", children: title })] }), _jsx("div", { className: "lp-dark-tech-feature-grid-cards", children: features.map((feature, index) => (_jsxs("div", { className: "lp-dark-tech-feature-card", children: [_jsx("div", { className: "lp-dark-tech-feature-number", children: String(index + 1).padStart(2, '0') }), _jsx(EditableField, { prop: `features.${index}.title`, slideIdx: _slideIdx, editable: _editable, as: "h3", className: "lp-dark-tech-feature-card-title", children: feature.title }), feature.description && (_jsx(EditableField, { prop: `features.${index}.description`, slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-dark-tech-feature-card-description", children: feature.description }))] }, index))) })] }));
14
+ }
15
+ //# sourceMappingURL=feature-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-v1.js","sourceRoot":"","sources":["../../../src/themes/dark-tech/feature-v1.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAWxD,MAAM,CAAC,MAAM,qBAAqB,GAAe;IAC/C,EAAE,EAAE,sBAAsB;IAC1B,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,iBAAiB;IAC9B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAErE,OAAO,CACL,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,2BAA2B,iBAAa,MAAM,GAAG,EAChE,cAAK,SAAS,EAAC,2BAA2B,iBAAa,MAAM,GAAG,EAChE,eAAK,SAAS,EAAC,6BAA6B,aACzC,MAAM,IAAI,CACT,KAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,6BAA6B,YACpH,MAAM,GACO,CACjB,EACD,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,4BAA4B,YACjH,KAAK,GACQ,IACZ,EACN,cAAK,SAAS,EAAC,iCAAiC,YAC7C,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,eAAiB,SAAS,EAAC,2BAA2B,aACpD,cAAK,SAAS,EAAC,6BAA6B,YAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAO,EACvF,KAAC,aAAa,IACZ,IAAI,EAAE,YAAY,KAAK,QAAQ,EAC/B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,IAAI,EACP,SAAS,EAAC,iCAAiC,YAE1C,OAAO,CAAC,KAAK,GACA,EACf,OAAO,CAAC,WAAW,IAAI,CACtB,KAAC,aAAa,IACZ,IAAI,EAAE,YAAY,KAAK,cAAc,EACrC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,GAAG,EACN,SAAS,EAAC,uCAAuC,YAEhD,OAAO,CAAC,WAAW,GACN,CACjB,KArBO,KAAK,CAsBT,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=feature-v1.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-v1.test.d.ts","sourceRoot":"","sources":["../../../src/themes/dark-tech/feature-v1.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ // lemonPPT - AI-powered presentation generation
2
+ // Copyright (c) 2026 lemonforme
3
+ // SPDX-License-Identifier: AGPL-3.0-or-later
4
+ import { describe, expect, it } from 'vitest';
5
+ import { DarkTechFeatureV1, darkTechFeatureV1Meta } from './feature-v1.js';
6
+ describe('dark_tech_feature_v1', () => {
7
+ it('should have correct meta', () => {
8
+ expect(darkTechFeatureV1Meta.id).toBe('dark_tech_feature_v1');
9
+ expect(darkTechFeatureV1Meta.role).toBe('feature');
10
+ expect(darkTechFeatureV1Meta.theme).toBe('dark-tech');
11
+ });
12
+ it('should render with title and features', () => {
13
+ const result = DarkTechFeatureV1({
14
+ title: '核心能力',
15
+ features: [
16
+ { title: 'AI 生成', description: '一句话生成完整大纲' },
17
+ { title: '多主题', description: '一键切换视觉风格' },
18
+ ],
19
+ });
20
+ expect(result).toBeDefined();
21
+ });
22
+ });
23
+ //# sourceMappingURL=feature-v1.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-v1.test.js","sourceRoot":"","sources":["../../../src/themes/dark-tech/feature-v1.test.tsx"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,gCAAgC;AAChC,6CAA6C;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC9D,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC;YAC/B,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE;gBACR,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;gBAC5C,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE;aAC1C;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}