@lemonppt/templates 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/LICENSE +21 -0
  2. package/dist/editable-field.d.ts +16 -0
  3. package/dist/editable-field.d.ts.map +1 -0
  4. package/dist/editable-field.js +12 -0
  5. package/dist/editable-field.js.map +1 -0
  6. package/dist/index.d.ts +32 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +32 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/minimal/chart-v1.d.ts +16 -0
  11. package/dist/minimal/chart-v1.d.ts.map +1 -0
  12. package/dist/minimal/chart-v1.js +95 -0
  13. package/dist/minimal/chart-v1.js.map +1 -0
  14. package/dist/minimal/closing-v1.d.ts +14 -0
  15. package/dist/minimal/closing-v1.d.ts.map +1 -0
  16. package/dist/minimal/closing-v1.js +15 -0
  17. package/dist/minimal/closing-v1.js.map +1 -0
  18. package/dist/minimal/closing-v2.d.ts +15 -0
  19. package/dist/minimal/closing-v2.d.ts.map +1 -0
  20. package/dist/minimal/closing-v2.js +15 -0
  21. package/dist/minimal/closing-v2.js.map +1 -0
  22. package/dist/minimal/comparison-v1.d.ts +16 -0
  23. package/dist/minimal/comparison-v1.d.ts.map +1 -0
  24. package/dist/minimal/comparison-v1.js +15 -0
  25. package/dist/minimal/comparison-v1.js.map +1 -0
  26. package/dist/minimal/comparison-v2.d.ts +16 -0
  27. package/dist/minimal/comparison-v2.d.ts.map +1 -0
  28. package/dist/minimal/comparison-v2.js +15 -0
  29. package/dist/minimal/comparison-v2.js.map +1 -0
  30. package/dist/minimal/content-v1.d.ts +13 -0
  31. package/dist/minimal/content-v1.d.ts.map +1 -0
  32. package/dist/minimal/content-v1.js +15 -0
  33. package/dist/minimal/content-v1.js.map +1 -0
  34. package/dist/minimal/content-v2.d.ts +14 -0
  35. package/dist/minimal/content-v2.d.ts.map +1 -0
  36. package/dist/minimal/content-v2.js +18 -0
  37. package/dist/minimal/content-v2.js.map +1 -0
  38. package/dist/minimal/content-v3.d.ts +15 -0
  39. package/dist/minimal/content-v3.d.ts.map +1 -0
  40. package/dist/minimal/content-v3.js +15 -0
  41. package/dist/minimal/content-v3.js.map +1 -0
  42. package/dist/minimal/cover-v1.d.ts +15 -0
  43. package/dist/minimal/cover-v1.d.ts.map +1 -0
  44. package/dist/minimal/cover-v1.js +15 -0
  45. package/dist/minimal/cover-v1.js.map +1 -0
  46. package/dist/minimal/faq-v1.d.ts +16 -0
  47. package/dist/minimal/faq-v1.d.ts.map +1 -0
  48. package/dist/minimal/faq-v1.js +15 -0
  49. package/dist/minimal/faq-v1.js.map +1 -0
  50. package/dist/minimal/feature-v1.d.ts +16 -0
  51. package/dist/minimal/feature-v1.d.ts.map +1 -0
  52. package/dist/minimal/feature-v1.js +15 -0
  53. package/dist/minimal/feature-v1.js.map +1 -0
  54. package/dist/minimal/gallery-v1.d.ts +16 -0
  55. package/dist/minimal/gallery-v1.d.ts.map +1 -0
  56. package/dist/minimal/gallery-v1.js +15 -0
  57. package/dist/minimal/gallery-v1.js.map +1 -0
  58. package/dist/minimal/image-v1.d.ts +14 -0
  59. package/dist/minimal/image-v1.d.ts.map +1 -0
  60. package/dist/minimal/image-v1.js +15 -0
  61. package/dist/minimal/image-v1.js.map +1 -0
  62. package/dist/minimal/metric-v1.d.ts +14 -0
  63. package/dist/minimal/metric-v1.d.ts.map +1 -0
  64. package/dist/minimal/metric-v1.js +15 -0
  65. package/dist/minimal/metric-v1.js.map +1 -0
  66. package/dist/minimal/metric-v2.d.ts +14 -0
  67. package/dist/minimal/metric-v2.d.ts.map +1 -0
  68. package/dist/minimal/metric-v2.js +15 -0
  69. package/dist/minimal/metric-v2.js.map +1 -0
  70. package/dist/minimal/partners-v1.d.ts +16 -0
  71. package/dist/minimal/partners-v1.d.ts.map +1 -0
  72. package/dist/minimal/partners-v1.js +15 -0
  73. package/dist/minimal/partners-v1.js.map +1 -0
  74. package/dist/minimal/pest-v1.d.ts +16 -0
  75. package/dist/minimal/pest-v1.d.ts.map +1 -0
  76. package/dist/minimal/pest-v1.js +15 -0
  77. package/dist/minimal/pest-v1.js.map +1 -0
  78. package/dist/minimal/pricing-v1.d.ts +19 -0
  79. package/dist/minimal/pricing-v1.d.ts.map +1 -0
  80. package/dist/minimal/pricing-v1.js +15 -0
  81. package/dist/minimal/pricing-v1.js.map +1 -0
  82. package/dist/minimal/process-v1.d.ts +13 -0
  83. package/dist/minimal/process-v1.d.ts.map +1 -0
  84. package/dist/minimal/process-v1.js +15 -0
  85. package/dist/minimal/process-v1.js.map +1 -0
  86. package/dist/minimal/process-v2.d.ts +16 -0
  87. package/dist/minimal/process-v2.d.ts.map +1 -0
  88. package/dist/minimal/process-v2.js +15 -0
  89. package/dist/minimal/process-v2.js.map +1 -0
  90. package/dist/minimal/quote-v1.d.ts +13 -0
  91. package/dist/minimal/quote-v1.d.ts.map +1 -0
  92. package/dist/minimal/quote-v1.js +15 -0
  93. package/dist/minimal/quote-v1.js.map +1 -0
  94. package/dist/minimal/quote-v2.d.ts +13 -0
  95. package/dist/minimal/quote-v2.d.ts.map +1 -0
  96. package/dist/minimal/quote-v2.js +15 -0
  97. package/dist/minimal/quote-v2.js.map +1 -0
  98. package/dist/minimal/roadmap-v1.d.ts +17 -0
  99. package/dist/minimal/roadmap-v1.d.ts.map +1 -0
  100. package/dist/minimal/roadmap-v1.js +15 -0
  101. package/dist/minimal/roadmap-v1.js.map +1 -0
  102. package/dist/minimal/split-v1.d.ts +15 -0
  103. package/dist/minimal/split-v1.d.ts.map +1 -0
  104. package/dist/minimal/split-v1.js +15 -0
  105. package/dist/minimal/split-v1.js.map +1 -0
  106. package/dist/minimal/stats-v1.d.ts +18 -0
  107. package/dist/minimal/stats-v1.d.ts.map +1 -0
  108. package/dist/minimal/stats-v1.js +15 -0
  109. package/dist/minimal/stats-v1.js.map +1 -0
  110. package/dist/minimal/swot-v1.d.ts +16 -0
  111. package/dist/minimal/swot-v1.d.ts.map +1 -0
  112. package/dist/minimal/swot-v1.js +15 -0
  113. package/dist/minimal/swot-v1.js.map +1 -0
  114. package/dist/minimal/table-of-contents-v1.d.ts +13 -0
  115. package/dist/minimal/table-of-contents-v1.d.ts.map +1 -0
  116. package/dist/minimal/table-of-contents-v1.js +15 -0
  117. package/dist/minimal/table-of-contents-v1.js.map +1 -0
  118. package/dist/minimal/team-v1.d.ts +18 -0
  119. package/dist/minimal/team-v1.d.ts.map +1 -0
  120. package/dist/minimal/team-v1.js +15 -0
  121. package/dist/minimal/team-v1.js.map +1 -0
  122. package/dist/minimal/testimonial-v1.d.ts +15 -0
  123. package/dist/minimal/testimonial-v1.d.ts.map +1 -0
  124. package/dist/minimal/testimonial-v1.js +15 -0
  125. package/dist/minimal/testimonial-v1.js.map +1 -0
  126. package/dist/minimal/timeline-v1.d.ts +17 -0
  127. package/dist/minimal/timeline-v1.d.ts.map +1 -0
  128. package/dist/minimal/timeline-v1.js +15 -0
  129. package/dist/minimal/timeline-v1.js.map +1 -0
  130. package/dist/registry.d.ts +17 -0
  131. package/dist/registry.d.ts.map +1 -0
  132. package/dist/registry.js +87 -0
  133. package/dist/registry.js.map +1 -0
  134. package/package.json +42 -0
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"}
@@ -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