@lemonppt/templates 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/editable-field.d.ts +16 -0
- package/dist/editable-field.d.ts.map +1 -0
- package/dist/editable-field.js +12 -0
- package/dist/editable-field.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/minimal/chart-v1.d.ts +16 -0
- package/dist/minimal/chart-v1.d.ts.map +1 -0
- package/dist/minimal/chart-v1.js +95 -0
- package/dist/minimal/chart-v1.js.map +1 -0
- package/dist/minimal/closing-v1.d.ts +14 -0
- package/dist/minimal/closing-v1.d.ts.map +1 -0
- package/dist/minimal/closing-v1.js +15 -0
- package/dist/minimal/closing-v1.js.map +1 -0
- package/dist/minimal/closing-v2.d.ts +15 -0
- package/dist/minimal/closing-v2.d.ts.map +1 -0
- package/dist/minimal/closing-v2.js +15 -0
- package/dist/minimal/closing-v2.js.map +1 -0
- package/dist/minimal/comparison-v1.d.ts +16 -0
- package/dist/minimal/comparison-v1.d.ts.map +1 -0
- package/dist/minimal/comparison-v1.js +15 -0
- package/dist/minimal/comparison-v1.js.map +1 -0
- package/dist/minimal/comparison-v2.d.ts +16 -0
- package/dist/minimal/comparison-v2.d.ts.map +1 -0
- package/dist/minimal/comparison-v2.js +15 -0
- package/dist/minimal/comparison-v2.js.map +1 -0
- package/dist/minimal/content-v1.d.ts +13 -0
- package/dist/minimal/content-v1.d.ts.map +1 -0
- package/dist/minimal/content-v1.js +15 -0
- package/dist/minimal/content-v1.js.map +1 -0
- package/dist/minimal/content-v2.d.ts +14 -0
- package/dist/minimal/content-v2.d.ts.map +1 -0
- package/dist/minimal/content-v2.js +18 -0
- package/dist/minimal/content-v2.js.map +1 -0
- package/dist/minimal/content-v3.d.ts +15 -0
- package/dist/minimal/content-v3.d.ts.map +1 -0
- package/dist/minimal/content-v3.js +15 -0
- package/dist/minimal/content-v3.js.map +1 -0
- package/dist/minimal/cover-v1.d.ts +15 -0
- package/dist/minimal/cover-v1.d.ts.map +1 -0
- package/dist/minimal/cover-v1.js +15 -0
- package/dist/minimal/cover-v1.js.map +1 -0
- package/dist/minimal/faq-v1.d.ts +16 -0
- package/dist/minimal/faq-v1.d.ts.map +1 -0
- package/dist/minimal/faq-v1.js +15 -0
- package/dist/minimal/faq-v1.js.map +1 -0
- package/dist/minimal/feature-v1.d.ts +16 -0
- package/dist/minimal/feature-v1.d.ts.map +1 -0
- package/dist/minimal/feature-v1.js +15 -0
- package/dist/minimal/feature-v1.js.map +1 -0
- package/dist/minimal/gallery-v1.d.ts +16 -0
- package/dist/minimal/gallery-v1.d.ts.map +1 -0
- package/dist/minimal/gallery-v1.js +15 -0
- package/dist/minimal/gallery-v1.js.map +1 -0
- package/dist/minimal/image-v1.d.ts +14 -0
- package/dist/minimal/image-v1.d.ts.map +1 -0
- package/dist/minimal/image-v1.js +15 -0
- package/dist/minimal/image-v1.js.map +1 -0
- package/dist/minimal/metric-v1.d.ts +14 -0
- package/dist/minimal/metric-v1.d.ts.map +1 -0
- package/dist/minimal/metric-v1.js +15 -0
- package/dist/minimal/metric-v1.js.map +1 -0
- package/dist/minimal/metric-v2.d.ts +14 -0
- package/dist/minimal/metric-v2.d.ts.map +1 -0
- package/dist/minimal/metric-v2.js +15 -0
- package/dist/minimal/metric-v2.js.map +1 -0
- package/dist/minimal/partners-v1.d.ts +16 -0
- package/dist/minimal/partners-v1.d.ts.map +1 -0
- package/dist/minimal/partners-v1.js +15 -0
- package/dist/minimal/partners-v1.js.map +1 -0
- package/dist/minimal/pest-v1.d.ts +16 -0
- package/dist/minimal/pest-v1.d.ts.map +1 -0
- package/dist/minimal/pest-v1.js +15 -0
- package/dist/minimal/pest-v1.js.map +1 -0
- package/dist/minimal/pricing-v1.d.ts +19 -0
- package/dist/minimal/pricing-v1.d.ts.map +1 -0
- package/dist/minimal/pricing-v1.js +15 -0
- package/dist/minimal/pricing-v1.js.map +1 -0
- package/dist/minimal/process-v1.d.ts +13 -0
- package/dist/minimal/process-v1.d.ts.map +1 -0
- package/dist/minimal/process-v1.js +15 -0
- package/dist/minimal/process-v1.js.map +1 -0
- package/dist/minimal/process-v2.d.ts +16 -0
- package/dist/minimal/process-v2.d.ts.map +1 -0
- package/dist/minimal/process-v2.js +15 -0
- package/dist/minimal/process-v2.js.map +1 -0
- package/dist/minimal/quote-v1.d.ts +13 -0
- package/dist/minimal/quote-v1.d.ts.map +1 -0
- package/dist/minimal/quote-v1.js +15 -0
- package/dist/minimal/quote-v1.js.map +1 -0
- package/dist/minimal/quote-v2.d.ts +13 -0
- package/dist/minimal/quote-v2.d.ts.map +1 -0
- package/dist/minimal/quote-v2.js +15 -0
- package/dist/minimal/quote-v2.js.map +1 -0
- package/dist/minimal/roadmap-v1.d.ts +17 -0
- package/dist/minimal/roadmap-v1.d.ts.map +1 -0
- package/dist/minimal/roadmap-v1.js +15 -0
- package/dist/minimal/roadmap-v1.js.map +1 -0
- package/dist/minimal/split-v1.d.ts +15 -0
- package/dist/minimal/split-v1.d.ts.map +1 -0
- package/dist/minimal/split-v1.js +15 -0
- package/dist/minimal/split-v1.js.map +1 -0
- package/dist/minimal/stats-v1.d.ts +18 -0
- package/dist/minimal/stats-v1.d.ts.map +1 -0
- package/dist/minimal/stats-v1.js +15 -0
- package/dist/minimal/stats-v1.js.map +1 -0
- package/dist/minimal/swot-v1.d.ts +16 -0
- package/dist/minimal/swot-v1.d.ts.map +1 -0
- package/dist/minimal/swot-v1.js +15 -0
- package/dist/minimal/swot-v1.js.map +1 -0
- package/dist/minimal/table-of-contents-v1.d.ts +13 -0
- package/dist/minimal/table-of-contents-v1.d.ts.map +1 -0
- package/dist/minimal/table-of-contents-v1.js +15 -0
- package/dist/minimal/table-of-contents-v1.js.map +1 -0
- package/dist/minimal/team-v1.d.ts +18 -0
- package/dist/minimal/team-v1.d.ts.map +1 -0
- package/dist/minimal/team-v1.js +15 -0
- package/dist/minimal/team-v1.js.map +1 -0
- package/dist/minimal/testimonial-v1.d.ts +15 -0
- package/dist/minimal/testimonial-v1.d.ts.map +1 -0
- package/dist/minimal/testimonial-v1.js +15 -0
- package/dist/minimal/testimonial-v1.js.map +1 -0
- package/dist/minimal/timeline-v1.d.ts +17 -0
- package/dist/minimal/timeline-v1.d.ts.map +1 -0
- package/dist/minimal/timeline-v1.js +15 -0
- package/dist/minimal/timeline-v1.js.map +1 -0
- package/dist/registry.d.ts +17 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +87 -0
- package/dist/registry.js.map +1 -0
- package/package.json +42 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 lemonforme
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from 'react';
|
|
2
|
+
export interface EditableFieldProps {
|
|
3
|
+
/** 当前 slide 索引 */
|
|
4
|
+
slideIdx?: number;
|
|
5
|
+
/** 是否开启编辑 */
|
|
6
|
+
editable?: boolean;
|
|
7
|
+
/** props 字段路径,如 title 或 points.0 */
|
|
8
|
+
prop: string;
|
|
9
|
+
/** 渲染的标签 */
|
|
10
|
+
as?: 'span' | 'div' | 'h1' | 'h2' | 'h3' | 'p' | 'li' | 'blockquote' | 'ol';
|
|
11
|
+
/** CSS 类名 */
|
|
12
|
+
className?: string;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export declare function EditableField(props: EditableFieldProps): ReactElement;
|
|
16
|
+
//# sourceMappingURL=editable-field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editable-field.d.ts","sourceRoot":"","sources":["../src/editable-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,kBAAkB;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC;IAC5E,aAAa;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAerE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function EditableField(props) {
|
|
3
|
+
const { slideIdx, editable, prop, as: Tag = 'span', className, children } = props;
|
|
4
|
+
const attrs = {};
|
|
5
|
+
if (editable && slideIdx !== undefined) {
|
|
6
|
+
attrs['data-lp-editable'] = 'true';
|
|
7
|
+
attrs['data-lp-slide-idx'] = String(slideIdx);
|
|
8
|
+
attrs['data-lp-prop'] = prop;
|
|
9
|
+
}
|
|
10
|
+
return (_jsx(Tag, { className: className, ...attrs, children: children }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=editable-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editable-field.js","sourceRoot":"","sources":["../src/editable-field.tsx"],"names":[],"mappings":";AAgBA,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClF,MAAM,KAAK,GAAuC,EAAE,CAAC;IAErD,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACvC,KAAK,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;QACnC,KAAK,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAE,SAAS,KAAM,KAAK,YACjC,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export * from './registry.js';
|
|
2
|
+
export * from './minimal/cover-v1.js';
|
|
3
|
+
export * from './minimal/metric-v1.js';
|
|
4
|
+
export * from './minimal/metric-v2.js';
|
|
5
|
+
export * from './minimal/content-v1.js';
|
|
6
|
+
export * from './minimal/content-v2.js';
|
|
7
|
+
export * from './minimal/content-v3.js';
|
|
8
|
+
export * from './minimal/chart-v1.js';
|
|
9
|
+
export * from './minimal/image-v1.js';
|
|
10
|
+
export * from './minimal/team-v1.js';
|
|
11
|
+
export * from './minimal/feature-v1.js';
|
|
12
|
+
export * from './minimal/timeline-v1.js';
|
|
13
|
+
export * from './minimal/pricing-v1.js';
|
|
14
|
+
export * from './minimal/comparison-v1.js';
|
|
15
|
+
export * from './minimal/comparison-v2.js';
|
|
16
|
+
export * from './minimal/process-v1.js';
|
|
17
|
+
export * from './minimal/process-v2.js';
|
|
18
|
+
export * from './minimal/quote-v1.js';
|
|
19
|
+
export * from './minimal/quote-v2.js';
|
|
20
|
+
export * from './minimal/closing-v1.js';
|
|
21
|
+
export * from './minimal/closing-v2.js';
|
|
22
|
+
export * from './minimal/table-of-contents-v1.js';
|
|
23
|
+
export * from './minimal/swot-v1.js';
|
|
24
|
+
export * from './minimal/pest-v1.js';
|
|
25
|
+
export * from './minimal/split-v1.js';
|
|
26
|
+
export * from './minimal/stats-v1.js';
|
|
27
|
+
export * from './minimal/gallery-v1.js';
|
|
28
|
+
export * from './minimal/faq-v1.js';
|
|
29
|
+
export * from './minimal/partners-v1.js';
|
|
30
|
+
export * from './minimal/testimonial-v1.js';
|
|
31
|
+
export * from './minimal/roadmap-v1.js';
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export * from './registry.js';
|
|
2
|
+
export * from './minimal/cover-v1.js';
|
|
3
|
+
export * from './minimal/metric-v1.js';
|
|
4
|
+
export * from './minimal/metric-v2.js';
|
|
5
|
+
export * from './minimal/content-v1.js';
|
|
6
|
+
export * from './minimal/content-v2.js';
|
|
7
|
+
export * from './minimal/content-v3.js';
|
|
8
|
+
export * from './minimal/chart-v1.js';
|
|
9
|
+
export * from './minimal/image-v1.js';
|
|
10
|
+
export * from './minimal/team-v1.js';
|
|
11
|
+
export * from './minimal/feature-v1.js';
|
|
12
|
+
export * from './minimal/timeline-v1.js';
|
|
13
|
+
export * from './minimal/pricing-v1.js';
|
|
14
|
+
export * from './minimal/comparison-v1.js';
|
|
15
|
+
export * from './minimal/comparison-v2.js';
|
|
16
|
+
export * from './minimal/process-v1.js';
|
|
17
|
+
export * from './minimal/process-v2.js';
|
|
18
|
+
export * from './minimal/quote-v1.js';
|
|
19
|
+
export * from './minimal/quote-v2.js';
|
|
20
|
+
export * from './minimal/closing-v1.js';
|
|
21
|
+
export * from './minimal/closing-v2.js';
|
|
22
|
+
export * from './minimal/table-of-contents-v1.js';
|
|
23
|
+
export * from './minimal/swot-v1.js';
|
|
24
|
+
export * from './minimal/pest-v1.js';
|
|
25
|
+
export * from './minimal/split-v1.js';
|
|
26
|
+
export * from './minimal/stats-v1.js';
|
|
27
|
+
export * from './minimal/gallery-v1.js';
|
|
28
|
+
export * from './minimal/faq-v1.js';
|
|
29
|
+
export * from './minimal/partners-v1.js';
|
|
30
|
+
export * from './minimal/testimonial-v1.js';
|
|
31
|
+
export * from './minimal/roadmap-v1.js';
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC"}
|
|
@@ -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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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/minimal/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
|