@lemonppt/templates 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/LICENSE +21 -0
  2. package/dist/editable-field.d.ts +16 -0
  3. package/dist/editable-field.d.ts.map +1 -0
  4. package/dist/editable-field.js +12 -0
  5. package/dist/editable-field.js.map +1 -0
  6. package/dist/index.d.ts +32 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +32 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/minimal/chart-v1.d.ts +16 -0
  11. package/dist/minimal/chart-v1.d.ts.map +1 -0
  12. package/dist/minimal/chart-v1.js +95 -0
  13. package/dist/minimal/chart-v1.js.map +1 -0
  14. package/dist/minimal/closing-v1.d.ts +14 -0
  15. package/dist/minimal/closing-v1.d.ts.map +1 -0
  16. package/dist/minimal/closing-v1.js +15 -0
  17. package/dist/minimal/closing-v1.js.map +1 -0
  18. package/dist/minimal/closing-v2.d.ts +15 -0
  19. package/dist/minimal/closing-v2.d.ts.map +1 -0
  20. package/dist/minimal/closing-v2.js +15 -0
  21. package/dist/minimal/closing-v2.js.map +1 -0
  22. package/dist/minimal/comparison-v1.d.ts +16 -0
  23. package/dist/minimal/comparison-v1.d.ts.map +1 -0
  24. package/dist/minimal/comparison-v1.js +15 -0
  25. package/dist/minimal/comparison-v1.js.map +1 -0
  26. package/dist/minimal/comparison-v2.d.ts +16 -0
  27. package/dist/minimal/comparison-v2.d.ts.map +1 -0
  28. package/dist/minimal/comparison-v2.js +15 -0
  29. package/dist/minimal/comparison-v2.js.map +1 -0
  30. package/dist/minimal/content-v1.d.ts +13 -0
  31. package/dist/minimal/content-v1.d.ts.map +1 -0
  32. package/dist/minimal/content-v1.js +15 -0
  33. package/dist/minimal/content-v1.js.map +1 -0
  34. package/dist/minimal/content-v2.d.ts +14 -0
  35. package/dist/minimal/content-v2.d.ts.map +1 -0
  36. package/dist/minimal/content-v2.js +18 -0
  37. package/dist/minimal/content-v2.js.map +1 -0
  38. package/dist/minimal/content-v3.d.ts +15 -0
  39. package/dist/minimal/content-v3.d.ts.map +1 -0
  40. package/dist/minimal/content-v3.js +15 -0
  41. package/dist/minimal/content-v3.js.map +1 -0
  42. package/dist/minimal/cover-v1.d.ts +15 -0
  43. package/dist/minimal/cover-v1.d.ts.map +1 -0
  44. package/dist/minimal/cover-v1.js +15 -0
  45. package/dist/minimal/cover-v1.js.map +1 -0
  46. package/dist/minimal/faq-v1.d.ts +16 -0
  47. package/dist/minimal/faq-v1.d.ts.map +1 -0
  48. package/dist/minimal/faq-v1.js +15 -0
  49. package/dist/minimal/faq-v1.js.map +1 -0
  50. package/dist/minimal/feature-v1.d.ts +16 -0
  51. package/dist/minimal/feature-v1.d.ts.map +1 -0
  52. package/dist/minimal/feature-v1.js +15 -0
  53. package/dist/minimal/feature-v1.js.map +1 -0
  54. package/dist/minimal/gallery-v1.d.ts +16 -0
  55. package/dist/minimal/gallery-v1.d.ts.map +1 -0
  56. package/dist/minimal/gallery-v1.js +15 -0
  57. package/dist/minimal/gallery-v1.js.map +1 -0
  58. package/dist/minimal/image-v1.d.ts +14 -0
  59. package/dist/minimal/image-v1.d.ts.map +1 -0
  60. package/dist/minimal/image-v1.js +15 -0
  61. package/dist/minimal/image-v1.js.map +1 -0
  62. package/dist/minimal/metric-v1.d.ts +14 -0
  63. package/dist/minimal/metric-v1.d.ts.map +1 -0
  64. package/dist/minimal/metric-v1.js +15 -0
  65. package/dist/minimal/metric-v1.js.map +1 -0
  66. package/dist/minimal/metric-v2.d.ts +14 -0
  67. package/dist/minimal/metric-v2.d.ts.map +1 -0
  68. package/dist/minimal/metric-v2.js +15 -0
  69. package/dist/minimal/metric-v2.js.map +1 -0
  70. package/dist/minimal/partners-v1.d.ts +16 -0
  71. package/dist/minimal/partners-v1.d.ts.map +1 -0
  72. package/dist/minimal/partners-v1.js +15 -0
  73. package/dist/minimal/partners-v1.js.map +1 -0
  74. package/dist/minimal/pest-v1.d.ts +16 -0
  75. package/dist/minimal/pest-v1.d.ts.map +1 -0
  76. package/dist/minimal/pest-v1.js +15 -0
  77. package/dist/minimal/pest-v1.js.map +1 -0
  78. package/dist/minimal/pricing-v1.d.ts +19 -0
  79. package/dist/minimal/pricing-v1.d.ts.map +1 -0
  80. package/dist/minimal/pricing-v1.js +15 -0
  81. package/dist/minimal/pricing-v1.js.map +1 -0
  82. package/dist/minimal/process-v1.d.ts +13 -0
  83. package/dist/minimal/process-v1.d.ts.map +1 -0
  84. package/dist/minimal/process-v1.js +15 -0
  85. package/dist/minimal/process-v1.js.map +1 -0
  86. package/dist/minimal/process-v2.d.ts +16 -0
  87. package/dist/minimal/process-v2.d.ts.map +1 -0
  88. package/dist/minimal/process-v2.js +15 -0
  89. package/dist/minimal/process-v2.js.map +1 -0
  90. package/dist/minimal/quote-v1.d.ts +13 -0
  91. package/dist/minimal/quote-v1.d.ts.map +1 -0
  92. package/dist/minimal/quote-v1.js +15 -0
  93. package/dist/minimal/quote-v1.js.map +1 -0
  94. package/dist/minimal/quote-v2.d.ts +13 -0
  95. package/dist/minimal/quote-v2.d.ts.map +1 -0
  96. package/dist/minimal/quote-v2.js +15 -0
  97. package/dist/minimal/quote-v2.js.map +1 -0
  98. package/dist/minimal/roadmap-v1.d.ts +17 -0
  99. package/dist/minimal/roadmap-v1.d.ts.map +1 -0
  100. package/dist/minimal/roadmap-v1.js +15 -0
  101. package/dist/minimal/roadmap-v1.js.map +1 -0
  102. package/dist/minimal/split-v1.d.ts +15 -0
  103. package/dist/minimal/split-v1.d.ts.map +1 -0
  104. package/dist/minimal/split-v1.js +15 -0
  105. package/dist/minimal/split-v1.js.map +1 -0
  106. package/dist/minimal/stats-v1.d.ts +18 -0
  107. package/dist/minimal/stats-v1.d.ts.map +1 -0
  108. package/dist/minimal/stats-v1.js +15 -0
  109. package/dist/minimal/stats-v1.js.map +1 -0
  110. package/dist/minimal/swot-v1.d.ts +16 -0
  111. package/dist/minimal/swot-v1.d.ts.map +1 -0
  112. package/dist/minimal/swot-v1.js +15 -0
  113. package/dist/minimal/swot-v1.js.map +1 -0
  114. package/dist/minimal/table-of-contents-v1.d.ts +13 -0
  115. package/dist/minimal/table-of-contents-v1.d.ts.map +1 -0
  116. package/dist/minimal/table-of-contents-v1.js +15 -0
  117. package/dist/minimal/table-of-contents-v1.js.map +1 -0
  118. package/dist/minimal/team-v1.d.ts +18 -0
  119. package/dist/minimal/team-v1.d.ts.map +1 -0
  120. package/dist/minimal/team-v1.js +15 -0
  121. package/dist/minimal/team-v1.js.map +1 -0
  122. package/dist/minimal/testimonial-v1.d.ts +15 -0
  123. package/dist/minimal/testimonial-v1.d.ts.map +1 -0
  124. package/dist/minimal/testimonial-v1.js +15 -0
  125. package/dist/minimal/testimonial-v1.js.map +1 -0
  126. package/dist/minimal/timeline-v1.d.ts +17 -0
  127. package/dist/minimal/timeline-v1.d.ts.map +1 -0
  128. package/dist/minimal/timeline-v1.js +15 -0
  129. package/dist/minimal/timeline-v1.js.map +1 -0
  130. package/dist/registry.d.ts +17 -0
  131. package/dist/registry.d.ts.map +1 -0
  132. package/dist/registry.js +87 -0
  133. package/dist/registry.js.map +1 -0
  134. package/package.json +42 -0
@@ -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 quoteV2Meta = {
4
+ id: 'quote_v2',
5
+ theme: 'base',
6
+ role: 'quote',
7
+ displayName: '侧栏引用',
8
+ description: '左侧 accent 边框的引用样式',
9
+ needsMedia: false,
10
+ };
11
+ export function QuoteV2(props) {
12
+ const { quote, author, role, _slideIdx, _editable } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-quote-v2", children: _jsxs("div", { className: "lp-quote-v2-inner", children: [_jsx(EditableField, { prop: "quote", slideIdx: _slideIdx, editable: _editable, as: "blockquote", className: "lp-quote-v2-text", children: quote }), (author || role) && (_jsxs("div", { className: "lp-quote-v2-attribution", children: [author && (_jsx(EditableField, { prop: "author", slideIdx: _slideIdx, editable: _editable, as: "span", className: "lp-quote-v2-author", children: author })), role && (_jsx(EditableField, { prop: "role", slideIdx: _slideIdx, editable: _editable, as: "span", className: "lp-quote-v2-role", children: role }))] }))] }) }));
14
+ }
15
+ //# sourceMappingURL=quote-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote-v2.js","sourceRoot":"","sources":["../../src/minimal/quote-v2.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5D,OAAO,CACL,cAAK,SAAS,EAAC,sBAAsB,YACnC,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,YAAY,EAAC,SAAS,EAAC,kBAAkB,YAC/G,KAAK,GACQ,EACf,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CACnB,eAAK,SAAS,EAAC,yBAAyB,aACrC,MAAM,IAAI,CACT,KAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,oBAAoB,YAC5G,MAAM,GACO,CACjB,EACA,IAAI,IAAI,CACP,KAAC,aAAa,IAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,kBAAkB,YACxG,IAAI,GACS,CACjB,IACG,CACP,IACG,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface RoadmapV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ phases?: {
7
+ title?: string;
8
+ description?: string;
9
+ status?: string;
10
+ }[];
11
+ _slideIdx?: number;
12
+ _editable?: boolean;
13
+ [key: string]: unknown;
14
+ }
15
+ export declare const roadmapV1Meta: LayoutMeta;
16
+ export declare function RoadmapV1(props: RoadmapV1Props): ReactNode;
17
+ //# sourceMappingURL=roadmap-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roadmap-v1.d.ts","sourceRoot":"","sources":["../../src/minimal/roadmap-v1.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,EAAE,UAO3B,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CA2D1D"}
@@ -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 roadmapV1Meta = {
4
+ id: 'roadmap_v1',
5
+ theme: 'base',
6
+ role: 'roadmap',
7
+ displayName: '路线图',
8
+ description: '垂直阶段路线图,展示规划与里程碑',
9
+ needsMedia: false,
10
+ };
11
+ export function RoadmapV1(props) {
12
+ const { kicker, title, phases = [], _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-roadmap-v1", children: [_jsxs("div", { className: "lp-roadmap-v1-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-roadmap-v1-track", children: phases.map((phase, index) => (_jsxs("div", { className: "lp-roadmap-v1-phase", children: [_jsx("div", { className: "lp-roadmap-v1-dot" }), _jsxs("div", { className: "lp-roadmap-v1-body", children: [_jsxs("div", { className: "lp-roadmap-v1-top", children: [_jsx(EditableField, { prop: `phases.${index}.title`, slideIdx: _slideIdx, editable: _editable, as: "h3", className: "lp-roadmap-v1-title", children: phase.title }), phase.status && (_jsx(EditableField, { prop: `phases.${index}.status`, slideIdx: _slideIdx, editable: _editable, as: "span", className: "lp-roadmap-v1-status", children: phase.status }))] }), phase.description && (_jsx(EditableField, { prop: `phases.${index}.description`, slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-roadmap-v1-description", children: phase.description }))] })] }, index))) })] }));
14
+ }
15
+ //# sourceMappingURL=roadmap-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roadmap-v1.js","sourceRoot":"","sources":["../../src/minimal/roadmap-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEnE,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,sBAAsB,aAClC,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,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,eAAiB,SAAS,EAAC,qBAAqB,aAC9C,cAAK,SAAS,EAAC,mBAAmB,GAAG,EACrC,eAAK,SAAS,EAAC,oBAAoB,aACjC,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,aAAa,IACZ,IAAI,EAAE,UAAU,KAAK,QAAQ,EAC7B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,IAAI,EACP,SAAS,EAAC,qBAAqB,YAE9B,KAAK,CAAC,KAAK,GACE,EACf,KAAK,CAAC,MAAM,IAAI,CACf,KAAC,aAAa,IACZ,IAAI,EAAE,UAAU,KAAK,SAAS,EAC9B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,sBAAsB,YAE/B,KAAK,CAAC,MAAM,GACC,CACjB,IACG,EACL,KAAK,CAAC,WAAW,IAAI,CACpB,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,CACjB,IACG,KApCE,KAAK,CAqCT,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface SplitV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ points?: string[];
7
+ imageUrl?: string;
8
+ imageAlt?: string;
9
+ _slideIdx?: number;
10
+ _editable?: boolean;
11
+ [key: string]: unknown;
12
+ }
13
+ export declare const splitV1Meta: LayoutMeta;
14
+ export declare function SplitV1(props: SplitV1Props): ReactNode;
15
+ //# sourceMappingURL=split-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-v1.d.ts","sourceRoot":"","sources":["../../src/minimal/split-v1.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,EAAE,UAOzB,CAAC;AAEF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAyCtD"}
@@ -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 splitV1Meta = {
4
+ id: 'split_v1',
5
+ theme: 'base',
6
+ role: 'content',
7
+ displayName: '图文分屏',
8
+ description: '左文右图分屏展示,适合产品亮点或场景介绍',
9
+ needsMedia: true,
10
+ };
11
+ export function SplitV1(props) {
12
+ const { kicker, title, points = [], imageUrl, imageAlt, _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-split-v1", children: [_jsxs("div", { className: "lp-split-v1-content", 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-split-v1-title", children: title }), points.length > 0 && (_jsx("ul", { className: "lp-split-v1-points", children: points.map((point, index) => (_jsx("li", { children: _jsx(EditableField, { prop: `points.${index}`, slideIdx: _slideIdx, editable: _editable, as: "span", children: point }) }, index))) }))] }), _jsx("div", { className: "lp-split-v1-media", children: imageUrl ? (_jsx("img", { src: imageUrl, alt: imageAlt || '', "data-lp-editable-image": "true", "data-lp-slide-idx": _slideIdx, "data-lp-prop": "imageUrl" })) : (_jsx("div", { className: "lp-split-v1-placeholder" })) })] }));
14
+ }
15
+ //# sourceMappingURL=split-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-v1.js","sourceRoot":"","sources":["../../src/minimal/split-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAarD,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,sBAAsB;IACnC,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEvF,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAK,SAAS,EAAC,qBAAqB,aACjC,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,8BAA8B,YACnH,KAAK,GACQ,EACf,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,aAAI,SAAS,EAAC,oBAAoB,YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,uBACE,KAAC,aAAa,IAAC,IAAI,EAAE,UAAU,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,YACxF,KAAK,GACQ,IAHT,KAAK,CAIT,CACN,CAAC,GACC,CACN,IACG,EACN,cAAK,SAAS,EAAC,mBAAmB,YAC/B,QAAQ,CAAC,CAAC,CAAC,CACV,cACE,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,QAAQ,IAAI,EAAE,4BACI,MAAM,uBACV,SAAS,kBACf,UAAU,GACvB,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,yBAAyB,GAAG,CAC5C,GACG,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface StatsV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ stats?: {
7
+ label?: string;
8
+ value?: string;
9
+ unit?: string;
10
+ change?: string;
11
+ }[];
12
+ _slideIdx?: number;
13
+ _editable?: boolean;
14
+ [key: string]: unknown;
15
+ }
16
+ export declare const statsV1Meta: LayoutMeta;
17
+ export declare function StatsV1(props: StatsV1Props): ReactNode;
18
+ //# sourceMappingURL=stats-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-v1.d.ts","sourceRoot":"","sources":["../../src/minimal/stats-v1.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,EAAE,UAOzB,CAAC;AAEF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAiEtD"}
@@ -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 statsV1Meta = {
4
+ id: 'stats_v1',
5
+ theme: 'base',
6
+ role: 'stats',
7
+ displayName: '关键指标网格',
8
+ description: '2x2 指标卡片,适合数据概览页',
9
+ needsMedia: false,
10
+ };
11
+ export function StatsV1(props) {
12
+ const { kicker, title, stats = [], _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-stats-v1", children: [_jsxs("div", { className: "lp-stats-v1-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-stats-v1-grid", children: stats.map((stat, index) => (_jsxs("div", { className: "lp-stats-v1-card", children: [_jsx(EditableField, { prop: `stats.${index}.label`, slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-stats-v1-label", children: stat.label }), _jsxs("div", { className: "lp-stats-v1-value-row", children: [_jsx(EditableField, { prop: `stats.${index}.value`, slideIdx: _slideIdx, editable: _editable, as: "span", className: "lp-stats-v1-value", children: stat.value }), stat.unit && (_jsx(EditableField, { prop: `stats.${index}.unit`, slideIdx: _slideIdx, editable: _editable, as: "span", className: "lp-stats-v1-unit", children: stat.unit }))] }), stat.change && (_jsx(EditableField, { prop: `stats.${index}.change`, slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-stats-v1-change", children: stat.change }))] }, index))) })] }));
14
+ }
15
+ //# sourceMappingURL=stats-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-v1.js","sourceRoot":"","sources":["../../src/minimal/stats-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAElE,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAK,SAAS,EAAC,oBAAoB,aAChC,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,kBAAkB,YAC9B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,eAAiB,SAAS,EAAC,kBAAkB,aAC3C,KAAC,aAAa,IACZ,IAAI,EAAE,SAAS,KAAK,QAAQ,EAC5B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,mBAAmB,YAE5B,IAAI,CAAC,KAAK,GACG,EAChB,eAAK,SAAS,EAAC,uBAAuB,aACpC,KAAC,aAAa,IACZ,IAAI,EAAE,SAAS,KAAK,QAAQ,EAC5B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,mBAAmB,YAE5B,IAAI,CAAC,KAAK,GACG,EACf,IAAI,CAAC,IAAI,IAAI,CACZ,KAAC,aAAa,IACZ,IAAI,EAAE,SAAS,KAAK,OAAO,EAC3B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,kBAAkB,YAE3B,IAAI,CAAC,IAAI,GACI,CACjB,IACG,EACL,IAAI,CAAC,MAAM,IAAI,CACd,KAAC,aAAa,IACZ,IAAI,EAAE,SAAS,KAAK,SAAS,EAC7B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,oBAAoB,YAE7B,IAAI,CAAC,MAAM,GACE,CACjB,KA1CO,KAAK,CA2CT,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface SwotV1Props {
4
+ title: string;
5
+ kicker?: string;
6
+ strength?: string;
7
+ weakness?: string;
8
+ opportunity?: string;
9
+ threat?: string;
10
+ _slideIdx?: number;
11
+ _editable?: boolean;
12
+ [key: string]: unknown;
13
+ }
14
+ export declare const swotV1Meta: LayoutMeta;
15
+ export declare function SwotV1(props: SwotV1Props): ReactNode;
16
+ //# sourceMappingURL=swot-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swot-v1.d.ts","sourceRoot":"","sources":["../../src/minimal/swot-v1.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,EAAE,UAOxB,CAAC;AAEF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CA2CpD"}
@@ -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 swotV1Meta = {
4
+ id: 'swot_v1',
5
+ theme: 'base',
6
+ role: 'swot',
7
+ displayName: 'SWOT 分析',
8
+ description: '2x2 SWOT 分析矩阵',
9
+ needsMedia: false,
10
+ };
11
+ export function SwotV1(props) {
12
+ const { title, kicker, strength, weakness, opportunity, threat, _slideIdx, _editable } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-swot-v1", children: _jsxs("div", { className: "lp-swot-v1-inner", 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-swot-title", children: title }), _jsxs("div", { className: "lp-swot-grid", children: [_jsxs("div", { className: "lp-swot-cell lp-swot-s", children: [_jsx("h3", { children: "S" }), _jsx(EditableField, { prop: "strength", slideIdx: _slideIdx, editable: _editable, as: "p", children: strength || '优势' })] }), _jsxs("div", { className: "lp-swot-cell lp-swot-w", children: [_jsx("h3", { children: "W" }), _jsx(EditableField, { prop: "weakness", slideIdx: _slideIdx, editable: _editable, as: "p", children: weakness || '劣势' })] }), _jsxs("div", { className: "lp-swot-cell lp-swot-o", children: [_jsx("h3", { children: "O" }), _jsx(EditableField, { prop: "opportunity", slideIdx: _slideIdx, editable: _editable, as: "p", children: opportunity || '机会' })] }), _jsxs("div", { className: "lp-swot-cell lp-swot-t", children: [_jsx("h3", { children: "T" }), _jsx(EditableField, { prop: "threat", slideIdx: _slideIdx, editable: _editable, as: "p", children: threat || '威胁' })] })] })] }) }));
14
+ }
15
+ //# sourceMappingURL=swot-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swot-v1.js","sourceRoot":"","sources":["../../src/minimal/swot-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAcrD,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE/F,OAAO,CACL,cAAK,SAAS,EAAC,qBAAqB,YAClC,eAAK,SAAS,EAAC,kBAAkB,aAC9B,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,0BAA0B,YAC/G,KAAK,GACQ,EAChB,eAAK,SAAS,EAAC,cAAc,aAC3B,eAAK,SAAS,EAAC,wBAAwB,aACrC,6BAAU,EACV,KAAC,aAAa,IAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,GAAG,YAC5E,QAAQ,IAAI,IAAI,GACH,IACZ,EACN,eAAK,SAAS,EAAC,wBAAwB,aACrC,6BAAU,EACV,KAAC,aAAa,IAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,GAAG,YAC5E,QAAQ,IAAI,IAAI,GACH,IACZ,EACN,eAAK,SAAS,EAAC,wBAAwB,aACrC,6BAAU,EACV,KAAC,aAAa,IAAC,IAAI,EAAC,aAAa,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,GAAG,YAC/E,WAAW,IAAI,IAAI,GACN,IACZ,EACN,eAAK,SAAS,EAAC,wBAAwB,aACrC,6BAAU,EACV,KAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,GAAG,YAC1E,MAAM,IAAI,IAAI,GACD,IACZ,IACF,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface TableOfContentsV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ items?: string[];
7
+ _slideIdx?: number;
8
+ _editable?: boolean;
9
+ [key: string]: unknown;
10
+ }
11
+ export declare const tableOfContentsV1Meta: LayoutMeta;
12
+ export declare function TableOfContentsV1(props: TableOfContentsV1Props): ReactNode;
13
+ //# sourceMappingURL=table-of-contents-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-of-contents-v1.d.ts","sourceRoot":"","sources":["../../src/minimal/table-of-contents-v1.tsx"],"names":[],"mappings":"AAAA,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,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,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,CAkC1E"}
@@ -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 tableOfContentsV1Meta = {
4
+ id: 'table_of_contents_v1',
5
+ theme: 'base',
6
+ role: 'tableOfContents',
7
+ displayName: '极简目录',
8
+ description: '标题 + 编号目录项',
9
+ needsMedia: false,
10
+ };
11
+ export function TableOfContentsV1(props) {
12
+ const { kicker, title, items = [], _slideIdx, _editable } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-table-of-contents-v1", children: _jsxs("div", { className: "lp-toc-inner", 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-toc-title", children: title }), items.length > 0 && (_jsx("ol", { className: "lp-toc-list", children: items.map((item, index) => (_jsxs("li", { className: "lp-toc-item", children: [_jsx("span", { className: "lp-toc-number", children: String(index + 1).padStart(2, '0') }), _jsx(EditableField, { prop: `items.${index}`, slideIdx: _slideIdx, editable: _editable, as: "span", className: "lp-toc-text", children: item })] }, index))) }))] }) }));
14
+ }
15
+ //# sourceMappingURL=table-of-contents-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-of-contents-v1.js","sourceRoot":"","sources":["../../src/minimal/table-of-contents-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,qBAAqB,GAAe;IAC/C,EAAE,EAAE,sBAAsB;IAC1B,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAClE,OAAO,CACL,cAAK,SAAS,EAAC,kCAAkC,YAC/C,eAAK,SAAS,EAAC,cAAc,aAC1B,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,yBAAyB,YAC9G,KAAK,GACQ,EACf,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,aAAI,SAAS,EAAC,aAAa,YACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,cAAgB,SAAS,EAAC,aAAa,aACrC,eAAM,SAAS,EAAC,eAAe,YAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAQ,EAC3E,KAAC,aAAa,IACZ,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,aAAa,YAEtB,IAAI,GACS,KAVT,KAAK,CAWT,CACN,CAAC,GACC,CACN,IACG,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface TeamV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ members?: {
7
+ name?: string;
8
+ role?: string;
9
+ bio?: string;
10
+ imageUrl?: string;
11
+ }[];
12
+ _slideIdx?: number;
13
+ _editable?: boolean;
14
+ [key: string]: unknown;
15
+ }
16
+ export declare const teamV1Meta: LayoutMeta;
17
+ export declare function TeamV1(props: TeamV1Props): ReactNode;
18
+ //# sourceMappingURL=team-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-v1.d.ts","sourceRoot":"","sources":["../../src/minimal/team-v1.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,EAAE,UAOxB,CAAC;AAEF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAgEpD"}
@@ -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 teamV1Meta = {
4
+ id: 'team_v1',
5
+ theme: 'base',
6
+ role: 'team',
7
+ displayName: '团队介绍',
8
+ description: '展示团队成员头像、姓名、职位与简介',
9
+ needsMedia: true,
10
+ };
11
+ export function TeamV1(props) {
12
+ const { kicker, title, members = [], _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-team-v1", children: [_jsxs("div", { className: "lp-team-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-team-grid", children: members.map((member, index) => (_jsxs("div", { className: "lp-team-card", children: [member.imageUrl ? (_jsx("img", { className: "lp-team-avatar", src: member.imageUrl, alt: member.name || '', "data-lp-editable-image": "true", "data-lp-slide-idx": _slideIdx, "data-lp-prop": `members.${index}.imageUrl` })) : (_jsx("div", { className: "lp-team-avatar lp-team-avatar-placeholder" })), _jsx(EditableField, { prop: `members.${index}.name`, slideIdx: _slideIdx, editable: _editable, as: "h3", className: "lp-team-name", children: member.name }), _jsx(EditableField, { prop: `members.${index}.role`, slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-team-role", children: member.role }), member.bio && (_jsx(EditableField, { prop: `members.${index}.bio`, slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-team-bio", children: member.bio }))] }, index))) })] }));
14
+ }
15
+ //# sourceMappingURL=team-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-v1.js","sourceRoot":"","sources":["../../src/minimal/team-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEpE,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAK,SAAS,EAAC,gBAAgB,aAC5B,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,cAAc,YAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,eAAiB,SAAS,EAAC,cAAc,aACtC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjB,cACE,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAE,MAAM,CAAC,QAAQ,EACpB,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,4BACC,MAAM,uBACV,SAAS,kBACd,WAAW,KAAK,WAAW,GACzC,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,2CAA2C,GAAG,CAC9D,EACD,KAAC,aAAa,IACZ,IAAI,EAAE,WAAW,KAAK,OAAO,EAC7B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,IAAI,EACP,SAAS,EAAC,cAAc,YAEvB,MAAM,CAAC,IAAI,GACE,EAChB,KAAC,aAAa,IACZ,IAAI,EAAE,WAAW,KAAK,OAAO,EAC7B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,cAAc,YAEvB,MAAM,CAAC,IAAI,GACE,EACf,MAAM,CAAC,GAAG,IAAI,CACb,KAAC,aAAa,IACZ,IAAI,EAAE,WAAW,KAAK,MAAM,EAC5B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,GAAG,EACN,SAAS,EAAC,aAAa,YAEtB,MAAM,CAAC,GAAG,GACG,CACjB,KAzCO,KAAK,CA0CT,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface TestimonialV1Props {
4
+ quote: string;
5
+ author?: string;
6
+ role?: string;
7
+ company?: string;
8
+ avatarUrl?: string;
9
+ _slideIdx?: number;
10
+ _editable?: boolean;
11
+ [key: string]: unknown;
12
+ }
13
+ export declare const testimonialV1Meta: LayoutMeta;
14
+ export declare function TestimonialV1(props: TestimonialV1Props): ReactNode;
15
+ //# sourceMappingURL=testimonial-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testimonial-v1.d.ts","sourceRoot":"","sources":["../../src/minimal/testimonial-v1.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,EAAE,UAO/B,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAkDlE"}
@@ -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 testimonialV1Meta = {
4
+ id: 'testimonial_v1',
5
+ theme: 'base',
6
+ role: 'testimonial',
7
+ displayName: '客户评价',
8
+ description: '大字引用配头像与作者信息,适合客户证言页',
9
+ needsMedia: true,
10
+ };
11
+ export function TestimonialV1(props) {
12
+ const { quote, author, role, company, avatarUrl, _slideIdx, _editable } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-testimonial-v1", children: _jsxs("div", { className: "lp-testimonial-v1-content", children: [_jsxs("div", { className: "lp-testimonial-v1-quote", children: [_jsx("span", { className: "lp-testimonial-v1-mark", children: "\u201C" }), _jsx(EditableField, { prop: "quote", slideIdx: _slideIdx, editable: _editable, as: "blockquote", children: quote })] }), _jsxs("div", { className: "lp-testimonial-v1-author", children: [avatarUrl ? (_jsx("img", { src: avatarUrl, alt: author || '', "data-lp-editable-image": "true", "data-lp-slide-idx": _slideIdx, "data-lp-prop": "avatarUrl" })) : (_jsx("div", { className: "lp-testimonial-v1-avatar-placeholder" })), _jsxs("div", { className: "lp-testimonial-v1-meta", children: [author && (_jsx(EditableField, { prop: "author", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-testimonial-v1-name", children: author })), (role || company) && (_jsxs("div", { className: "lp-testimonial-v1-role", children: [role && (_jsx(EditableField, { prop: "role", slideIdx: _slideIdx, editable: _editable, as: "span", children: role })), role && company && _jsx("span", { children: " \u00B7 " }), company && (_jsx(EditableField, { prop: "company", slideIdx: _slideIdx, editable: _editable, as: "span", children: company }))] }))] })] })] }) }));
14
+ }
15
+ //# sourceMappingURL=testimonial-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testimonial-v1.js","sourceRoot":"","sources":["../../src/minimal/testimonial-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAarD,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,EAAE,EAAE,gBAAgB;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,sBAAsB;IACnC,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEhF,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACzC,eAAK,SAAS,EAAC,2BAA2B,aACxC,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,wBAAwB,uBAAS,EACjD,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,YAAY,YAClF,KAAK,GACQ,IACZ,EACN,eAAK,SAAS,EAAC,0BAA0B,aACtC,SAAS,CAAC,CAAC,CAAC,CACX,cACE,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,IAAI,EAAE,4BACM,MAAM,uBACV,SAAS,kBACf,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,sCAAsC,GAAG,CACzD,EACD,eAAK,SAAS,EAAC,wBAAwB,aACpC,MAAM,IAAI,CACT,KAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,wBAAwB,YAC/G,MAAM,GACO,CACjB,EACA,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CACpB,eAAK,SAAS,EAAC,wBAAwB,aACpC,IAAI,IAAI,CACP,KAAC,aAAa,IAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,YAC3E,IAAI,GACS,CACjB,EACA,IAAI,IAAI,OAAO,IAAI,sCAAgB,EACnC,OAAO,IAAI,CACV,KAAC,aAAa,IAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,YAC9E,OAAO,GACM,CACjB,IACG,CACP,IACG,IACF,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface TimelineV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ milestones?: {
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 timelineV1Meta: LayoutMeta;
16
+ export declare function TimelineV1(props: TimelineV1Props): ReactNode;
17
+ //# sourceMappingURL=timeline-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v1.d.ts","sourceRoot":"","sources":["../../src/minimal/timeline-v1.tsx"],"names":[],"mappings":"AAAA,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,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvE,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,CAqD5D"}
@@ -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 timelineV1Meta = {
4
+ id: 'timeline_v1',
5
+ theme: 'base',
6
+ role: 'timeline',
7
+ displayName: '时间线',
8
+ description: '水平时间线展示关键里程碑',
9
+ needsMedia: false,
10
+ };
11
+ export function TimelineV1(props) {
12
+ const { kicker, title, milestones = [], _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-timeline-v1", children: [_jsxs("div", { className: "lp-timeline-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-track", children: milestones.map((milestone, index) => (_jsxs("div", { className: "lp-timeline-item", children: [_jsx("div", { className: "lp-timeline-dot" }), _jsx(EditableField, { prop: `milestones.${index}.date`, slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-timeline-date", children: milestone.date }), _jsx(EditableField, { prop: `milestones.${index}.title`, slideIdx: _slideIdx, editable: _editable, as: "h3", className: "lp-timeline-title", children: milestone.title }), milestone.description && (_jsx(EditableField, { prop: `milestones.${index}.description`, slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-timeline-description", children: milestone.description }))] }, index))) })] }));
14
+ }
15
+ //# sourceMappingURL=timeline-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-v1.js","sourceRoot":"","sources":["../../src/minimal/timeline-v1.tsx"],"names":[],"mappings":";AAEA,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,KAAK;IAClB,WAAW,EAAE,cAAc;IAC3B,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,oBAAoB,aAChC,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,mBAAmB,YAC/B,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,eAAiB,SAAS,EAAC,kBAAkB,aAC3C,cAAK,SAAS,EAAC,iBAAiB,GAAG,EACnC,KAAC,aAAa,IACZ,IAAI,EAAE,cAAc,KAAK,OAAO,EAChC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,kBAAkB,YAE3B,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,mBAAmB,YAE5B,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,yBAAyB,YAElC,SAAS,CAAC,WAAW,GACR,CACjB,KA9BO,KAAK,CA+BT,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { LayoutMeta, Slide } from '@lemonppt/core';
2
+ import type { ComponentType, ReactElement } from 'react';
3
+ export interface RegisteredLayout<P extends Record<string, unknown>> {
4
+ meta: LayoutMeta;
5
+ component: ComponentType<P>;
6
+ }
7
+ export declare function registerLayout<P extends Record<string, unknown>>(layout: RegisteredLayout<P>): void;
8
+ export declare function getLayout(id: string): RegisteredLayout<Record<string, unknown>> | undefined;
9
+ export declare function listLayouts(): LayoutMeta[];
10
+ export declare function listLayoutsByTheme(theme: string): LayoutMeta[];
11
+ export declare function listLayoutsByRole(role: LayoutMeta['role']): LayoutMeta[];
12
+ export interface RenderSlideOptions {
13
+ slideIdx?: number;
14
+ editable?: boolean;
15
+ }
16
+ export declare function renderSlide(slide: Slide, options?: RenderSlideOptions): ReactElement | null;
17
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAgCzD,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"}
@@ -0,0 +1,87 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ClosingV1, closingV1Meta } from './minimal/closing-v1.js';
3
+ import { ClosingV2, closingV2Meta } from './minimal/closing-v2.js';
4
+ import { ChartV1, chartV1Meta } from './minimal/chart-v1.js';
5
+ import { ComparisonV1, comparisonV1Meta } from './minimal/comparison-v1.js';
6
+ import { ComparisonV2, comparisonV2Meta } from './minimal/comparison-v2.js';
7
+ import { ContentV1, contentV1Meta } from './minimal/content-v1.js';
8
+ import { ContentV2, contentV2Meta } from './minimal/content-v2.js';
9
+ import { ContentV3, contentV3Meta } from './minimal/content-v3.js';
10
+ import { CoverV1, coverV1Meta } from './minimal/cover-v1.js';
11
+ import { FaqV1, faqV1Meta } from './minimal/faq-v1.js';
12
+ import { FeatureV1, featureV1Meta } from './minimal/feature-v1.js';
13
+ import { GalleryV1, galleryV1Meta } from './minimal/gallery-v1.js';
14
+ import { ImageV1, imageV1Meta } from './minimal/image-v1.js';
15
+ import { MetricV1, metricV1Meta } from './minimal/metric-v1.js';
16
+ import { PartnersV1, partnersV1Meta } from './minimal/partners-v1.js';
17
+ import { PricingV1, pricingV1Meta } from './minimal/pricing-v1.js';
18
+ import { RoadmapV1, roadmapV1Meta } from './minimal/roadmap-v1.js';
19
+ import { SplitV1, splitV1Meta } from './minimal/split-v1.js';
20
+ import { StatsV1, statsV1Meta } from './minimal/stats-v1.js';
21
+ import { TeamV1, teamV1Meta } from './minimal/team-v1.js';
22
+ import { TestimonialV1, testimonialV1Meta } from './minimal/testimonial-v1.js';
23
+ import { TimelineV1, timelineV1Meta } from './minimal/timeline-v1.js';
24
+ import { MetricV2, metricV2Meta } from './minimal/metric-v2.js';
25
+ import { PestV1, pestV1Meta } from './minimal/pest-v1.js';
26
+ import { ProcessV1, processV1Meta } from './minimal/process-v1.js';
27
+ import { ProcessV2, processV2Meta } from './minimal/process-v2.js';
28
+ import { QuoteV1, quoteV1Meta } from './minimal/quote-v1.js';
29
+ import { QuoteV2, quoteV2Meta } from './minimal/quote-v2.js';
30
+ import { SwotV1, swotV1Meta } from './minimal/swot-v1.js';
31
+ import { TableOfContentsV1, tableOfContentsV1Meta } from './minimal/table-of-contents-v1.js';
32
+ const registry = new Map();
33
+ export function registerLayout(layout) {
34
+ registry.set(layout.meta.id, layout);
35
+ }
36
+ export function getLayout(id) {
37
+ return registry.get(id);
38
+ }
39
+ export function listLayouts() {
40
+ return Array.from(registry.values()).map((l) => l.meta);
41
+ }
42
+ export function listLayoutsByTheme(theme) {
43
+ return listLayouts().filter((l) => l.theme === theme);
44
+ }
45
+ export function listLayoutsByRole(role) {
46
+ return listLayouts().filter((l) => l.role === role);
47
+ }
48
+ export function renderSlide(slide, options = {}) {
49
+ const registered = getLayout(slide.layout);
50
+ if (!registered) {
51
+ return null;
52
+ }
53
+ const Component = registered.component;
54
+ return _jsx(Component, { ...slide.props, _slideIdx: options.slideIdx, _editable: options.editable });
55
+ }
56
+ // 注册内置版式
57
+ registerLayout({ meta: coverV1Meta, component: CoverV1 });
58
+ registerLayout({ meta: metricV1Meta, component: MetricV1 });
59
+ registerLayout({ meta: metricV2Meta, component: MetricV2 });
60
+ registerLayout({ meta: tableOfContentsV1Meta, component: TableOfContentsV1 });
61
+ registerLayout({ meta: chartV1Meta, component: ChartV1 });
62
+ registerLayout({ meta: comparisonV1Meta, component: ComparisonV1 });
63
+ registerLayout({ meta: comparisonV2Meta, component: ComparisonV2 });
64
+ registerLayout({ meta: processV1Meta, component: ProcessV1 });
65
+ registerLayout({ meta: processV2Meta, component: ProcessV2 });
66
+ registerLayout({ meta: quoteV1Meta, component: QuoteV1 });
67
+ registerLayout({ meta: quoteV2Meta, component: QuoteV2 });
68
+ registerLayout({ meta: contentV1Meta, component: ContentV1 });
69
+ registerLayout({ meta: contentV2Meta, component: ContentV2 });
70
+ registerLayout({ meta: contentV3Meta, component: ContentV3 });
71
+ registerLayout({ meta: imageV1Meta, component: ImageV1 });
72
+ registerLayout({ meta: teamV1Meta, component: TeamV1 });
73
+ registerLayout({ meta: featureV1Meta, component: FeatureV1 });
74
+ registerLayout({ meta: timelineV1Meta, component: TimelineV1 });
75
+ registerLayout({ meta: pricingV1Meta, component: PricingV1 });
76
+ registerLayout({ meta: splitV1Meta, component: SplitV1 });
77
+ registerLayout({ meta: statsV1Meta, component: StatsV1 });
78
+ registerLayout({ meta: galleryV1Meta, component: GalleryV1 });
79
+ registerLayout({ meta: faqV1Meta, component: FaqV1 });
80
+ registerLayout({ meta: partnersV1Meta, component: PartnersV1 });
81
+ registerLayout({ meta: testimonialV1Meta, component: TestimonialV1 });
82
+ registerLayout({ meta: roadmapV1Meta, component: RoadmapV1 });
83
+ registerLayout({ meta: closingV1Meta, component: ClosingV1 });
84
+ registerLayout({ meta: closingV2Meta, component: ClosingV2 });
85
+ registerLayout({ meta: swotV1Meta, component: SwotV1 });
86
+ registerLayout({ meta: pestV1Meta, component: PestV1 });
87
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@lemonppt/templates",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/lemonforme/lemonPPT.git",
22
+ "directory": "packages/templates"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/lemonforme/lemonPPT/issues"
26
+ },
27
+ "homepage": "https://github.com/lemonforme/lemonPPT#readme",
28
+ "dependencies": {
29
+ "react": "^18.3.1",
30
+ "@lemonppt/core": "0.1.0",
31
+ "@lemonppt/themes": "0.1.0"
32
+ },
33
+ "devDependencies": {
34
+ "@types/react": "^18.3.0",
35
+ "typescript": "^5.5.0"
36
+ },
37
+ "license": "MIT",
38
+ "scripts": {
39
+ "build": "tsc",
40
+ "typecheck": "tsc --noEmit"
41
+ }
42
+ }