figma-to-code-agent 0.4.0 → 0.6.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/CHANGELOG.md +26 -0
- package/QUICKSTART.md +11 -1
- package/README.md +31 -9
- package/dist/generation/ReactGenerator.d.ts +11 -2
- package/dist/generation/ReactGenerator.d.ts.map +1 -1
- package/dist/generation/ReactGenerator.js +147 -24
- package/dist/generation/ReactGenerator.js.map +1 -1
- package/dist/generation/VueGenerator.d.ts +14 -0
- package/dist/generation/VueGenerator.d.ts.map +1 -1
- package/dist/generation/VueGenerator.js +139 -2
- package/dist/generation/VueGenerator.js.map +1 -1
- package/dist/transformation/transformers/AccessibilityEnhancer.d.ts +22 -0
- package/dist/transformation/transformers/AccessibilityEnhancer.d.ts.map +1 -0
- package/dist/transformation/transformers/AccessibilityEnhancer.js +113 -0
- package/dist/transformation/transformers/AccessibilityEnhancer.js.map +1 -0
- package/dist/transformation/transformers/PerformanceOptimizer.d.ts +24 -0
- package/dist/transformation/transformers/PerformanceOptimizer.d.ts.map +1 -0
- package/dist/transformation/transformers/PerformanceOptimizer.js +95 -0
- package/dist/transformation/transformers/PerformanceOptimizer.js.map +1 -0
- package/dist/transformation/transformers/ResponsiveMerger.d.ts +39 -0
- package/dist/transformation/transformers/ResponsiveMerger.d.ts.map +1 -0
- package/dist/transformation/transformers/ResponsiveMerger.js +114 -0
- package/dist/transformation/transformers/ResponsiveMerger.js.map +1 -0
- package/dist/transformation/transformers/StyleMerger.d.ts +18 -0
- package/dist/transformation/transformers/StyleMerger.d.ts.map +1 -0
- package/dist/transformation/transformers/StyleMerger.js +71 -0
- package/dist/transformation/transformers/StyleMerger.js.map +1 -0
- package/package.json +1 -1
- package/test-app/test-react/src/Component.module.css +16 -136
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.0] - 2026-02-13
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- Property tests for Property 3 (component identification completeness) and Property 4 (image asset extraction)
|
|
7
|
+
- Real Figma data end-to-end tests: 29 tests covering 4 real design files (MIUI12 Navigation, Homepage, Shopping Cart, Product Page)
|
|
8
|
+
- Cross-design pipeline consistency tests (React vs Vue, css-modules vs css)
|
|
9
|
+
- Full document processing test for large Figma canvas
|
|
10
|
+
|
|
11
|
+
### Improved
|
|
12
|
+
- Property test coverage now spans Properties 1-4, 5-44 (complete)
|
|
13
|
+
- Total test count: 309 tests across 42 test suites
|
|
14
|
+
|
|
15
|
+
## [0.5.0] - 2026-02-13
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- Optional transformers: StyleMerger (style deduplication with shared class references), ResponsiveMerger (breakpoint variant merging), AccessibilityEnhancer (ARIA roles, alt text, landmark detection), PerformanceOptimizer (lazy loading, code splitting hints, redundant wrapper removal)
|
|
19
|
+
- Pure CSS mode: generates separate `.css` file for both React and Vue (previously inline styles only)
|
|
20
|
+
- CSS rule deduplication: merges selectors with identical rule bodies
|
|
21
|
+
- Responsive code generation: `@media` queries from ResponsiveMerger breakpoint metadata
|
|
22
|
+
- Improved Tailwind CSS mapping: actual color values `bg-[rgba(...)]`, precise sizes `w-[200px]`, border-radius `rounded-[12px]`, spacing, typography
|
|
23
|
+
- 24 new tests (222 total, all passing)
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- React/Vue generators now support all 3 style modes with external CSS files
|
|
27
|
+
- Tailwind class generation uses arbitrary value syntax instead of hardcoded utility classes
|
|
28
|
+
|
|
3
29
|
## [0.4.0] - 2026-02-13
|
|
4
30
|
|
|
5
31
|
### Added
|
package/QUICKSTART.md
CHANGED
|
@@ -85,7 +85,7 @@ npx figma-to-code-agent \
|
|
|
85
85
|
|
|
86
86
|
## Generated Output
|
|
87
87
|
|
|
88
|
-
For a React component, you'll get:
|
|
88
|
+
For a React component with CSS Modules, you'll get:
|
|
89
89
|
|
|
90
90
|
```
|
|
91
91
|
output/
|
|
@@ -96,6 +96,15 @@ output/
|
|
|
96
96
|
└── icon-close.png
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
+
For plain CSS mode (`--style css`):
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
output/
|
|
103
|
+
├── Component.jsx # React component
|
|
104
|
+
├── Component.css # Standalone CSS file
|
|
105
|
+
└── assets/
|
|
106
|
+
```
|
|
107
|
+
|
|
99
108
|
For Vue, a single `.vue` file with `<template>`, `<script setup>`, and `<style scoped>`.
|
|
100
109
|
|
|
101
110
|
## What Gets Generated
|
|
@@ -119,6 +128,7 @@ For Vue, a single `.vue` file with `<template>`, `<script setup>`, and `<style s
|
|
|
119
128
|
| `--style` | `css-modules`, `tailwind`, or `css` | `css-modules` |
|
|
120
129
|
| `--typescript` | Enable TypeScript output | `false` |
|
|
121
130
|
| `--output <dir>` | Output directory | `./output` |
|
|
131
|
+
| `--extract-tokens <fmt>` | Extract design tokens: `css`, `scss`, `json`, `js` | — |
|
|
122
132
|
| `--preview` | Preview in browser after generation | — |
|
|
123
133
|
|
|
124
134
|
## AI Enhancements (Optional)
|
package/README.md
CHANGED
|
@@ -34,11 +34,20 @@ Convert Figma designs to production-ready React/Vue components. Supports CSS Mod
|
|
|
34
34
|
|
|
35
35
|
- 🎨 Extract designs from Figma API with caching and rate-limit handling
|
|
36
36
|
- ⚛️ Generate React (.jsx/.tsx) and Vue (.vue) components
|
|
37
|
-
- 🎭 CSS Modules, Tailwind, or plain CSS
|
|
37
|
+
- 🎭 CSS Modules, Tailwind CSS (arbitrary values), or plain CSS with separate stylesheet
|
|
38
38
|
- 📐 Absolute positioning with responsive scaling (auto-fits viewport)
|
|
39
39
|
- 🖼️ Image export at 2x resolution, vector icon auto-detection and PNG export
|
|
40
40
|
- 🔤 Full typography support (font family, size, weight, line-height, letter-spacing, color)
|
|
41
41
|
- 👁️ Figma layer filtering (hidden layers, mask shapes)
|
|
42
|
+
- 🎯 Design token extraction (CSS variables, SCSS, JSON, JS)
|
|
43
|
+
- 🧩 Component splitting (auto-split large designs >50 nodes, max depth 4)
|
|
44
|
+
- 📁 File organizer (PascalCase/kebab-case naming, directory structure, Props interface)
|
|
45
|
+
- 🖼️ Asset management (image dedup, SVG-first, semantic naming, import generation)
|
|
46
|
+
- 🔍 Visual validation (Puppeteer rendering, pixel comparison, similarity scoring)
|
|
47
|
+
- ♿ Accessibility enhancement (ARIA roles, alt text, landmark detection)
|
|
48
|
+
- ⚡ Performance optimization (lazy loading, code splitting hints, redundant wrapper removal)
|
|
49
|
+
- 🎨 Style deduplication (merge identical CSS rules across components)
|
|
50
|
+
- 📱 Responsive code generation (media queries from breakpoint metadata)
|
|
42
51
|
- 🤖 Optional AI enhancements (semantic naming, component splitting, code optimization)
|
|
43
52
|
|
|
44
53
|
## Install
|
|
@@ -79,10 +88,12 @@ npx figma-to-code-agent \
|
|
|
79
88
|
1. Fetches the Figma file data via API (with local caching)
|
|
80
89
|
2. Parses the design tree into an intermediate AST
|
|
81
90
|
3. Filters invisible layers, mask shapes, and transparent fills
|
|
82
|
-
4.
|
|
83
|
-
5.
|
|
84
|
-
6.
|
|
85
|
-
7.
|
|
91
|
+
4. Applies transformation pipeline (flatten, extract components, optimize layout, semantic naming, style merging, accessibility, performance)
|
|
92
|
+
5. Detects vector-only containers and exports them as PNG icons
|
|
93
|
+
6. Downloads images at 2x resolution
|
|
94
|
+
7. Generates framework-specific components with chosen style mode
|
|
95
|
+
8. Deduplicates identical CSS rules and generates responsive media queries
|
|
96
|
+
9. Wraps output in a responsive scale container (no horizontal scrollbar)
|
|
86
97
|
|
|
87
98
|
## CLI Options
|
|
88
99
|
|
|
@@ -95,6 +106,7 @@ npx figma-to-code-agent \
|
|
|
95
106
|
| `--style` | `css-modules`, `tailwind`, or `css` | `css-modules` |
|
|
96
107
|
| `--typescript` | Enable TypeScript output | `false` |
|
|
97
108
|
| `--output <dir>` | Output directory | `./output` |
|
|
109
|
+
| `--extract-tokens <fmt>` | Extract design tokens: `css`, `scss`, `json`, `js` | — |
|
|
98
110
|
| `--preview` | Preview in browser after generation | — |
|
|
99
111
|
|
|
100
112
|
### AI Options (optional)
|
|
@@ -103,9 +115,12 @@ npx figma-to-code-agent \
|
|
|
103
115
|
|--------|-------------|
|
|
104
116
|
| `--llm-provider` | `bedrock`, `openai`, or `anthropic` |
|
|
105
117
|
| `--llm-model` | Model name |
|
|
118
|
+
| `--llm-region` | AWS region for Bedrock (default: `us-east-1`) |
|
|
119
|
+
| `--llm-api-key` | API key for OpenAI/Anthropic (or `LLM_API_KEY` env) |
|
|
106
120
|
| `--ai-naming` | AI-powered semantic component naming |
|
|
107
121
|
| `--ai-splitting` | AI-powered component splitting |
|
|
108
122
|
| `--ai-optimization` | AI-powered code optimization |
|
|
123
|
+
| `--ai-layout` | AI-powered layout analysis |
|
|
109
124
|
|
|
110
125
|
## Programmatic API
|
|
111
126
|
|
|
@@ -119,6 +134,7 @@ const agent = new FigmaToCodeAgent({
|
|
|
119
134
|
styleMode: 'css-modules',
|
|
120
135
|
typescript: false,
|
|
121
136
|
outputDir: './output',
|
|
137
|
+
extractTokens: 'css', // optional: 'css' | 'scss' | 'json' | 'js'
|
|
122
138
|
})
|
|
123
139
|
|
|
124
140
|
const files = await agent.convert()
|
|
@@ -130,10 +146,16 @@ const files = await agent.convert()
|
|
|
130
146
|
src/
|
|
131
147
|
├── extraction/ # Figma API client, MCP protocol, caching
|
|
132
148
|
├── transformation/ # AST parsing, layout optimization, transformers
|
|
133
|
-
│ └── transformers/ #
|
|
134
|
-
|
|
149
|
+
│ └── transformers/ # Flatten, component extraction, semantic naming,
|
|
150
|
+
│ # style merger, responsive merger, accessibility,
|
|
151
|
+
│ # performance optimizer, AI-powered transformers
|
|
152
|
+
├── generation/ # React and Vue code generators, file organizer
|
|
153
|
+
├── tokens/ # Design token extraction and export
|
|
154
|
+
├── assets/ # Asset management (image extraction, dedup)
|
|
155
|
+
├── validation/ # Visual validation (Puppeteer, pixel comparison)
|
|
156
|
+
├── config/ # Configuration management
|
|
157
|
+
├── errors/ # Error handling and recovery
|
|
135
158
|
├── llm/ # LLM providers (Bedrock, OpenAI)
|
|
136
|
-
├── validation/ # Visual validation
|
|
137
159
|
└── cli.ts # CLI entry point
|
|
138
160
|
```
|
|
139
161
|
|
|
@@ -144,7 +166,7 @@ git clone https://github.com/lewiscutey/figma-to-code-agent.git
|
|
|
144
166
|
cd figma-to-code-agent
|
|
145
167
|
npm install
|
|
146
168
|
npm run build # Compile TypeScript
|
|
147
|
-
npm test # Run all tests (
|
|
169
|
+
npm test # Run all tests (222 tests)
|
|
148
170
|
npm run lint # ESLint
|
|
149
171
|
npm run format # Prettier
|
|
150
172
|
```
|
|
@@ -17,11 +17,20 @@ export declare class ReactGenerator implements CodeGenerator {
|
|
|
17
17
|
private generateClassName;
|
|
18
18
|
private sanitizeCSSName;
|
|
19
19
|
private generateTailwindClasses;
|
|
20
|
-
private
|
|
20
|
+
private toTailwindSpacing;
|
|
21
21
|
private toComponentName;
|
|
22
22
|
private toFileName;
|
|
23
23
|
private indent;
|
|
24
|
-
private
|
|
24
|
+
private generateCSS;
|
|
25
|
+
/**
|
|
26
|
+
* Deduplicate CSS rules: merge selectors that have identical rule bodies.
|
|
27
|
+
*/
|
|
28
|
+
private deduplicateStyles;
|
|
29
|
+
/**
|
|
30
|
+
* Generate @media queries for responsive components (from ResponsiveMerger metadata).
|
|
31
|
+
*/
|
|
32
|
+
private generateMediaQueries;
|
|
33
|
+
private collectMediaQueries;
|
|
25
34
|
private collectStyles;
|
|
26
35
|
}
|
|
27
36
|
//# sourceMappingURL=ReactGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactGenerator.d.ts","sourceRoot":"","sources":["../../src/generation/ReactGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7E,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAA6B;IAEnD,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAiB3B,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"ReactGenerator.d.ts","sourceRoot":"","sources":["../../src/generation/ReactGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7E,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAA6B;IAEnD,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAiB3B,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE;IAkCjE,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,qBAAqB;IA6C7B,OAAO,CAAC,WAAW;IAsCnB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,uBAAuB;IAsE/B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,WAAW;IA0BnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,aAAa;CA8ItB"}
|
|
@@ -43,11 +43,17 @@ class ReactGenerator {
|
|
|
43
43
|
path: `${config.outputDir}/${this.toFileName(node.name)}.${ext}`,
|
|
44
44
|
content: componentCode,
|
|
45
45
|
});
|
|
46
|
-
// Generate CSS file for css-modules
|
|
46
|
+
// Generate CSS file for css-modules and css modes
|
|
47
47
|
if (config.styleMode === 'css-modules') {
|
|
48
48
|
files.push({
|
|
49
49
|
path: `${config.outputDir}/${this.toFileName(node.name)}.module.css`,
|
|
50
|
-
content: this.
|
|
50
|
+
content: this.generateCSS(node),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else if (config.styleMode === 'css') {
|
|
54
|
+
files.push({
|
|
55
|
+
path: `${config.outputDir}/${this.toFileName(node.name)}.css`,
|
|
56
|
+
content: this.generateCSS(node),
|
|
51
57
|
});
|
|
52
58
|
}
|
|
53
59
|
return files;
|
|
@@ -63,6 +69,9 @@ class ReactGenerator {
|
|
|
63
69
|
if (config.styleMode === 'css-modules') {
|
|
64
70
|
imports.push(`import styles from './${this.toFileName(node.name)}.module.css'`);
|
|
65
71
|
}
|
|
72
|
+
else if (config.styleMode === 'css') {
|
|
73
|
+
imports.push(`import './${this.toFileName(node.name)}.css'`);
|
|
74
|
+
}
|
|
66
75
|
// Add image imports (deduplicate by variable name)
|
|
67
76
|
const importedVars = new Set();
|
|
68
77
|
for (const [_nodeId, varName] of this.imageImportMap) {
|
|
@@ -99,6 +108,16 @@ class ReactGenerator {
|
|
|
99
108
|
const propsParam = config.typescript ? `props: ${componentName}Props` : 'props';
|
|
100
109
|
const jsx = this.generateJSX(node, config, 0);
|
|
101
110
|
const designWidth = Math.round(node.layout.size.width) || 1920;
|
|
111
|
+
const wrapperClass = config.styleMode === 'css-modules'
|
|
112
|
+
? `className={styles['responsive-wrapper']}`
|
|
113
|
+
: config.styleMode === 'tailwind'
|
|
114
|
+
? `className="w-full overflow-hidden"`
|
|
115
|
+
: `className="responsive-wrapper"`;
|
|
116
|
+
const containerClass = config.styleMode === 'css-modules'
|
|
117
|
+
? `className={styles['scale-container']}`
|
|
118
|
+
: config.styleMode === 'tailwind'
|
|
119
|
+
? `className="w-[${designWidth}px] origin-top-left"`
|
|
120
|
+
: `className="scale-container"`;
|
|
102
121
|
return `export function ${componentName}(${propsParam}) {
|
|
103
122
|
const containerRef = React.useRef(null)
|
|
104
123
|
const [scale, setScale] = React.useState(1)
|
|
@@ -116,8 +135,8 @@ class ReactGenerator {
|
|
|
116
135
|
}, [])
|
|
117
136
|
|
|
118
137
|
return (
|
|
119
|
-
<div
|
|
120
|
-
<div ref={containerRef}
|
|
138
|
+
<div ${wrapperClass}>
|
|
139
|
+
<div ref={containerRef} ${containerClass} style={{ transform: \`scale(\${scale})\` }}>
|
|
121
140
|
${this.indent(jsx, 4)}
|
|
122
141
|
</div>
|
|
123
142
|
</div>
|
|
@@ -128,8 +147,7 @@ class ReactGenerator {
|
|
|
128
147
|
generateJSX(node, config, depth = 0) {
|
|
129
148
|
const tag = this.getHTMLTag(node);
|
|
130
149
|
const className = this.generateClassName(node, config);
|
|
131
|
-
const
|
|
132
|
-
const attrs = [className, style].filter(Boolean).join(' ');
|
|
150
|
+
const attrs = [className].filter(Boolean).join(' ');
|
|
133
151
|
// Add Figma layer name as comment for better readability (but not for root element)
|
|
134
152
|
const layerName = node.name || 'unnamed';
|
|
135
153
|
const comment = depth > 0 ? `{/* ${layerName} */}\n` : '';
|
|
@@ -174,6 +192,7 @@ class ReactGenerator {
|
|
|
174
192
|
if (config.styleMode === 'tailwind') {
|
|
175
193
|
return `className="${this.generateTailwindClasses(node)}"`;
|
|
176
194
|
}
|
|
195
|
+
// Plain CSS mode — use class names referencing the external .css file
|
|
177
196
|
return `className="${uniqueName}"`;
|
|
178
197
|
}
|
|
179
198
|
sanitizeCSSName(name, nodeType) {
|
|
@@ -205,6 +224,7 @@ class ReactGenerator {
|
|
|
205
224
|
}
|
|
206
225
|
generateTailwindClasses(node) {
|
|
207
226
|
const classes = [];
|
|
227
|
+
// Layout
|
|
208
228
|
if (node.layout.display === 'flex') {
|
|
209
229
|
classes.push('flex');
|
|
210
230
|
if (node.layout.flexDirection === 'column')
|
|
@@ -214,31 +234,72 @@ class ReactGenerator {
|
|
|
214
234
|
if (node.layout.alignItems)
|
|
215
235
|
classes.push(`items-${node.layout.alignItems}`);
|
|
216
236
|
if (node.layout.gap)
|
|
217
|
-
classes.push(`gap-${
|
|
218
|
-
}
|
|
237
|
+
classes.push(`gap-${this.toTailwindSpacing(node.layout.gap)}`);
|
|
238
|
+
}
|
|
239
|
+
// Size
|
|
240
|
+
if (node.layout.size.width)
|
|
241
|
+
classes.push(`w-[${Math.round(node.layout.size.width)}px]`);
|
|
242
|
+
if (node.layout.size.height)
|
|
243
|
+
classes.push(`h-[${Math.round(node.layout.size.height)}px]`);
|
|
244
|
+
// Background color
|
|
219
245
|
if (node.styles.backgroundColor) {
|
|
220
|
-
|
|
246
|
+
const c = node.styles.backgroundColor;
|
|
247
|
+
classes.push(`bg-[rgba(${c.r},${c.g},${c.b},${c.a})]`);
|
|
221
248
|
}
|
|
249
|
+
// Border radius
|
|
222
250
|
if (node.styles.borderRadius) {
|
|
223
251
|
const radius = Array.isArray(node.styles.borderRadius)
|
|
224
252
|
? node.styles.borderRadius[0]
|
|
225
253
|
: node.styles.borderRadius;
|
|
226
|
-
|
|
254
|
+
if (radius > 0) {
|
|
255
|
+
classes.push(radius >= 9999 ? 'rounded-full' : `rounded-[${radius}px]`);
|
|
256
|
+
}
|
|
227
257
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
const styles = [];
|
|
232
|
-
if (node.styles.backgroundColor) {
|
|
233
|
-
const { r, g, b, a } = node.styles.backgroundColor;
|
|
234
|
-
styles.push(`backgroundColor: 'rgba(${r},${g},${b},${a})'`);
|
|
258
|
+
// Opacity
|
|
259
|
+
if (node.styles.opacity !== undefined && node.styles.opacity !== 1) {
|
|
260
|
+
classes.push(`opacity-${Math.round(node.styles.opacity * 100)}`);
|
|
235
261
|
}
|
|
236
|
-
|
|
237
|
-
|
|
262
|
+
// Typography
|
|
263
|
+
if (node.type === 'Text' && node.styles.typography) {
|
|
264
|
+
const t = node.styles.typography;
|
|
265
|
+
classes.push(`text-[${t.fontSize}px]`);
|
|
266
|
+
classes.push(`font-[${t.fontWeight}]`);
|
|
267
|
+
if (t.textAlign && t.textAlign !== 'left')
|
|
268
|
+
classes.push(`text-${t.textAlign}`);
|
|
269
|
+
}
|
|
270
|
+
// Padding
|
|
271
|
+
if (node.layout.padding) {
|
|
272
|
+
const p = node.layout.padding;
|
|
273
|
+
if (typeof p === 'object' && 'top' in p) {
|
|
274
|
+
const { top, right, bottom, left } = p;
|
|
275
|
+
if (top === right && right === bottom && bottom === left && top > 0) {
|
|
276
|
+
classes.push(`p-${this.toTailwindSpacing(top)}`);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
if (top > 0)
|
|
280
|
+
classes.push(`pt-${this.toTailwindSpacing(top)}`);
|
|
281
|
+
if (right > 0)
|
|
282
|
+
classes.push(`pr-${this.toTailwindSpacing(right)}`);
|
|
283
|
+
if (bottom > 0)
|
|
284
|
+
classes.push(`pb-${this.toTailwindSpacing(bottom)}`);
|
|
285
|
+
if (left > 0)
|
|
286
|
+
classes.push(`pl-${this.toTailwindSpacing(left)}`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// Responsive breakpoint classes from ResponsiveMerger metadata
|
|
291
|
+
const meta = node.metadata;
|
|
292
|
+
if (meta.responsive && meta.breakpoints) {
|
|
293
|
+
classes.push('responsive');
|
|
238
294
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
295
|
+
return classes.join(' ');
|
|
296
|
+
}
|
|
297
|
+
toTailwindSpacing(px) {
|
|
298
|
+
const rounded = Math.round(px);
|
|
299
|
+
// Use Tailwind's spacing scale where possible
|
|
300
|
+
if (rounded % 4 === 0)
|
|
301
|
+
return String(rounded / 4);
|
|
302
|
+
return `[${rounded}px]`;
|
|
242
303
|
}
|
|
243
304
|
toComponentName(name) {
|
|
244
305
|
let sanitized = name
|
|
@@ -274,7 +335,7 @@ class ReactGenerator {
|
|
|
274
335
|
.map((line) => (line ? spaces + line : line))
|
|
275
336
|
.join('\n');
|
|
276
337
|
}
|
|
277
|
-
|
|
338
|
+
generateCSS(node) {
|
|
278
339
|
const styles = [];
|
|
279
340
|
const designWidth = Math.round(node.layout.size.width) || 1920;
|
|
280
341
|
const designHeight = Math.round(node.layout.size.height) || 1080;
|
|
@@ -283,7 +344,69 @@ class ReactGenerator {
|
|
|
283
344
|
styles.push(`.scale-container {\n width: ${designWidth}px;\n height: ${designHeight}px;\n transform-origin: top left;\n}`);
|
|
284
345
|
this.usedClassNames = new Map();
|
|
285
346
|
this.collectStyles(node, styles);
|
|
286
|
-
|
|
347
|
+
// Deduplicate identical CSS rules
|
|
348
|
+
const deduped = this.deduplicateStyles(styles);
|
|
349
|
+
// Add responsive media queries from ResponsiveMerger metadata
|
|
350
|
+
const mediaQueries = this.generateMediaQueries(node);
|
|
351
|
+
if (mediaQueries) {
|
|
352
|
+
deduped.push(mediaQueries);
|
|
353
|
+
}
|
|
354
|
+
return deduped.join('\n\n') + '\n';
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Deduplicate CSS rules: merge selectors that have identical rule bodies.
|
|
358
|
+
*/
|
|
359
|
+
deduplicateStyles(styles) {
|
|
360
|
+
const ruleMap = new Map(); // body -> selectors
|
|
361
|
+
const ordered = []; // track insertion order of bodies
|
|
362
|
+
for (const block of styles) {
|
|
363
|
+
const braceIdx = block.indexOf('{');
|
|
364
|
+
if (braceIdx === -1) {
|
|
365
|
+
ordered.push(block);
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
368
|
+
const selector = block.substring(0, braceIdx).trim();
|
|
369
|
+
const body = block.substring(braceIdx).trim();
|
|
370
|
+
if (!ruleMap.has(body)) {
|
|
371
|
+
ruleMap.set(body, []);
|
|
372
|
+
ordered.push(body);
|
|
373
|
+
}
|
|
374
|
+
ruleMap.get(body).push(selector);
|
|
375
|
+
}
|
|
376
|
+
return ordered.map((body) => {
|
|
377
|
+
const selectors = ruleMap.get(body);
|
|
378
|
+
if (!selectors)
|
|
379
|
+
return body; // non-rule block
|
|
380
|
+
return `${selectors.join(',\n')} ${body}`;
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Generate @media queries for responsive components (from ResponsiveMerger metadata).
|
|
385
|
+
*/
|
|
386
|
+
generateMediaQueries(node) {
|
|
387
|
+
const queries = [];
|
|
388
|
+
this.collectMediaQueries(node, queries);
|
|
389
|
+
return queries.length > 0 ? queries.join('\n\n') : null;
|
|
390
|
+
}
|
|
391
|
+
collectMediaQueries(node, queries) {
|
|
392
|
+
const meta = node.metadata;
|
|
393
|
+
if (meta.responsive && Array.isArray(meta.breakpoints)) {
|
|
394
|
+
const className = this.nodeClassMap.get(node.id) || this.sanitizeCSSName(node.name);
|
|
395
|
+
for (const bp of meta.breakpoints) {
|
|
396
|
+
const minW = bp.width || bp.breakpoint?.minWidth;
|
|
397
|
+
if (minW && bp.layout) {
|
|
398
|
+
const rules = [];
|
|
399
|
+
if (bp.layout.size?.width)
|
|
400
|
+
rules.push(` width: ${Math.round(bp.layout.size.width)}px;`);
|
|
401
|
+
if (bp.layout.size?.height)
|
|
402
|
+
rules.push(` height: ${Math.round(bp.layout.size.height)}px;`);
|
|
403
|
+
if (rules.length > 0) {
|
|
404
|
+
queries.push(`@media (min-width: ${minW}px) {\n .${className} {\n ${rules.join('\n ')}\n }\n}`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
node.children.forEach((child) => this.collectMediaQueries(child, queries));
|
|
287
410
|
}
|
|
288
411
|
collectStyles(node, styles, parentNode) {
|
|
289
412
|
const className = this.nodeClassMap.get(node.id) || this.sanitizeCSSName(node.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactGenerator.js","sourceRoot":"","sources":["../../src/generation/ReactGenerator.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IAA3B;QACU,mBAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,iBAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,mBAAc,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,iCAAiC;IAmdvF,CAAC;IAjdS,iBAAiB,CAAC,IAAa;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IACO,mBAAmB,CAAC,IAAa;QACvC,IACE,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ;YACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EACvC,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;YACpE,MAAM,OAAO,GACX,KAAK;gBACL,QAAQ;qBACL,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACvB,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;qBAC7B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,QAAQ,CAAC,IAAa,EAAE,MAAuB;QAC7C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,wCAAwC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAE9C,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE;YAChE,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,MAAM,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;gBACpE,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,iBAAiB,CAAC,IAAa,EAAE,MAAuB;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE3D,OAAO,GAAG,OAAO,OAAO,KAAK,GAAG,SAAS,EAAE,CAAC;IAC9C,CAAC;IAEO,eAAe,CAAC,IAAa,EAAE,MAAuB;QAC5D,MAAM,OAAO,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAE9C,IAAI,MAAM,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClF,CAAC;QAED,mDAAmD;QACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACrD,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,SAAS;YACxC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,UAAU,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEO,YAAY,CAAC,IAAa,EAAE,EAAU;QAC5C,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sBAAsB,CAAC,IAAa;QAC1C,OAAO,aAAa,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;CAKtD,CAAC;IACA,CAAC;IAEO,qBAAqB,CAAC,IAAa,EAAE,MAAuB;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,aAAa,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAEhF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QAE/D,OAAO,mBAAmB,aAAa,IAAI,UAAU;;;;;;;;+CAQV,WAAW;;;;;;;;;;;IAWtD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;;;;;GAKpB,CAAC;IACF,CAAC;IAEO,WAAW,CAAC,IAAa,EAAE,MAAuB,EAAE,QAAgB,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/E,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3D,oFAAoF;QACpF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1D,iCAAiC;QACjC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YACvC,OAAO,GAAG,OAAO,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;QACzE,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,GAAG,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,SAAS,UAAU,SAAS,MAAM,CAAC;YAC9F,CAAC;YACD,OAAO,GAAG,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,OAAO,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QAC3D,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;aAC3B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;aAC1D,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,GAAG,OAAO,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;MACtB,GAAG,GAAG,CAAC;IACX,CAAC;IAEO,UAAU,CAAC,IAAa;QAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAa,EAAE,MAAuB;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,MAAM,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;YACvC,OAAO,sBAAsB,UAAU,KAAK,CAAC;QAC/C,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,cAAc,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7D,CAAC;QACD,OAAO,cAAc,UAAU,GAAG,CAAC;IACrC,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,QAAiB;QACrD,kFAAkF;QAClF,0CAA0C;QAC1C,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC/C,4BAA4B;YAC5B,OAAO,GAAG,OAAO;iBACd,KAAK,CAAC,WAAW,CAAC;iBAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QAED,kCAAkC;QAClC,OAAO,CACL,OAAO;YACL,kFAAkF;aACjF,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,IAAI,EAAE;YACP,8BAA8B;aAC7B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YACrB,yBAAyB;aACxB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,kCAAkC;aACjC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACnC,WAAW,EAAE;YACd,4BAA4B;aAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CACtC,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,IAAa;QAC3C,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBACpD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEO,mBAAmB,CAAC,IAAa;QACvC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEnC,OAAO,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5C,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,IAAI,SAAS,GAAG,IAAI;YAClB,8CAA8C;YAC9C,4CAA4C;aAC3C,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;YAC7B,kFAAkF;aACjF,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,+DAA+D;aAC9D,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtE,yBAAyB;aACxB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAE1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,WAAW,CAAC;QAC1B,CAAC;QAED,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,IAAI,SAAS,GAAG,IAAI;YAClB,4CAA4C;aAC3C,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACrE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS;YAAE,SAAS,GAAG,WAAW,CAAC;QACxC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,MAAM,CAAC,IAAY,EAAE,KAAa;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,IAAI;aACR,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5C,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,iBAAiB,CAAC,IAAa;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QAEjE,gCAAgC;QAChC,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,CACT,gCAAgC,WAAW,kBAAkB,YAAY,uCAAuC,CACjH,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC,CAAC;IAEO,aAAa,CAAC,IAAa,EAAE,MAAgB,EAAE,UAAoB;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC;QAC5F,MAAM,mBAAmB,GAAG,UAAU,EAAE,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC;QAClE,MAAM,aAAa,GAAG,CAAC,WAAW,IAAI,CAAC,mBAAmB,IAAI,UAAU,CAAC;QAEzE,4FAA4F;QAC5F,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;QAC1F,uFAAuF;QACvF,MAAM,2BAA2B,GAC/B,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QAEzE,MAAM,kBAAkB,GACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAEpF,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;gBAC3B,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc;gBAC5B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU;gBAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;YACvF,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;gBAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,kBAAkB,EAAE,CAAC;YAC9B,iFAAiF;YACjF,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC9C,CAAC;QAED,sFAAsF;QACtF,uFAAuF;QACvF,IAAI,aAAa,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtF,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,kBAAkB,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACzC,CAAC;QAED,0EAA0E;QAC1E,IAAI,2BAA2B,EAAE,CAAC;YAChC,+CAA+C;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,IAAI,WAAW,EAAE,CAAC;oBAChB,2DAA2D;gBAC7D,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;gBACvC,IAAI,GAAG,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACzD,IAAI,GAAG,GAAG,CAAC;wBAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;gBACrD,CAAC;qBAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC1D,QAAQ,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,KAAK,MAAM,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7F,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACrC,8EAA8E;YAC9E,kFAAkF;YAClF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACpC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,GAAG,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACnF,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QACtD,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,UAAU,gBAAgB,CAAC,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,CAAC,UAAU;gBAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjF,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC;gBAC1C,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,2BAA2B;gBAC7C,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;YACjD,+DAA+D;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;YACpD,MAAM,YAAY,GAChB,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;YAC1E,IAAI,YAAY;gBAAE,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;gBACtC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACtC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF;AAtdD,wCAsdC"}
|
|
1
|
+
{"version":3,"file":"ReactGenerator.js","sourceRoot":"","sources":["../../src/generation/ReactGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,23 @@ export declare class VueGenerator implements CodeGenerator {
|
|
|
14
14
|
private getHTMLTag;
|
|
15
15
|
private generateScript;
|
|
16
16
|
private generateStyle;
|
|
17
|
+
/**
|
|
18
|
+
* Generate a standalone CSS file (for css mode).
|
|
19
|
+
*/
|
|
20
|
+
private generateStandaloneCSS;
|
|
21
|
+
/**
|
|
22
|
+
* Deduplicate CSS rules: merge selectors with identical rule bodies.
|
|
23
|
+
*/
|
|
24
|
+
private deduplicateStyles;
|
|
25
|
+
/**
|
|
26
|
+
* Generate @media queries for responsive components.
|
|
27
|
+
*/
|
|
28
|
+
private generateMediaQueries;
|
|
29
|
+
private collectMediaQueries;
|
|
17
30
|
private collectStyles;
|
|
18
31
|
private sanitizeCSSName;
|
|
19
32
|
private generateTailwindClasses;
|
|
33
|
+
private toTailwindSpacing;
|
|
20
34
|
private toFileName;
|
|
21
35
|
private indent;
|
|
22
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VueGenerator.d.ts","sourceRoot":"","sources":["../../src/generation/VueGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7E,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAA6B;IAEnD,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,YAAY;IASpB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"VueGenerator.d.ts","sourceRoot":"","sources":["../../src/generation/VueGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7E,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAA6B;IAEnD,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,YAAY;IASpB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE;IA2BjE,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,cAAc;IAyCtB,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,aAAa;IAwIrB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,uBAAuB;IAsD/B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,MAAM;CAOf"}
|