jvs-ppt-ui 0.0.14 → 0.0.16

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 (67) hide show
  1. package/dist/lib/check_imgs.html +18 -0
  2. package/dist/lib/jvs-ppt-ui/iconfont/iconfont.css +187 -27
  3. package/dist/lib/jvs-ppt-ui/iconfont/iconfont.js +1 -1
  4. package/dist/lib/jvs-ppt-ui/iconfont/iconfont.json +345 -65
  5. package/dist/lib/jvs-ppt-ui/iconfont/iconfont.ttf +0 -0
  6. package/dist/lib/jvs-ppt-ui/iconfont/iconfont.woff +0 -0
  7. package/dist/lib/jvs-ppt-ui/iconfont/iconfont.woff2 +0 -0
  8. package/dist/lib/jvs-ppt-ui/img/al.png +0 -0
  9. package/dist/lib/jvs-ppt-ui/img/d.png +0 -0
  10. package/dist/lib/jvs-ppt-ui/img/dl.png +0 -0
  11. package/dist/lib/jvs-ppt-ui/img/l.png +0 -0
  12. package/dist/lib/jvs-ppt-ui.es.js +44973 -43349
  13. package/dist/lib/jvs-ppt-ui.umd.js +102 -102
  14. package/dist/lib/style.css +1 -1
  15. package/package.json +1 -1
  16. package/scripts/check-icons.mjs +22 -0
  17. package/scripts/patch-anim-icons.mjs +45 -0
  18. package/src/assets/iconfont/iconfont.css +187 -27
  19. package/src/assets/iconfont/iconfont.js +1 -1
  20. package/src/assets/iconfont/iconfont.json +345 -65
  21. package/src/assets/iconfont/iconfont.ttf +0 -0
  22. package/src/assets/iconfont/iconfont.woff +0 -0
  23. package/src/assets/iconfont/iconfont.woff2 +0 -0
  24. package/src/components/CanvasArea.vue +218 -193
  25. package/src/components/ChartTypeSelector.vue +509 -148
  26. package/src/components/Header.vue +327 -44
  27. package/src/components/PresentationGroupChild.vue +44 -13
  28. package/src/components/PresentationMode.vue +84 -33
  29. package/src/components/QuickBorderPopover.vue +51 -11
  30. package/src/components/QuickColorPopover.vue +65 -21
  31. package/src/components/SidebarLeft.vue +286 -107
  32. package/src/components/SidebarRight.vue +45 -38
  33. package/src/components/TemplateGallery.vue +1110 -1237
  34. package/src/components/ToastNotification.vue +2 -2
  35. package/src/components/Toolbar.vue +825 -733
  36. package/src/components/canvas/CanvasQuickToolbar.vue +17 -30
  37. package/src/components/canvas/elements/CanvasGroupElement.vue +6 -0
  38. package/src/components/canvas/elements/CanvasShapeElement.vue +198 -38
  39. package/src/components/canvas/elements/CanvasTextElement.vue +4 -3
  40. package/src/components/sidebar/common/SidebarAlignGroup.vue +104 -50
  41. package/src/components/sidebar/common/SidebarBorderAccordion.vue +375 -148
  42. package/src/components/sidebar/common/SidebarPositionGroup.vue +358 -149
  43. package/src/components/sidebar/common/SidebarReflectionAccordion.vue +429 -203
  44. package/src/components/sidebar/common/SidebarShadowAccordion.vue +844 -416
  45. package/src/components/sidebar/panels/GradientEditor.vue +671 -316
  46. package/src/components/sidebar/panels/LayoutThumbSvg.vue +33 -16
  47. package/src/components/sidebar/panels/SidebarAnimationPanel.vue +701 -138
  48. package/src/components/sidebar/panels/SidebarChartFormatPanel.vue +3 -3
  49. package/src/components/sidebar/panels/SidebarDesignPanel.vue +1754 -416
  50. package/src/components/sidebar/panels/SidebarMediaFormatPanel.vue +12 -0
  51. package/src/components/sidebar/panels/SidebarShapeFormatPanel.vue +813 -174
  52. package/src/components/sidebar/panels/SidebarTableFormatPanel.vue +2 -2
  53. package/src/components/sidebar/panels/SidebarTextFormatPanel.vue +1938 -1427
  54. package/src/components/sidebar/panels/SidebarTransitionPanel.vue +791 -210
  55. package/src/composables/canvas/useCanvasShortcuts.ts +20 -6
  56. package/src/composables/canvas/useCanvasText.ts +1 -1
  57. package/src/composables/canvas/useCanvasTransform.ts +44 -0
  58. package/src/composables/presetThemes.ts +43 -44
  59. package/src/composables/sidebar/useSidebarAnimation.ts +101 -25
  60. package/src/composables/sidebar/useSidebarDesign.ts +30 -11
  61. package/src/composables/sidebar/useSidebarElementTransform.ts +10 -1
  62. package/src/composables/sidebar/useSidebarImage.ts +10 -2
  63. package/src/composables/sidebar/useSidebarShapeFormat.ts +562 -107
  64. package/src/composables/useSlides.ts +331 -153
  65. package/src/main.ts +2 -0
  66. package/src/style.css +926 -359
  67. package/src/utils/canvas/elementStyles.ts +42 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jvs-ppt-ui",
3
3
  "private": false,
4
- "version": "0.0.14",
4
+ "version": "0.0.16",
5
5
  "type": "module",
6
6
  "main": "./dist/lib/jvs-ppt-ui.umd.js",
7
7
  "module": "./dist/lib/jvs-ppt-ui.es.js",
@@ -0,0 +1,22 @@
1
+ import fs from 'fs';
2
+
3
+ const js = fs.readFileSync('src/assets/iconfont/iconfont.js', 'utf8');
4
+ const ids = js.match(/id="([^"]+)"/g) || [];
5
+ const allIds = ids.map(s => s.replace(/id="|"/g, ''));
6
+ console.log('Total SVG ids:', allIds.length);
7
+
8
+ const animIds = allIds.filter(id =>
9
+ id.includes('tuichu') || id.includes('jinru') || id.includes('qiangtiao') ||
10
+ id.includes('feiru') || id.includes('feichu') || id.includes('guangsu') || id.includes('donghua')
11
+ );
12
+ console.log('Anim ids:\n' + animIds.join('\n'));
13
+
14
+ const mDantiaoTuichu = js.match(/<symbol id="icon-dantiao-tuichu"[\s\S]*?<\/symbol>/);
15
+ console.log('icon-dantiao-tuichu symbol:\n', mDantiaoTuichu ? mDantiaoTuichu[0] : 'not found');
16
+
17
+
18
+ const mGuangsu = js.match(/<symbol id="icon-guangsufeiru-jinru"[\s\S]*?<\/symbol>/);
19
+ console.log('icon-guangsufeiru-jinru symbol:\n', mGuangsu ? mGuangsu[0] : 'not found');
20
+
21
+
22
+
@@ -0,0 +1,45 @@
1
+ import fs from 'fs';
2
+
3
+ const jsPath = 'src/assets/iconfont/iconfont.js';
4
+ let js = fs.readFileSync(jsPath, 'utf8');
5
+
6
+ if (!js.includes('id="icon-feichu-tuichu"')) {
7
+ // Extract feiru-jinru
8
+ const feiruMatch = js.match(/<symbol id="icon-feiru-jinru" viewBox="0 0 1024 1024">([\s\S]*?)<\/symbol>/);
9
+ if (feiruMatch) {
10
+ let content = feiruMatch[1];
11
+ // Replace green fills with red fills (matching tuichu palette: #FF194C, #FFBAC9, etc.)
12
+ content = content
13
+ .replace(/#36B452/gi, '#FF194C')
14
+ .replace(/#E3F5E7/gi, '#FFE6EC')
15
+ .replace(/#CCECD3/gi, '#FFCCD9')
16
+ .replace(/#ACE0B7/gi, '#FFBAC9')
17
+ .replace(/#8AD49B/gi, '#FF8CA5')
18
+ .replace(/#6AC87F/gi, '#FF5C7A')
19
+ .replace(/#45BA5F/gi, '#FF3358');
20
+
21
+ // In feiru, arrow points up. In feichu, arrow points down.
22
+ // Wrap paths in a group with transform or flip
23
+ const feichuSymbol = `<symbol id="icon-feichu-tuichu" viewBox="0 0 1024 1024"><g transform="translate(512, 512) rotate(180) translate(-512, -512)">${content}</g></symbol>`;
24
+
25
+ // Extract guangsufeiru-jinru
26
+ const guangsuMatch = js.match(/<symbol id="icon-guangsufeiru-jinru" viewBox="0 0 1024 1024">([\s\S]*?)<\/symbol>/);
27
+ let guangsuContent = guangsuMatch ? guangsuMatch[1] : '';
28
+ guangsuContent = guangsuContent
29
+ .replace(/#36B452/gi, '#FF194C')
30
+ .replace(/#E3F5E7/gi, '#FFE6EC')
31
+ .replace(/#CCECD3/gi, '#FFCCD9')
32
+ .replace(/#ACE0B7/gi, '#FFBAC9')
33
+ .replace(/#8AD49B/gi, '#FF8CA5')
34
+ .replace(/#6AC87F/gi, '#FF5C7A')
35
+ .replace(/#45BA5F/gi, '#FF3358');
36
+ const guangsufeichuSymbol = `<symbol id="icon-guangsufeichu-tuichu" viewBox="0 0 1024 1024">${guangsuContent}</symbol>`;
37
+
38
+ // Insert before </svg>
39
+ js = js.replace('</svg>', `${feichuSymbol}${guangsufeichuSymbol}</svg>`);
40
+ fs.writeFileSync(jsPath, js, 'utf8');
41
+ console.log('Successfully patched iconfont.js with icon-feichu-tuichu and icon-guangsufeichu-tuichu');
42
+ }
43
+ } else {
44
+ console.log('iconfont.js already has icon-feichu-tuichu');
45
+ }
@@ -1,8 +1,8 @@
1
1
  @font-face {
2
2
  font-family: "iconfont"; /* Project id 5205012 */
3
- src: url('iconfont.woff2?t=1790064164801') format('woff2'),
4
- url('iconfont.woff?t=1790064164801') format('woff'),
5
- url('iconfont.ttf?t=1790064164801') format('truetype');
3
+ src: url('iconfont.woff2?t=1792372612368') format('woff2'),
4
+ url('iconfont.woff?t=1792372612368') format('woff'),
5
+ url('iconfont.ttf?t=1792372612368') format('truetype');
6
6
  }
7
7
 
8
8
  .iconfont {
@@ -13,72 +13,232 @@
13
13
  -moz-osx-font-smoothing: grayscale;
14
14
  }
15
15
 
16
- .icon-sucaiku:before {
17
- content: "\ead8";
16
+ .icon-guangsufeiru-jinru:before {
17
+ content: "\eafd";
18
18
  }
19
19
 
20
- .icon-fensanduiqi:before {
21
- content: "\ead6";
20
+ .icon-feiru-jinru:before {
21
+ content: "\eafe";
22
22
  }
23
23
 
24
- .icon-liangduanduiqi:before {
25
- content: "\ead7";
24
+ .icon-dantiao-tuichu:before {
25
+ content: "\eafb";
26
26
  }
27
27
 
28
- .icon-quxiaobianzu:before {
29
- content: "\ea13";
28
+ .icon-dantiao-jinru:before {
29
+ content: "\eafc";
30
30
  }
31
31
 
32
- .icon-bianzu:before {
33
- content: "\ea14";
32
+ .icon-maibo-qiangtiao:before {
33
+ content: "\eaeb";
34
+ }
35
+
36
+ .icon-xiangpijin-qiangtiao:before {
37
+ content: "\eaec";
38
+ }
39
+
40
+ .icon-shanshuo-qiangtiao:before {
41
+ content: "\eaed";
42
+ }
43
+
44
+ .icon-fanzhuan-jinru:before {
45
+ content: "\eaee";
46
+ }
47
+
48
+ .icon-yaotou-qiangtiao:before {
49
+ content: "\eaef";
50
+ }
51
+
52
+ .icon-baidong-qiangtiao:before {
53
+ content: "\eaf0";
54
+ }
55
+
56
+ .icon-suofang-jinru:before {
57
+ content: "\eaf1";
58
+ }
59
+
60
+ .icon-shangxiayaohuang-qiangtiao:before {
61
+ content: "\eaf2";
62
+ }
63
+
64
+ .icon-zuoyouyaohuang-qiangtiao:before {
65
+ content: "\eaf3";
66
+ }
67
+
68
+ .icon-guodong-qiangtiao:before {
69
+ content: "\eaf4";
70
+ }
71
+
72
+ .icon-fanzhuan-tuichu:before {
73
+ content: "\eaf5";
74
+ }
75
+
76
+ .icon-jingkong-qiangtiao:before {
77
+ content: "\eaf6";
78
+ }
79
+
80
+ .icon-fangdahuaru-jinru:before {
81
+ content: "\eaf7";
82
+ }
83
+
84
+ .icon-suofang-tuichu:before {
85
+ content: "\eaf8";
86
+ }
87
+
88
+ .icon-jianbian-tuichu:before {
89
+ content: "\eaf9";
90
+ }
91
+
92
+ .icon-dantiao-qiangtiao:before {
93
+ content: "\eafa";
94
+ }
95
+
96
+ .icon-jianbian-jinru:before {
97
+ content: "\eae5";
98
+ }
99
+
100
+ .icon-a-xintiaokuai-qiangtiao:before {
101
+ content: "\eae6";
102
+ }
103
+
104
+ .icon-xuanzhuan-tuichu:before {
105
+ content: "\eae7";
106
+ }
107
+
108
+ .icon-xuanzhuan-jinru:before {
109
+ content: "\eae8";
110
+ }
111
+
112
+ .icon-suoxiaohuachu-tuichu:before {
113
+ content: "\eae9";
114
+ }
115
+
116
+ .icon-huangdong-qiangtiao:before {
117
+ content: "\eaea";
118
+ }
119
+
120
+ .icon-suiji:before {
121
+ content: "\ead3";
122
+ }
123
+
124
+ .icon-shangxiatuiyi-xuanzhong:before {
125
+ content: "\ead4";
126
+ }
127
+
128
+ .icon-a-shangxiatuiyi3D:before {
129
+ content: "\ead5";
130
+ }
131
+
132
+ .icon-suoxiao1:before {
133
+ content: "\ead9";
134
+ }
135
+
136
+ .icon-wudonghua-xuanzhong:before {
137
+ content: "\eada";
138
+ }
139
+
140
+ .icon-xuanzhuan:before {
141
+ content: "\eadb";
142
+ }
143
+
144
+ .icon-fangda-xuanzhong:before {
145
+ content: "\eadc";
146
+ }
147
+
148
+ .icon-xuanzhuan-xuanzhong:before {
149
+ content: "\eadd";
150
+ }
151
+
152
+ .icon-wudonghua:before {
153
+ content: "\eade";
154
+ }
155
+
156
+ .icon-fangda1:before {
157
+ content: "\eadf";
158
+ }
159
+
160
+ .icon-suoxiao-xuanzhong:before {
161
+ content: "\eae0";
162
+ }
163
+
164
+ .icon-shangxiazhankai:before {
165
+ content: "\eae1";
166
+ }
167
+
168
+ .icon-danrudanchu-xuanzhong:before {
169
+ content: "\eae2";
170
+ }
171
+
172
+ .icon-shangxiazhankai-xuanzhong:before {
173
+ content: "\eae3";
174
+ }
175
+
176
+ .icon-danrudanchu:before {
177
+ content: "\eae4";
34
178
  }
35
179
 
36
180
  .icon-a-zuoyoutuiyi3D:before {
37
181
  content: "\eaca";
38
182
  }
39
183
 
40
- .icon-suoxiao1:before {
184
+ .icon-zuoyouzhankai:before {
41
185
  content: "\eacb";
42
186
  }
43
187
 
44
- .icon-fangda1:before {
188
+ .icon-zuoyouzhankai-xuanzhong:before {
45
189
  content: "\eacc";
46
190
  }
47
191
 
48
- .icon-xuanzhuan:before {
192
+ .icon-shangxiatuiyi:before {
49
193
  content: "\eacd";
50
194
  }
51
195
 
52
- .icon-suiji:before {
196
+ .icon-zuoyoutuiyi-xuanzhong:before {
53
197
  content: "\eace";
54
198
  }
55
199
 
56
- .icon-shangxiazhankai:before {
200
+ .icon-a-zuoyoutuiyi3D-xuanzhong:before {
57
201
  content: "\eacf";
58
202
  }
59
203
 
60
- .icon-a-shangxiatuiyi3D:before {
204
+ .icon-a-shangxiatuiyi3D-xuanzhong:before {
61
205
  content: "\ead0";
62
206
  }
63
207
 
64
- .icon-zuoyoutuiyi:before {
208
+ .icon-suiji-xuanzhong:before {
65
209
  content: "\ead1";
66
210
  }
67
211
 
68
- .icon-zuoyouzhankai:before {
212
+ .icon-zuoyoutuiyi:before {
69
213
  content: "\ead2";
70
214
  }
71
215
 
72
- .icon-shangxiatuiyi:before {
73
- content: "\ead3";
216
+ .icon-xiala-zhankai:before {
217
+ content: "\e6b5";
74
218
  }
75
219
 
76
- .icon-wudonghua:before {
77
- content: "\ead4";
220
+ .icon-xiala-shouqi:before {
221
+ content: "\e6b3";
78
222
  }
79
223
 
80
- .icon-danrudanchu:before {
81
- content: "\ead5";
224
+ .icon-sucaiku:before {
225
+ content: "\ead8";
226
+ }
227
+
228
+ .icon-fensanduiqi:before {
229
+ content: "\ead6";
230
+ }
231
+
232
+ .icon-liangduanduiqi:before {
233
+ content: "\ead7";
234
+ }
235
+
236
+ .icon-quxiaobianzu:before {
237
+ content: "\ea13";
238
+ }
239
+
240
+ .icon-bianzu:before {
241
+ content: "\ea14";
82
242
  }
83
243
 
84
244
  .icon-biaoge1:before {