@lemonppt/templates 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/chart-v1.d.ts +16 -0
- package/dist/base/chart-v1.d.ts.map +1 -0
- package/dist/base/chart-v1.js +95 -0
- package/dist/base/chart-v1.js.map +1 -0
- package/dist/base/closing-v1.d.ts +14 -0
- package/dist/base/closing-v1.d.ts.map +1 -0
- package/dist/base/closing-v1.js +15 -0
- package/dist/base/closing-v1.js.map +1 -0
- package/dist/base/closing-v2.d.ts +15 -0
- package/dist/base/closing-v2.d.ts.map +1 -0
- package/dist/base/closing-v2.js +15 -0
- package/dist/base/closing-v2.js.map +1 -0
- package/dist/base/comparison-v1.d.ts +16 -0
- package/dist/base/comparison-v1.d.ts.map +1 -0
- package/dist/base/comparison-v1.js +15 -0
- package/dist/base/comparison-v1.js.map +1 -0
- package/dist/base/comparison-v2.d.ts +16 -0
- package/dist/base/comparison-v2.d.ts.map +1 -0
- package/dist/base/comparison-v2.js +15 -0
- package/dist/base/comparison-v2.js.map +1 -0
- package/dist/base/content-v1.d.ts +13 -0
- package/dist/base/content-v1.d.ts.map +1 -0
- package/dist/base/content-v1.js +15 -0
- package/dist/base/content-v1.js.map +1 -0
- package/dist/base/content-v2.d.ts +14 -0
- package/dist/base/content-v2.d.ts.map +1 -0
- package/dist/base/content-v2.js +18 -0
- package/dist/base/content-v2.js.map +1 -0
- package/dist/base/content-v3.d.ts +15 -0
- package/dist/base/content-v3.d.ts.map +1 -0
- package/dist/base/content-v3.js +15 -0
- package/dist/base/content-v3.js.map +1 -0
- package/dist/base/cover-v1.d.ts +15 -0
- package/dist/base/cover-v1.d.ts.map +1 -0
- package/dist/base/cover-v1.js +15 -0
- package/dist/base/cover-v1.js.map +1 -0
- package/dist/base/faq-v1.d.ts +16 -0
- package/dist/base/faq-v1.d.ts.map +1 -0
- package/dist/base/faq-v1.js +15 -0
- package/dist/base/faq-v1.js.map +1 -0
- package/dist/base/feature-v1.d.ts +16 -0
- package/dist/base/feature-v1.d.ts.map +1 -0
- package/dist/base/feature-v1.js +15 -0
- package/dist/base/feature-v1.js.map +1 -0
- package/dist/base/gallery-v1.d.ts +16 -0
- package/dist/base/gallery-v1.d.ts.map +1 -0
- package/dist/base/gallery-v1.js +15 -0
- package/dist/base/gallery-v1.js.map +1 -0
- package/dist/base/image-v1.d.ts +14 -0
- package/dist/base/image-v1.d.ts.map +1 -0
- package/dist/base/image-v1.js +15 -0
- package/dist/base/image-v1.js.map +1 -0
- package/dist/base/metric-v1.d.ts +14 -0
- package/dist/base/metric-v1.d.ts.map +1 -0
- package/dist/base/metric-v1.js +15 -0
- package/dist/base/metric-v1.js.map +1 -0
- package/dist/base/metric-v2.d.ts +14 -0
- package/dist/base/metric-v2.d.ts.map +1 -0
- package/dist/base/metric-v2.js +15 -0
- package/dist/base/metric-v2.js.map +1 -0
- package/dist/base/partners-v1.d.ts +16 -0
- package/dist/base/partners-v1.d.ts.map +1 -0
- package/dist/base/partners-v1.js +15 -0
- package/dist/base/partners-v1.js.map +1 -0
- package/dist/base/pest-v1.d.ts +16 -0
- package/dist/base/pest-v1.d.ts.map +1 -0
- package/dist/base/pest-v1.js +15 -0
- package/dist/base/pest-v1.js.map +1 -0
- package/dist/base/pricing-v1.d.ts +19 -0
- package/dist/base/pricing-v1.d.ts.map +1 -0
- package/dist/base/pricing-v1.js +15 -0
- package/dist/base/pricing-v1.js.map +1 -0
- package/dist/base/process-v1.d.ts +13 -0
- package/dist/base/process-v1.d.ts.map +1 -0
- package/dist/base/process-v1.js +15 -0
- package/dist/base/process-v1.js.map +1 -0
- package/dist/base/process-v2.d.ts +16 -0
- package/dist/base/process-v2.d.ts.map +1 -0
- package/dist/base/process-v2.js +15 -0
- package/dist/base/process-v2.js.map +1 -0
- package/dist/base/quote-v1.d.ts +13 -0
- package/dist/base/quote-v1.d.ts.map +1 -0
- package/dist/base/quote-v1.js +15 -0
- package/dist/base/quote-v1.js.map +1 -0
- package/dist/base/quote-v2.d.ts +13 -0
- package/dist/base/quote-v2.d.ts.map +1 -0
- package/dist/base/quote-v2.js +15 -0
- package/dist/base/quote-v2.js.map +1 -0
- package/dist/base/roadmap-v1.d.ts +17 -0
- package/dist/base/roadmap-v1.d.ts.map +1 -0
- package/dist/base/roadmap-v1.js +15 -0
- package/dist/base/roadmap-v1.js.map +1 -0
- package/dist/base/split-v1.d.ts +15 -0
- package/dist/base/split-v1.d.ts.map +1 -0
- package/dist/base/split-v1.js +15 -0
- package/dist/base/split-v1.js.map +1 -0
- package/dist/base/stats-v1.d.ts +18 -0
- package/dist/base/stats-v1.d.ts.map +1 -0
- package/dist/base/stats-v1.js +15 -0
- package/dist/base/stats-v1.js.map +1 -0
- package/dist/base/swot-v1.d.ts +16 -0
- package/dist/base/swot-v1.d.ts.map +1 -0
- package/dist/base/swot-v1.js +15 -0
- package/dist/base/swot-v1.js.map +1 -0
- package/dist/base/table-of-contents-v1.d.ts +13 -0
- package/dist/base/table-of-contents-v1.d.ts.map +1 -0
- package/dist/base/table-of-contents-v1.js +15 -0
- package/dist/base/table-of-contents-v1.js.map +1 -0
- package/dist/base/team-v1.d.ts +18 -0
- package/dist/base/team-v1.d.ts.map +1 -0
- package/dist/base/team-v1.js +15 -0
- package/dist/base/team-v1.js.map +1 -0
- package/dist/base/testimonial-v1.d.ts +15 -0
- package/dist/base/testimonial-v1.d.ts.map +1 -0
- package/dist/base/testimonial-v1.js +15 -0
- package/dist/base/testimonial-v1.js.map +1 -0
- package/dist/base/timeline-v1.d.ts +17 -0
- package/dist/base/timeline-v1.d.ts.map +1 -0
- package/dist/base/timeline-v1.js +15 -0
- package/dist/base/timeline-v1.js.map +1 -0
- package/dist/index.d.ts +30 -30
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -30
- package/dist/index.js.map +1 -1
- package/dist/registry.js +30 -30
- package/dist/registry.js.map +1 -1
- 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":"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"}
|
|
@@ -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"}
|