svgfusion-vscode 1.10.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/media/icon.png ADDED
Binary file
package/package.json ADDED
@@ -0,0 +1,289 @@
1
+ {
2
+ "name": "svgfusion-vscode",
3
+ "displayName": "SVGFusion",
4
+ "description": "Convert SVG files to React/Vue components with ease",
5
+ "version": "1.10.0",
6
+ "publisher": "lolvoid",
7
+ "license": "MIT",
8
+ "author": "lolvoid",
9
+ "homepage": "https://svgfusion.netlify.app",
10
+ "engines": {
11
+ "vscode": "^1.74.0",
12
+ "node": ">=18.0.0"
13
+ },
14
+ "categories": [
15
+ "Other",
16
+ "Snippets",
17
+ "Formatters"
18
+ ],
19
+ "keywords": [
20
+ "svg",
21
+ "react",
22
+ "vue",
23
+ "vue3",
24
+ "component",
25
+ "converter",
26
+ "typescript",
27
+ "jsx",
28
+ "tsx",
29
+ "icon",
30
+ "frontend",
31
+ "build-tool",
32
+ "svgfusion",
33
+ "code-generation",
34
+ "optimization",
35
+ "batch-processing"
36
+ ],
37
+ "activationEvents": [
38
+ "onLanguage:xml",
39
+ "onFileSystem:svg"
40
+ ],
41
+ "main": "./dist/extension.js",
42
+ "contributes": {
43
+ "commands": [
44
+ {
45
+ "command": "svgfusion.convertSvg",
46
+ "title": "Convert to Component",
47
+ "category": "SVGFusion",
48
+ "icon": "$(symbol-file)"
49
+ },
50
+ {
51
+ "command": "svgfusion.batchConvert",
52
+ "title": "Batch Convert SVGs",
53
+ "category": "SVGFusion",
54
+ "icon": "$(folder-active)"
55
+ },
56
+ {
57
+ "command": "svgfusion.openPlayground",
58
+ "title": "Open Playground",
59
+ "category": "SVGFusion",
60
+ "icon": "$(play)"
61
+ },
62
+ {
63
+ "command": "svgfusion.showPreview",
64
+ "title": "Preview Component",
65
+ "category": "SVGFusion",
66
+ "icon": "$(eye)"
67
+ }
68
+ ],
69
+ "menus": {
70
+ "explorer/context": [
71
+ {
72
+ "command": "svgfusion.convertSvg",
73
+ "when": "resourceExtname == .svg",
74
+ "group": "svgfusion@1"
75
+ },
76
+ {
77
+ "command": "svgfusion.showPreview",
78
+ "when": "resourceExtname == .svg",
79
+ "group": "svgfusion@2"
80
+ }
81
+ ],
82
+ "editor/context": [
83
+ {
84
+ "command": "svgfusion.convertSvg",
85
+ "when": "resourceExtname == .svg",
86
+ "group": "svgfusion@1"
87
+ },
88
+ {
89
+ "command": "svgfusion.showPreview",
90
+ "when": "resourceExtname == .svg",
91
+ "group": "svgfusion@2"
92
+ }
93
+ ],
94
+ "commandPalette": [
95
+ {
96
+ "command": "svgfusion.convertSvg",
97
+ "when": "true"
98
+ },
99
+ {
100
+ "command": "svgfusion.batchConvert",
101
+ "when": "workspaceFolderCount > 0"
102
+ },
103
+ {
104
+ "command": "svgfusion.openPlayground",
105
+ "when": "true"
106
+ }
107
+ ]
108
+ },
109
+ "configuration": {
110
+ "title": "SVGFusion",
111
+ "properties": {
112
+ "svgfusion.framework": {
113
+ "type": "string",
114
+ "enum": [
115
+ "react",
116
+ "vue",
117
+ "auto"
118
+ ],
119
+ "default": "auto",
120
+ "description": "Default framework for conversion (auto-detects from package.json)"
121
+ },
122
+ "svgfusion.typescript": {
123
+ "type": "boolean",
124
+ "default": true,
125
+ "description": "Generate TypeScript components"
126
+ },
127
+ "svgfusion.outputDirectory": {
128
+ "type": "string",
129
+ "default": "./src/components/icons",
130
+ "description": "Output directory for generated components"
131
+ },
132
+ "svgfusion.prefix": {
133
+ "type": "string",
134
+ "default": "",
135
+ "description": "Prefix to add to component names"
136
+ },
137
+ "svgfusion.suffix": {
138
+ "type": "string",
139
+ "default": "",
140
+ "description": "Suffix to add to component names"
141
+ },
142
+ "svgfusion.react.memo": {
143
+ "type": "boolean",
144
+ "default": false,
145
+ "description": "Wrap React components with React.memo"
146
+ },
147
+ "svgfusion.react.forwardRef": {
148
+ "type": "boolean",
149
+ "default": false,
150
+ "description": "Add forwardRef to React components"
151
+ },
152
+ "svgfusion.vue.sfc": {
153
+ "type": "boolean",
154
+ "default": true,
155
+ "description": "Generate Vue Single File Components"
156
+ },
157
+ "svgfusion.vue.scriptSetup": {
158
+ "type": "boolean",
159
+ "default": true,
160
+ "description": "Use <script setup> syntax for Vue components"
161
+ },
162
+ "svgfusion.transformation.splitColors": {
163
+ "type": "boolean",
164
+ "default": true,
165
+ "description": "Enable color prop splitting"
166
+ },
167
+ "svgfusion.transformation.splitStrokeWidths": {
168
+ "type": "boolean",
169
+ "default": false,
170
+ "description": "Enable stroke width prop splitting"
171
+ },
172
+ "svgfusion.transformation.fixedStrokeWidth": {
173
+ "type": "boolean",
174
+ "default": false,
175
+ "description": "Use fixed stroke width"
176
+ },
177
+ "svgfusion.transformation.removeFilters": {
178
+ "type": "boolean",
179
+ "default": false,
180
+ "description": "Remove filter elements from defs"
181
+ },
182
+ "svgfusion.transformation.optimize": {
183
+ "type": "boolean",
184
+ "default": true,
185
+ "description": "Optimize SVG before conversion"
186
+ }
187
+ }
188
+ },
189
+ "viewsContainers": {
190
+ "activitybar": [
191
+ {
192
+ "id": "svgfusion",
193
+ "title": "SVGFusion",
194
+ "icon": "$(symbol-file)"
195
+ }
196
+ ]
197
+ },
198
+ "views": {
199
+ "svgfusion": [
200
+ {
201
+ "id": "svgfusion.svgExplorer",
202
+ "name": "SVG Files",
203
+ "when": "workspaceHasFolder"
204
+ }
205
+ ]
206
+ },
207
+ "keybindings": [
208
+ {
209
+ "command": "svgfusion.convertSvg",
210
+ "key": "cmd+shift+k s",
211
+ "mac": "cmd+shift+k s",
212
+ "win": "ctrl+shift+k s",
213
+ "linux": "ctrl+shift+k s",
214
+ "when": "resourceExtname == .svg"
215
+ },
216
+ {
217
+ "command": "svgfusion.batchConvert",
218
+ "key": "cmd+shift+k b",
219
+ "mac": "cmd+shift+k b",
220
+ "win": "ctrl+shift+k b",
221
+ "linux": "ctrl+shift+k b"
222
+ },
223
+ {
224
+ "command": "svgfusion.openPlayground",
225
+ "key": "cmd+shift+k p",
226
+ "mac": "cmd+shift+k p",
227
+ "win": "ctrl+shift+k p",
228
+ "linux": "ctrl+shift+k p"
229
+ }
230
+ ]
231
+ },
232
+ "files": [
233
+ "dist",
234
+ "media",
235
+ "README.md",
236
+ "CHANGELOG.md",
237
+ "LICENSE.md"
238
+ ],
239
+ "dependencies": {
240
+ "svgfusion-core": "1.3.3",
241
+ "svgfusion-dom": "1.3.3",
242
+ "svgfusion-utils": "1.1.3"
243
+ },
244
+ "devDependencies": {
245
+ "@eslint/js": "^9.31.0",
246
+ "@jest/globals": "^30.0.4",
247
+ "@semantic-release/changelog": "^6.0.3",
248
+ "@semantic-release/exec": "^7.1.0",
249
+ "@semantic-release/git": "^10.0.1",
250
+ "@semantic-release/github": "^11.0.3",
251
+ "@semantic-release/npm": "^12.0.2",
252
+ "@types/jest": "^30.0.0",
253
+ "@types/node": "^20.0.0",
254
+ "@types/vscode": "^1.74.0",
255
+ "@vscode/vsce": "^3.6.0",
256
+ "eslint": "^9.31.0",
257
+ "jest": "^30.0.4",
258
+ "prettier": "^3.6.2",
259
+ "semantic-release": "^24.2.5",
260
+ "semantic-release-monorepo": "^8.0.2",
261
+ "tsup": "^8.5.0",
262
+ "typescript": "^5.6.2",
263
+ "typescript-eslint": "^8.37.0"
264
+ },
265
+ "extensionDependencies": [],
266
+ "icon": "media/icon.png",
267
+ "galleryBanner": {
268
+ "color": "#1e1e1e",
269
+ "theme": "dark"
270
+ },
271
+ "scripts": {
272
+ "build": "tsup",
273
+ "dev": "tsup --watch",
274
+ "package": "npx @vscode/vsce package --no-dependencies",
275
+ "install-ext": "code --install-extension ./svgfusion-vscode-*.vsix",
276
+ "test": "jest",
277
+ "test:coverage": "jest --coverage",
278
+ "test:watch": "jest --watch",
279
+ "lint": "eslint src/**/*.ts",
280
+ "lint:fix": "eslint src/**/*.ts --fix",
281
+ "format": "prettier --write src/**/*.ts",
282
+ "format:check": "prettier --check src/**/*.ts",
283
+ "type-check": "tsc --noEmit",
284
+ "release": "semantic-release",
285
+ "release:dry": "semantic-release --dry-run",
286
+ "clean": "rm -rf dist *.vsix",
287
+ "vscode:prepublish": "pnpm run build"
288
+ }
289
+ }