@lemonppt/templates 0.1.0 → 0.1.2

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 (127) hide show
  1. package/dist/base/chart-v1.d.ts +16 -0
  2. package/dist/base/chart-v1.d.ts.map +1 -0
  3. package/dist/base/chart-v1.js +95 -0
  4. package/dist/base/chart-v1.js.map +1 -0
  5. package/dist/base/closing-v1.d.ts +14 -0
  6. package/dist/base/closing-v1.d.ts.map +1 -0
  7. package/dist/base/closing-v1.js +15 -0
  8. package/dist/base/closing-v1.js.map +1 -0
  9. package/dist/base/closing-v2.d.ts +15 -0
  10. package/dist/base/closing-v2.d.ts.map +1 -0
  11. package/dist/base/closing-v2.js +15 -0
  12. package/dist/base/closing-v2.js.map +1 -0
  13. package/dist/base/comparison-v1.d.ts +16 -0
  14. package/dist/base/comparison-v1.d.ts.map +1 -0
  15. package/dist/base/comparison-v1.js +15 -0
  16. package/dist/base/comparison-v1.js.map +1 -0
  17. package/dist/base/comparison-v2.d.ts +16 -0
  18. package/dist/base/comparison-v2.d.ts.map +1 -0
  19. package/dist/base/comparison-v2.js +15 -0
  20. package/dist/base/comparison-v2.js.map +1 -0
  21. package/dist/base/content-v1.d.ts +13 -0
  22. package/dist/base/content-v1.d.ts.map +1 -0
  23. package/dist/base/content-v1.js +15 -0
  24. package/dist/base/content-v1.js.map +1 -0
  25. package/dist/base/content-v2.d.ts +14 -0
  26. package/dist/base/content-v2.d.ts.map +1 -0
  27. package/dist/base/content-v2.js +18 -0
  28. package/dist/base/content-v2.js.map +1 -0
  29. package/dist/base/content-v3.d.ts +15 -0
  30. package/dist/base/content-v3.d.ts.map +1 -0
  31. package/dist/base/content-v3.js +15 -0
  32. package/dist/base/content-v3.js.map +1 -0
  33. package/dist/base/cover-v1.d.ts +15 -0
  34. package/dist/base/cover-v1.d.ts.map +1 -0
  35. package/dist/base/cover-v1.js +15 -0
  36. package/dist/base/cover-v1.js.map +1 -0
  37. package/dist/base/faq-v1.d.ts +16 -0
  38. package/dist/base/faq-v1.d.ts.map +1 -0
  39. package/dist/base/faq-v1.js +15 -0
  40. package/dist/base/faq-v1.js.map +1 -0
  41. package/dist/base/feature-v1.d.ts +16 -0
  42. package/dist/base/feature-v1.d.ts.map +1 -0
  43. package/dist/base/feature-v1.js +15 -0
  44. package/dist/base/feature-v1.js.map +1 -0
  45. package/dist/base/gallery-v1.d.ts +16 -0
  46. package/dist/base/gallery-v1.d.ts.map +1 -0
  47. package/dist/base/gallery-v1.js +15 -0
  48. package/dist/base/gallery-v1.js.map +1 -0
  49. package/dist/base/image-v1.d.ts +14 -0
  50. package/dist/base/image-v1.d.ts.map +1 -0
  51. package/dist/base/image-v1.js +15 -0
  52. package/dist/base/image-v1.js.map +1 -0
  53. package/dist/base/metric-v1.d.ts +14 -0
  54. package/dist/base/metric-v1.d.ts.map +1 -0
  55. package/dist/base/metric-v1.js +15 -0
  56. package/dist/base/metric-v1.js.map +1 -0
  57. package/dist/base/metric-v2.d.ts +14 -0
  58. package/dist/base/metric-v2.d.ts.map +1 -0
  59. package/dist/base/metric-v2.js +15 -0
  60. package/dist/base/metric-v2.js.map +1 -0
  61. package/dist/base/partners-v1.d.ts +16 -0
  62. package/dist/base/partners-v1.d.ts.map +1 -0
  63. package/dist/base/partners-v1.js +15 -0
  64. package/dist/base/partners-v1.js.map +1 -0
  65. package/dist/base/pest-v1.d.ts +16 -0
  66. package/dist/base/pest-v1.d.ts.map +1 -0
  67. package/dist/base/pest-v1.js +15 -0
  68. package/dist/base/pest-v1.js.map +1 -0
  69. package/dist/base/pricing-v1.d.ts +19 -0
  70. package/dist/base/pricing-v1.d.ts.map +1 -0
  71. package/dist/base/pricing-v1.js +15 -0
  72. package/dist/base/pricing-v1.js.map +1 -0
  73. package/dist/base/process-v1.d.ts +13 -0
  74. package/dist/base/process-v1.d.ts.map +1 -0
  75. package/dist/base/process-v1.js +15 -0
  76. package/dist/base/process-v1.js.map +1 -0
  77. package/dist/base/process-v2.d.ts +16 -0
  78. package/dist/base/process-v2.d.ts.map +1 -0
  79. package/dist/base/process-v2.js +15 -0
  80. package/dist/base/process-v2.js.map +1 -0
  81. package/dist/base/quote-v1.d.ts +13 -0
  82. package/dist/base/quote-v1.d.ts.map +1 -0
  83. package/dist/base/quote-v1.js +15 -0
  84. package/dist/base/quote-v1.js.map +1 -0
  85. package/dist/base/quote-v2.d.ts +13 -0
  86. package/dist/base/quote-v2.d.ts.map +1 -0
  87. package/dist/base/quote-v2.js +15 -0
  88. package/dist/base/quote-v2.js.map +1 -0
  89. package/dist/base/roadmap-v1.d.ts +17 -0
  90. package/dist/base/roadmap-v1.d.ts.map +1 -0
  91. package/dist/base/roadmap-v1.js +15 -0
  92. package/dist/base/roadmap-v1.js.map +1 -0
  93. package/dist/base/split-v1.d.ts +15 -0
  94. package/dist/base/split-v1.d.ts.map +1 -0
  95. package/dist/base/split-v1.js +15 -0
  96. package/dist/base/split-v1.js.map +1 -0
  97. package/dist/base/stats-v1.d.ts +18 -0
  98. package/dist/base/stats-v1.d.ts.map +1 -0
  99. package/dist/base/stats-v1.js +15 -0
  100. package/dist/base/stats-v1.js.map +1 -0
  101. package/dist/base/swot-v1.d.ts +16 -0
  102. package/dist/base/swot-v1.d.ts.map +1 -0
  103. package/dist/base/swot-v1.js +15 -0
  104. package/dist/base/swot-v1.js.map +1 -0
  105. package/dist/base/table-of-contents-v1.d.ts +13 -0
  106. package/dist/base/table-of-contents-v1.d.ts.map +1 -0
  107. package/dist/base/table-of-contents-v1.js +15 -0
  108. package/dist/base/table-of-contents-v1.js.map +1 -0
  109. package/dist/base/team-v1.d.ts +18 -0
  110. package/dist/base/team-v1.d.ts.map +1 -0
  111. package/dist/base/team-v1.js +15 -0
  112. package/dist/base/team-v1.js.map +1 -0
  113. package/dist/base/testimonial-v1.d.ts +15 -0
  114. package/dist/base/testimonial-v1.d.ts.map +1 -0
  115. package/dist/base/testimonial-v1.js +15 -0
  116. package/dist/base/testimonial-v1.js.map +1 -0
  117. package/dist/base/timeline-v1.d.ts +17 -0
  118. package/dist/base/timeline-v1.d.ts.map +1 -0
  119. package/dist/base/timeline-v1.js +15 -0
  120. package/dist/base/timeline-v1.js.map +1 -0
  121. package/dist/index.d.ts +30 -30
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +30 -30
  124. package/dist/index.js.map +1 -1
  125. package/dist/registry.js +30 -30
  126. package/dist/registry.js.map +1 -1
  127. package/package.json +3 -3
@@ -0,0 +1,16 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface ChartV1Props {
4
+ title: string;
5
+ kicker?: string;
6
+ type?: 'bar' | 'line' | 'pie';
7
+ labels?: string[];
8
+ data?: number[];
9
+ unit?: string;
10
+ _slideIdx?: number;
11
+ _editable?: boolean;
12
+ [key: string]: unknown;
13
+ }
14
+ export declare const chartV1Meta: LayoutMeta;
15
+ export declare function ChartV1(props: ChartV1Props): ReactNode;
16
+ //# sourceMappingURL=chart-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-v1.d.ts","sourceRoot":"","sources":["../../src/base/chart-v1.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,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;AA0JF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAuBtD"}
@@ -0,0 +1,95 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EditableField } from '../editable-field.js';
3
+ export const chartV1Meta = {
4
+ id: 'chart_v1',
5
+ theme: 'base',
6
+ role: 'chart',
7
+ displayName: '基础图表',
8
+ description: '柱状图、折线图、饼图,适合数据展示',
9
+ needsMedia: false,
10
+ };
11
+ const CHART_WIDTH = 840;
12
+ const CHART_HEIGHT = 380;
13
+ const CHART_PADDING = { top: 20, right: 24, bottom: 48, left: 56 };
14
+ const INNER_WIDTH = CHART_WIDTH - CHART_PADDING.left - CHART_PADDING.right;
15
+ const INNER_HEIGHT = CHART_HEIGHT - CHART_PADDING.top - CHART_PADDING.bottom;
16
+ const COLOR_COUNT = 6;
17
+ function maxValue(values) {
18
+ if (values.length === 0)
19
+ return 0;
20
+ const max = Math.max(...values);
21
+ return max === 0 ? 1 : max;
22
+ }
23
+ function niceStep(max) {
24
+ const rough = max / 5;
25
+ const pow10 = Math.pow(10, Math.floor(Math.log10(rough)));
26
+ const residual = rough / pow10;
27
+ let step = pow10;
28
+ if (residual > 5)
29
+ step = pow10 * 10;
30
+ else if (residual > 2)
31
+ step = pow10 * 5;
32
+ else if (residual > 1)
33
+ step = pow10 * 2;
34
+ return step;
35
+ }
36
+ function barChart(labels, data) {
37
+ const max = maxValue(data);
38
+ const step = niceStep(max);
39
+ const yMax = Math.ceil(max / step) * step;
40
+ return (_jsxs("svg", { viewBox: `0 0 ${CHART_WIDTH} ${CHART_HEIGHT}`, className: "lp-chart-svg", children: [Array.from({ length: Math.floor(yMax / step) + 1 }).map((_, i) => {
41
+ const y = CHART_PADDING.top + INNER_HEIGHT - (i * step * INNER_HEIGHT) / yMax;
42
+ return (_jsxs("g", { children: [_jsx("line", { x1: CHART_PADDING.left, y1: y, x2: CHART_WIDTH - CHART_PADDING.right, y2: y, className: "lp-chart-grid" }), _jsx("text", { x: CHART_PADDING.left - 10, y: y + 4, className: "lp-chart-axis-text", textAnchor: "end", children: Math.round(i * step) })] }, `grid-${i}`));
43
+ }), data.map((value, index) => {
44
+ const barWidth = INNER_WIDTH / data.length * 0.55;
45
+ const x = CHART_PADDING.left + (index + 0.5) * (INNER_WIDTH / data.length) - barWidth / 2;
46
+ const height = (value / yMax) * INNER_HEIGHT;
47
+ const y = CHART_PADDING.top + INNER_HEIGHT - height;
48
+ return (_jsxs("g", { children: [_jsx("rect", { x: x, y: y, width: barWidth, height: height, rx: 6, className: `lp-chart-bar lp-chart-color-${index % COLOR_COUNT}` }), _jsx("text", { x: x + barWidth / 2, y: CHART_HEIGHT - CHART_PADDING.bottom + 24, className: "lp-chart-axis-text", textAnchor: "middle", children: labels[index] || '' }), _jsx("text", { x: x + barWidth / 2, y: y - 8, className: "lp-chart-value-text", textAnchor: "middle", children: value })] }, `bar-${index}`));
49
+ })] }));
50
+ }
51
+ function lineChart(labels, data) {
52
+ const max = maxValue(data);
53
+ const step = niceStep(max);
54
+ const yMax = Math.ceil(max / step) * step;
55
+ const points = data.map((value, index) => {
56
+ const x = CHART_PADDING.left + (index + 0.5) * (INNER_WIDTH / data.length);
57
+ const y = CHART_PADDING.top + INNER_HEIGHT - (value / yMax) * INNER_HEIGHT;
58
+ return { x, y, value, label: labels[index] || '' };
59
+ });
60
+ const polylinePoints = points.map((p) => `${p.x},${p.y}`).join(' ');
61
+ return (_jsxs("svg", { viewBox: `0 0 ${CHART_WIDTH} ${CHART_HEIGHT}`, className: "lp-chart-svg", children: [Array.from({ length: Math.floor(yMax / step) + 1 }).map((_, i) => {
62
+ const y = CHART_PADDING.top + INNER_HEIGHT - (i * step * INNER_HEIGHT) / yMax;
63
+ return (_jsxs("g", { children: [_jsx("line", { x1: CHART_PADDING.left, y1: y, x2: CHART_WIDTH - CHART_PADDING.right, y2: y, className: "lp-chart-grid" }), _jsx("text", { x: CHART_PADDING.left - 10, y: y + 4, className: "lp-chart-axis-text", textAnchor: "end", children: Math.round(i * step) })] }, `grid-${i}`));
64
+ }), _jsx("polyline", { points: polylinePoints, fill: "none", className: "lp-chart-line", strokeWidth: 4 }), points.map((p, index) => (_jsxs("g", { children: [_jsx("circle", { cx: p.x, cy: p.y, r: 6, className: `lp-chart-dot lp-chart-color-${index % COLOR_COUNT}` }), _jsx("text", { x: p.x, y: CHART_HEIGHT - CHART_PADDING.bottom + 24, className: "lp-chart-axis-text", textAnchor: "middle", children: p.label }), _jsx("text", { x: p.x, y: p.y - 14, className: "lp-chart-value-text", textAnchor: "middle", children: p.value })] }, `point-${index}`)))] }));
65
+ }
66
+ function pieChart(labels, data) {
67
+ const total = data.reduce((sum, v) => sum + v, 0) || 1;
68
+ const radius = Math.min(INNER_WIDTH, INNER_HEIGHT) / 2;
69
+ const cx = CHART_WIDTH / 2;
70
+ const cy = CHART_HEIGHT / 2;
71
+ let startAngle = 0;
72
+ const slices = data.map((value, index) => {
73
+ const angle = (value / total) * Math.PI * 2;
74
+ const endAngle = startAngle + angle;
75
+ const largeArc = angle > Math.PI ? 1 : 0;
76
+ const x1 = cx + radius * Math.cos(startAngle);
77
+ const y1 = cy + radius * Math.sin(startAngle);
78
+ const x2 = cx + radius * Math.cos(endAngle);
79
+ const y2 = cy + radius * Math.sin(endAngle);
80
+ const path = `M ${cx} ${cy} L ${x1} ${y1} A ${radius} ${radius} 0 ${largeArc} 1 ${x2} ${y2} Z`;
81
+ const midAngle = startAngle + angle / 2;
82
+ const labelRadius = radius * 0.7;
83
+ const labelX = cx + labelRadius * Math.cos(midAngle);
84
+ const labelY = cy + labelRadius * Math.sin(midAngle);
85
+ startAngle = endAngle;
86
+ return { path, label: labels[index] || '', value, labelX, labelY, index };
87
+ });
88
+ return (_jsx("svg", { viewBox: `0 0 ${CHART_WIDTH} ${CHART_HEIGHT}`, className: "lp-chart-svg", children: slices.map((slice) => (_jsxs("g", { children: [_jsx("path", { d: slice.path, className: `lp-chart-slice lp-chart-color-${slice.index % COLOR_COUNT}` }), _jsx("text", { x: slice.labelX, y: slice.labelY, className: "lp-chart-pie-label", textAnchor: "middle", dominantBaseline: "middle", children: slice.label })] }, `slice-${slice.index}`))) }));
89
+ }
90
+ export function ChartV1(props) {
91
+ const { title, kicker, type = 'bar', labels = [], data = [], unit, _slideIdx, _editable } = props;
92
+ const chartElement = type === 'line' ? lineChart(labels, data) : type === 'pie' ? pieChart(labels, data) : barChart(labels, data);
93
+ return (_jsx("div", { className: "lp-slide lp-chart-v1", children: _jsxs("div", { className: "lp-chart-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-chart-title", children: title }), _jsx("div", { className: "lp-chart-wrapper", children: chartElement }), unit && _jsxs("div", { className: "lp-chart-unit", children: ["\u5355\u4F4D\uFF1A", unit] })] }) }));
94
+ }
95
+ //# sourceMappingURL=chart-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-v1.js","sourceRoot":"","sources":["../../src/base/chart-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAcrD,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,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACnE,MAAM,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;AAC3E,MAAM,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7E,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,SAAS,QAAQ,CAAC,MAAgB;IAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAChC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,QAAQ,GAAG,CAAC;QAAE,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;SAC/B,IAAI,QAAQ,GAAG,CAAC;QAAE,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;SACnC,IAAI,QAAQ,GAAG,CAAC;QAAE,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,MAAgB,EAAE,IAAc;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAE1C,OAAO,CACL,eAAK,OAAO,EAAE,OAAO,WAAW,IAAI,YAAY,EAAE,EAAE,SAAS,EAAC,cAAc,aAEzE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChE,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;gBAC9E,OAAO,CACL,wBACE,eAAM,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAC,eAAe,GAAG,EAC/G,eAAM,CAAC,EAAE,aAAa,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAC,oBAAoB,EAAC,UAAU,EAAC,KAAK,YACxF,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAChB,KAJD,QAAQ,CAAC,EAAE,CAKf,CACL,CAAC;YACJ,CAAC,CAAC,EAGD,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACzB,MAAM,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBAClD,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;gBAC1F,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC7C,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,YAAY,GAAG,MAAM,CAAC;gBACpD,OAAO,CACL,wBACE,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,+BAA+B,KAAK,GAAG,WAAW,EAAE,GAAI,EAC7H,eAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,SAAS,EAAC,oBAAoB,EAAC,UAAU,EAAC,QAAQ,YACvH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GACf,EACP,eAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAC,qBAAqB,EAAC,UAAU,EAAC,QAAQ,YACrF,KAAK,GACD,KAPD,OAAO,KAAK,EAAE,CAQlB,CACL,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,MAAgB,EAAE,IAAc;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,YAAY,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC;QAC3E,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpE,OAAO,CACL,eAAK,OAAO,EAAE,OAAO,WAAW,IAAI,YAAY,EAAE,EAAE,SAAS,EAAC,cAAc,aAEzE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChE,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;gBAC9E,OAAO,CACL,wBACE,eAAM,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAC,eAAe,GAAG,EAC/G,eAAM,CAAC,EAAE,aAAa,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAC,oBAAoB,EAAC,UAAU,EAAC,KAAK,YACxF,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAChB,KAJD,QAAQ,CAAC,EAAE,CAKf,CACL,CAAC;YACJ,CAAC,CAAC,EAEF,mBAAU,MAAM,EAAE,cAAc,EAAE,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,eAAe,EAAC,WAAW,EAAE,CAAC,GAAI,EAEzF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACxB,wBACE,iBAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,+BAA+B,KAAK,GAAG,WAAW,EAAE,GAAI,EACnG,eAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,SAAS,EAAC,oBAAoB,EAAC,UAAU,EAAC,QAAQ,YAC1G,CAAC,CAAC,KAAK,GACH,EACP,eAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,EAAC,qBAAqB,EAAC,UAAU,EAAC,QAAQ,YAC3E,CAAC,CAAC,KAAK,GACH,KAPD,SAAS,KAAK,EAAE,CAQpB,CACL,CAAC,IACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,MAAgB,EAAE,IAAc;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,YAAY,GAAG,CAAC,CAAC;IAE5B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,MAAM,IAAI,MAAM,MAAM,QAAQ,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;QAC/F,MAAM,QAAQ,GAAG,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC;QACjC,MAAM,MAAM,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAErD,UAAU,GAAG,QAAQ,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,cAAK,OAAO,EAAE,OAAO,WAAW,IAAI,YAAY,EAAE,EAAE,SAAS,EAAC,cAAc,YACzE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,wBACE,eAAM,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,iCAAiC,KAAK,CAAC,KAAK,GAAG,WAAW,EAAE,GAAI,EAChG,eAAM,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAC,oBAAoB,EAAC,UAAU,EAAC,QAAQ,EAAC,gBAAgB,EAAC,QAAQ,YACjH,KAAK,CAAC,KAAK,GACP,KAJD,SAAS,KAAK,CAAC,KAAK,EAAE,CAK1B,CACL,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAElG,MAAM,YAAY,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAElI,OAAO,CACL,cAAK,SAAS,EAAC,sBAAsB,YACnC,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,2BAA2B,YAChH,KAAK,GACQ,EAChB,cAAK,SAAS,EAAC,kBAAkB,YAC9B,YAAY,GACT,EACL,IAAI,IAAI,eAAK,SAAS,EAAC,eAAe,mCAAK,IAAI,IAAO,IACnD,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface ClosingV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ subtitle?: string;
7
+ cta?: string;
8
+ _slideIdx?: number;
9
+ _editable?: boolean;
10
+ [key: string]: unknown;
11
+ }
12
+ export declare const closingV1Meta: LayoutMeta;
13
+ export declare function ClosingV1(props: ClosingV1Props): ReactNode;
14
+ //# sourceMappingURL=closing-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closing-v1.d.ts","sourceRoot":"","sources":["../../src/base/closing-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,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,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,CA0B1D"}
@@ -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 closingV1Meta = {
4
+ id: 'closing_v1',
5
+ theme: 'base',
6
+ role: 'closing',
7
+ displayName: '极简结尾',
8
+ description: '居中大标题 + 行动号召,适合结尾页',
9
+ needsMedia: false,
10
+ };
11
+ export function ClosingV1(props) {
12
+ const { kicker, title, subtitle, cta, _slideIdx, _editable } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-closing-v1", children: _jsxs("div", { className: "lp-closing-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: "h1", className: "lp-heading lp-closing-title", children: title }), subtitle && (_jsx(EditableField, { prop: "subtitle", slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-closing-subtitle", children: subtitle })), cta && (_jsx(EditableField, { prop: "cta", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-closing-cta", children: cta }))] }) }));
14
+ }
15
+ //# sourceMappingURL=closing-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closing-v1.js","sourceRoot":"","sources":["../../src/base/closing-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAYrD,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACrE,OAAO,CACL,cAAK,SAAS,EAAC,wBAAwB,YACrC,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,6BAA6B,YAClH,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,qBAAqB,YAC5G,QAAQ,GACK,CACjB,EACA,GAAG,IAAI,CACN,KAAC,aAAa,IAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,gBAAgB,YACpG,GAAG,GACU,CACjB,IACG,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface ClosingV2Props {
4
+ title: string;
5
+ subtitle?: string;
6
+ contact?: string;
7
+ email?: string;
8
+ link?: string;
9
+ _slideIdx?: number;
10
+ _editable?: boolean;
11
+ [key: string]: unknown;
12
+ }
13
+ export declare const closingV2Meta: LayoutMeta;
14
+ export declare function ClosingV2(props: ClosingV2Props): ReactNode;
15
+ //# sourceMappingURL=closing-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closing-v2.d.ts","sourceRoot":"","sources":["../../src/base/closing-v2.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,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,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,CAiC1D"}
@@ -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 closingV2Meta = {
4
+ id: 'closing_v2',
5
+ theme: 'base',
6
+ role: 'closing',
7
+ displayName: '联系方式结尾',
8
+ description: '结尾页 + 联系方式/邮箱/链接',
9
+ needsMedia: false,
10
+ };
11
+ export function ClosingV2(props) {
12
+ const { title, subtitle, contact, email, link, _slideIdx, _editable } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-closing-v2", children: _jsxs("div", { className: "lp-closing-v2-content", children: [_jsx(EditableField, { prop: "title", slideIdx: _slideIdx, editable: _editable, as: "h1", className: "lp-heading lp-closing-v2-title", children: title }), subtitle && (_jsx(EditableField, { prop: "subtitle", slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-closing-v2-subtitle", children: subtitle })), _jsxs("div", { className: "lp-closing-v2-contacts", children: [contact && (_jsx(EditableField, { prop: "contact", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-closing-v2-contact", children: contact })), email && (_jsx(EditableField, { prop: "email", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-closing-v2-email", children: email })), link && (_jsx(EditableField, { prop: "link", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-closing-v2-link", children: link }))] })] }) }));
14
+ }
15
+ //# sourceMappingURL=closing-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closing-v2.js","sourceRoot":"","sources":["../../src/base/closing-v2.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAarD,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC9E,OAAO,CACL,cAAK,SAAS,EAAC,wBAAwB,YACrC,eAAK,SAAS,EAAC,uBAAuB,aACpC,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,gCAAgC,YACrH,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,wBAAwB,YAC/G,QAAQ,GACK,CACjB,EACD,eAAK,SAAS,EAAC,wBAAwB,aACpC,OAAO,IAAI,CACV,KAAC,aAAa,IAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,uBAAuB,YAC/G,OAAO,GACM,CACjB,EACA,KAAK,IAAI,CACR,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,qBAAqB,YAC3G,KAAK,GACQ,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,oBAAoB,YACzG,IAAI,GACS,CACjB,IACG,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface ComparisonV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ leftTitle?: string;
7
+ leftPoints?: string[];
8
+ rightTitle?: string;
9
+ rightPoints?: string[];
10
+ _slideIdx?: number;
11
+ _editable?: boolean;
12
+ [key: string]: unknown;
13
+ }
14
+ export declare const comparisonV1Meta: LayoutMeta;
15
+ export declare function ComparisonV1(props: ComparisonV1Props): ReactNode;
16
+ //# sourceMappingURL=comparison-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-v1.d.ts","sourceRoot":"","sources":["../../src/base/comparison-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,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,EAAE,UAO9B,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAkEhE"}
@@ -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 comparisonV1Meta = {
4
+ id: 'comparison_v1',
5
+ theme: 'base',
6
+ role: 'comparison',
7
+ displayName: '左右对比',
8
+ description: '左右两栏对比,适合优劣分析',
9
+ needsMedia: false,
10
+ };
11
+ export function ComparisonV1(props) {
12
+ const { kicker, title, leftTitle = '方案 A', leftPoints = [], rightTitle = '方案 B', rightPoints = [], _slideIdx, _editable, } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-comparison-v1", children: _jsxs("div", { className: "lp-comparison-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-comparison-title", children: title }), _jsxs("div", { className: "lp-comparison-grid", children: [_jsxs("div", { className: "lp-comparison-col", children: [_jsx(EditableField, { prop: "leftTitle", slideIdx: _slideIdx, editable: _editable, as: "h3", children: leftTitle }), _jsx("ul", { children: leftPoints.map((point, index) => (_jsx("li", { children: _jsx(EditableField, { prop: `leftPoints.${index}`, slideIdx: _slideIdx, editable: _editable, as: "span", children: point }) }, index))) })] }), _jsxs("div", { className: "lp-comparison-col", children: [_jsx(EditableField, { prop: "rightTitle", slideIdx: _slideIdx, editable: _editable, as: "h3", children: rightTitle }), _jsx("ul", { children: rightPoints.map((point, index) => (_jsx("li", { children: _jsx(EditableField, { prop: `rightPoints.${index}`, slideIdx: _slideIdx, editable: _editable, as: "span", children: point }) }, index))) })] })] })] }) }));
14
+ }
15
+ //# sourceMappingURL=comparison-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-v1.js","sourceRoot":"","sources":["../../src/base/comparison-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAcrD,MAAM,CAAC,MAAM,gBAAgB,GAAe;IAC1C,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EACJ,MAAM,EACN,KAAK,EACL,SAAS,GAAG,MAAM,EAClB,UAAU,GAAG,EAAE,EACf,UAAU,GAAG,MAAM,EACnB,WAAW,GAAG,EAAE,EAChB,SAAS,EACT,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,cAAK,SAAS,EAAC,2BAA2B,YACxC,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,gCAAgC,YACrH,KAAK,GACQ,EAChB,eAAK,SAAS,EAAC,oBAAoB,aACjC,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,aAAa,IAAC,IAAI,EAAC,WAAW,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,YAC9E,SAAS,GACI,EAChB,uBACG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,uBACE,KAAC,aAAa,IACZ,IAAI,EAAE,cAAc,KAAK,EAAE,EAC3B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,MAAM,YAER,KAAK,GACQ,IART,KAAK,CAST,CACN,CAAC,GACC,IACD,EACN,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,aAAa,IAAC,IAAI,EAAC,YAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,YAC/E,UAAU,GACG,EAChB,uBACG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,uBACE,KAAC,aAAa,IACZ,IAAI,EAAE,eAAe,KAAK,EAAE,EAC5B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,MAAM,YAER,KAAK,GACQ,IART,KAAK,CAST,CACN,CAAC,GACC,IACD,IACF,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface ComparisonV2Props {
4
+ kicker?: string;
5
+ title: string;
6
+ leftTitle?: string;
7
+ leftPoints?: string[];
8
+ rightTitle?: string;
9
+ rightPoints?: string[];
10
+ _slideIdx?: number;
11
+ _editable?: boolean;
12
+ [key: string]: unknown;
13
+ }
14
+ export declare const comparisonV2Meta: LayoutMeta;
15
+ export declare function ComparisonV2(props: ComparisonV2Props): ReactNode;
16
+ //# sourceMappingURL=comparison-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-v2.d.ts","sourceRoot":"","sources":["../../src/base/comparison-v2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,EAAE,UAO9B,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAwDhE"}
@@ -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 comparisonV2Meta = {
4
+ id: 'comparison_v2',
5
+ theme: 'base',
6
+ role: 'comparison',
7
+ displayName: '优缺点对比',
8
+ description: '左右卡片式优缺点/正反面对比',
9
+ needsMedia: false,
10
+ };
11
+ export function ComparisonV2(props) {
12
+ const { kicker, title, leftTitle = '优势', leftPoints = [], rightTitle = '劣势', rightPoints = [], _slideIdx, _editable, } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-comparison-v2", children: _jsxs("div", { className: "lp-comparison-v2-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-comparison-title", children: title }), _jsxs("div", { className: "lp-comparison-v2-grid", children: [_jsxs("div", { className: "lp-comparison-v2-card lp-comparison-v2-card-left", children: [_jsx(EditableField, { prop: "leftTitle", slideIdx: _slideIdx, editable: _editable, as: "h3", children: leftTitle }), _jsx("ul", { children: leftPoints.map((point, index) => (_jsx("li", { children: _jsx(EditableField, { prop: `leftPoints.${index}`, slideIdx: _slideIdx, editable: _editable, as: "span", children: point }) }, index))) })] }), _jsxs("div", { className: "lp-comparison-v2-card lp-comparison-v2-card-right", children: [_jsx(EditableField, { prop: "rightTitle", slideIdx: _slideIdx, editable: _editable, as: "h3", children: rightTitle }), _jsx("ul", { children: rightPoints.map((point, index) => (_jsx("li", { children: _jsx(EditableField, { prop: `rightPoints.${index}`, slideIdx: _slideIdx, editable: _editable, as: "span", children: point }) }, index))) })] })] })] }) }));
14
+ }
15
+ //# sourceMappingURL=comparison-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-v2.js","sourceRoot":"","sources":["../../src/base/comparison-v2.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAcrD,MAAM,CAAC,MAAM,gBAAgB,GAAe;IAC1C,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EACJ,MAAM,EACN,KAAK,EACL,SAAS,GAAG,IAAI,EAChB,UAAU,GAAG,EAAE,EACf,UAAU,GAAG,IAAI,EACjB,WAAW,GAAG,EAAE,EAChB,SAAS,EACT,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,cAAK,SAAS,EAAC,2BAA2B,YACxC,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,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,gCAAgC,YACrH,KAAK,GACQ,EAChB,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAK,SAAS,EAAC,kDAAkD,aAC/D,KAAC,aAAa,IAAC,IAAI,EAAC,WAAW,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,YAC9E,SAAS,GACI,EAChB,uBACG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,uBACE,KAAC,aAAa,IAAC,IAAI,EAAE,cAAc,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,YAC5F,KAAK,GACQ,IAHT,KAAK,CAIT,CACN,CAAC,GACC,IACD,EACN,eAAK,SAAS,EAAC,mDAAmD,aAChE,KAAC,aAAa,IAAC,IAAI,EAAC,YAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,IAAI,YAC/E,UAAU,GACG,EAChB,uBACG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,uBACE,KAAC,aAAa,IAAC,IAAI,EAAE,eAAe,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,YAC7F,KAAK,GACQ,IAHT,KAAK,CAIT,CACN,CAAC,GACC,IACD,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 ContentV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ points?: string[];
7
+ _slideIdx?: number;
8
+ _editable?: boolean;
9
+ [key: string]: unknown;
10
+ }
11
+ export declare const contentV1Meta: LayoutMeta;
12
+ export declare function ContentV1(props: ContentV1Props): ReactNode;
13
+ //# sourceMappingURL=content-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-v1.d.ts","sourceRoot":"","sources":["../../src/base/content-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,MAAM,EAAE,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,aAAa,EAAE,UAO3B,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAgC1D"}
@@ -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 contentV1Meta = {
4
+ id: 'content_v1',
5
+ theme: 'base',
6
+ role: 'content',
7
+ displayName: '要点内容',
8
+ description: '标题 + bullet points,适合正文页',
9
+ needsMedia: false,
10
+ };
11
+ export function ContentV1(props) {
12
+ const { kicker, title, points = [], _slideIdx, _editable } = props;
13
+ return (_jsx("div", { className: "lp-slide lp-content-v1", children: _jsxs("div", { className: "lp-content-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-content-title", children: title }), points.length > 0 && (_jsx("ul", { className: "lp-bullet-list", children: points.map((point, index) => (_jsx("li", { children: _jsx(EditableField, { prop: `points.${index}`, slideIdx: _slideIdx, editable: _editable, as: "span", children: point }) }, index))) }))] }) }));
14
+ }
15
+ //# sourceMappingURL=content-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-v1.js","sourceRoot":"","sources":["../../src/base/content-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,MAAM;IACnB,WAAW,EAAE,0BAA0B;IACvC,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;IACnE,OAAO,CACL,cAAK,SAAS,EAAC,wBAAwB,YACrC,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,6BAA6B,YAClH,KAAK,GACQ,EACf,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,aAAI,SAAS,EAAC,gBAAgB,YAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,uBACE,KAAC,aAAa,IACZ,IAAI,EAAE,UAAU,KAAK,EAAE,EACvB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,MAAM,YAER,KAAK,GACQ,IART,KAAK,CAST,CACN,CAAC,GACC,CACN,IACG,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { LayoutMeta } from '@lemonppt/core';
2
+ import type { ReactNode } from 'react';
3
+ export interface ContentV2Props {
4
+ kicker?: string;
5
+ title: string;
6
+ leftPoints?: string[];
7
+ rightPoints?: string[];
8
+ _slideIdx?: number;
9
+ _editable?: boolean;
10
+ [key: string]: unknown;
11
+ }
12
+ export declare const contentV2Meta: LayoutMeta;
13
+ export declare function ContentV2(props: ContentV2Props): ReactNode;
14
+ //# sourceMappingURL=content-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-v2.d.ts","sourceRoot":"","sources":["../../src/base/content-v2.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,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,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,CAwC1D"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EditableField } from '../editable-field.js';
3
+ export const contentV2Meta = {
4
+ id: 'content_v2',
5
+ theme: 'base',
6
+ role: 'content',
7
+ displayName: '双列要点',
8
+ description: '标题 + 左右两列 bullet points',
9
+ needsMedia: false,
10
+ };
11
+ export function ContentV2(props) {
12
+ const { kicker, title, leftPoints = [], rightPoints = [], _slideIdx, _editable } = props;
13
+ function renderColumn(points, prefix) {
14
+ return (_jsx("ul", { className: "lp-bullet-list lp-bullet-list-compact", children: points.map((point, index) => (_jsx("li", { children: _jsx(EditableField, { prop: `${prefix}.${index}`, slideIdx: _slideIdx, editable: _editable, as: "span", children: point }) }, index))) }));
15
+ }
16
+ return (_jsxs("div", { className: "lp-slide lp-content-v2", children: [_jsxs("div", { className: "lp-content-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 lp-content-title", children: title })] }), _jsxs("div", { className: "lp-content-v2-columns", children: [_jsx("div", { className: "lp-content-v2-column", children: renderColumn(leftPoints, 'leftPoints') }), _jsx("div", { className: "lp-content-v2-column", children: renderColumn(rightPoints, 'rightPoints') })] })] }));
17
+ }
18
+ //# sourceMappingURL=content-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-v2.js","sourceRoot":"","sources":["../../src/base/content-v2.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAYrD,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,yBAAyB;IACtC,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEzF,SAAS,YAAY,CAAC,MAAgB,EAAE,MAAoC;QAC1E,OAAO,CACL,aAAI,SAAS,EAAC,uCAAuC,YAClD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,uBACE,KAAC,aAAa,IACZ,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,EAAE,EAC1B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,MAAM,YAER,KAAK,GACQ,IART,KAAK,CAST,CACN,CAAC,GACC,CACN,CAAC;IACJ,CAAC;IAED,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,6BAA6B,YAClH,KAAK,GACQ,IACZ,EACN,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,sBAAsB,YAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,GAAO,EACpF,cAAK,SAAS,EAAC,sBAAsB,YAAE,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,GAAO,IAClF,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 ContentV3Props {
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 contentV3Meta: LayoutMeta;
14
+ export declare function ContentV3(props: ContentV3Props): ReactNode;
15
+ //# sourceMappingURL=content-v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-v3.d.ts","sourceRoot":"","sources":["../../src/base/content-v3.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,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,aAAa,EAAE,UAO3B,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAoC1D"}
@@ -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 contentV3Meta = {
4
+ id: 'content_v3',
5
+ theme: 'base',
6
+ role: 'content',
7
+ displayName: '图文并排',
8
+ description: '左侧标题 + 要点,右侧图片,适合产品特性页',
9
+ needsMedia: true,
10
+ };
11
+ export function ContentV3(props) {
12
+ const { kicker, title, points = [], imageUrl, imageAlt, _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-content-v3", children: [_jsxs("div", { className: "lp-content-v3-text", 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-content-title", children: title }), points.length > 0 && (_jsx("ul", { className: "lp-bullet-list lp-bullet-list-compact", 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-content-v3-media", children: _jsx("img", { src: imageUrl, alt: imageAlt || '', "data-lp-editable-image": "true", "data-lp-slide-idx": _slideIdx, "data-lp-prop": "imageUrl" }) })] }));
14
+ }
15
+ //# sourceMappingURL=content-v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-v3.js","sourceRoot":"","sources":["../../src/base/content-v3.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAarD,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,wBAAwB;IACrC,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACvF,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,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,6BAA6B,YAClH,KAAK,GACQ,EACf,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,aAAI,SAAS,EAAC,uCAAuC,YAClD,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,qBAAqB,YAClC,cACE,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,QAAQ,IAAI,EAAE,4BACI,MAAM,uBACV,SAAS,kBACf,UAAU,GACvB,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 CoverV1Props {
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 coverV1Meta: LayoutMeta;
14
+ export declare function CoverV1(props: CoverV1Props): ReactNode;
15
+ //# sourceMappingURL=cover-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cover-v1.d.ts","sourceRoot":"","sources":["../../src/base/cover-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,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,WAAW,EAAE,UAOzB,CAAC;AAEF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAoCtD"}
@@ -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 coverV1Meta = {
4
+ id: 'cover_v1',
5
+ theme: 'base',
6
+ role: 'cover',
7
+ displayName: '极简封面',
8
+ description: '居中大标题,适合正式汇报封面',
9
+ needsMedia: true,
10
+ };
11
+ export function CoverV1(props) {
12
+ const { kicker, title, subtitle, date, image, _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-cover-v1", children: [image && (_jsx("img", { className: "lp-cover-image", src: image, alt: "", "data-lp-editable-image": "true", "data-lp-slide-idx": _slideIdx, "data-lp-prop": "image" })), _jsxs("div", { className: "lp-cover-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: "h1", className: "lp-heading lp-cover-title", children: title }), subtitle && (_jsx(EditableField, { prop: "subtitle", slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-cover-subtitle", children: subtitle })), date && (_jsx(EditableField, { prop: "date", slideIdx: _slideIdx, editable: _editable, as: "div", className: "lp-cover-date", children: date }))] })] }));
14
+ }
15
+ //# sourceMappingURL=cover-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cover-v1.js","sourceRoot":"","sources":["../../src/base/cover-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,OAAO;IACb,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC7E,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aAClC,KAAK,IAAI,CACR,cACE,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAE,KAAK,EACV,GAAG,EAAC,EAAE,4BACiB,MAAM,uBACV,SAAS,kBACf,OAAO,GACpB,CACH,EACD,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,2BAA2B,YAChH,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,mBAAmB,YAC1G,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,eAAe,YACpG,IAAI,GACS,CACjB,IACG,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 FaqV1Props {
4
+ kicker?: string;
5
+ title: string;
6
+ items?: {
7
+ q?: string;
8
+ a?: string;
9
+ }[];
10
+ _slideIdx?: number;
11
+ _editable?: boolean;
12
+ [key: string]: unknown;
13
+ }
14
+ export declare const faqV1Meta: LayoutMeta;
15
+ export declare function FaqV1(props: FaqV1Props): ReactNode;
16
+ //# sourceMappingURL=faq-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faq-v1.d.ts","sourceRoot":"","sources":["../../src/base/faq-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,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,SAAS,EAAE,UAOvB,CAAC;AAEF,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAmClD"}
@@ -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 faqV1Meta = {
4
+ id: 'faq_v1',
5
+ theme: 'base',
6
+ role: 'faq',
7
+ displayName: '问答页',
8
+ description: 'FAQ 问答列表,适合澄清常见疑问',
9
+ needsMedia: false,
10
+ };
11
+ export function FaqV1(props) {
12
+ const { kicker, title, items = [], _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-faq-v1", children: [_jsxs("div", { className: "lp-faq-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-faq-v1-list", children: items.map((item, index) => (_jsxs("div", { className: "lp-faq-v1-item", children: [_jsxs("div", { className: "lp-faq-v1-question", children: [_jsx("span", { className: "lp-faq-v1-q", children: "Q" }), _jsx(EditableField, { prop: `items.${index}.q`, slideIdx: _slideIdx, editable: _editable, as: "span", children: item.q })] }), _jsxs("div", { className: "lp-faq-v1-answer", children: [_jsx("span", { className: "lp-faq-v1-a", children: "A" }), _jsx(EditableField, { prop: `items.${index}.a`, slideIdx: _slideIdx, editable: _editable, as: "span", children: item.a })] })] }, index))) })] }));
14
+ }
15
+ //# sourceMappingURL=faq-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faq-v1.js","sourceRoot":"","sources":["../../src/base/faq-v1.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAElE,OAAO,CACL,eAAK,SAAS,EAAC,oBAAoB,aACjC,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,YAAY,YACjG,KAAK,GACQ,IACZ,EACN,cAAK,SAAS,EAAC,gBAAgB,YAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,eAAiB,SAAS,EAAC,gBAAgB,aACzC,eAAK,SAAS,EAAC,oBAAoB,aACjC,eAAM,SAAS,EAAC,aAAa,kBAAS,EACtC,KAAC,aAAa,IAAC,IAAI,EAAE,SAAS,KAAK,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,YACzF,IAAI,CAAC,CAAC,GACO,IACZ,EACN,eAAK,SAAS,EAAC,kBAAkB,aAC/B,eAAM,SAAS,EAAC,aAAa,kBAAS,EACtC,KAAC,aAAa,IAAC,IAAI,EAAE,SAAS,KAAK,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAC,MAAM,YACzF,IAAI,CAAC,CAAC,GACO,IACZ,KAZE,KAAK,CAaT,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 FeatureV1Props {
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 featureV1Meta: LayoutMeta;
15
+ export declare function FeatureV1(props: FeatureV1Props): ReactNode;
16
+ //# sourceMappingURL=feature-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-v1.d.ts","sourceRoot":"","sources":["../../src/base/feature-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,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,aAAa,EAAE,UAO3B,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CA4C1D"}
@@ -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 featureV1Meta = {
4
+ id: 'feature_v1',
5
+ theme: 'base',
6
+ role: 'feature',
7
+ displayName: '产品特性',
8
+ description: '三列卡片展示产品特性或优势',
9
+ needsMedia: false,
10
+ };
11
+ export function FeatureV1(props) {
12
+ const { kicker, title, features = [], _slideIdx, _editable } = props;
13
+ return (_jsxs("div", { className: "lp-slide lp-feature-v1", children: [_jsxs("div", { className: "lp-feature-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-feature-grid", children: features.map((feature, index) => (_jsxs("div", { className: "lp-feature-card", children: [_jsx("div", { className: "lp-feature-number", children: String(index + 1).padStart(2, '0') }), _jsx(EditableField, { prop: `features.${index}.title`, slideIdx: _slideIdx, editable: _editable, as: "h3", className: "lp-feature-title", children: feature.title }), feature.description && (_jsx(EditableField, { prop: `features.${index}.description`, slideIdx: _slideIdx, editable: _editable, as: "p", className: "lp-feature-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/base/feature-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,MAAM;IACnB,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAErE,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,mBAAmB,aAC/B,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,iBAAiB,YAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,eAAiB,SAAS,EAAC,iBAAiB,aAC1C,cAAK,SAAS,EAAC,mBAAmB,YAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAO,EAC7E,KAAC,aAAa,IACZ,IAAI,EAAE,YAAY,KAAK,QAAQ,EAC/B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAC,IAAI,EACP,SAAS,EAAC,kBAAkB,YAE3B,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,wBAAwB,YAEjC,OAAO,CAAC,WAAW,GACN,CACjB,KArBO,KAAK,CAsBT,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}