skillui 1.1.2 → 1.1.3
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/dist/cli.js +105073 -194
- package/package.json +15 -6
- package/dist/cli.d.ts +0 -3
- package/dist/extractors/components.d.ts +0 -11
- package/dist/extractors/components.js +0 -455
- package/dist/extractors/framework.d.ts +0 -4
- package/dist/extractors/framework.js +0 -126
- package/dist/extractors/tokens/computed.d.ts +0 -7
- package/dist/extractors/tokens/computed.js +0 -249
- package/dist/extractors/tokens/css.d.ts +0 -3
- package/dist/extractors/tokens/css.js +0 -510
- package/dist/extractors/tokens/http-css.d.ts +0 -14
- package/dist/extractors/tokens/http-css.js +0 -1689
- package/dist/extractors/tokens/tailwind.d.ts +0 -3
- package/dist/extractors/tokens/tailwind.js +0 -353
- package/dist/extractors/tokens/tokens-file.d.ts +0 -3
- package/dist/extractors/tokens/tokens-file.js +0 -229
- package/dist/extractors/ultra/animations.d.ts +0 -21
- package/dist/extractors/ultra/animations.js +0 -527
- package/dist/extractors/ultra/components-dom.d.ts +0 -13
- package/dist/extractors/ultra/components-dom.js +0 -149
- package/dist/extractors/ultra/interactions.d.ts +0 -14
- package/dist/extractors/ultra/interactions.js +0 -222
- package/dist/extractors/ultra/layout.d.ts +0 -14
- package/dist/extractors/ultra/layout.js +0 -123
- package/dist/extractors/ultra/pages.d.ts +0 -16
- package/dist/extractors/ultra/pages.js +0 -228
- package/dist/font-resolver.d.ts +0 -10
- package/dist/font-resolver.js +0 -280
- package/dist/modes/dir.d.ts +0 -6
- package/dist/modes/dir.js +0 -213
- package/dist/modes/repo.d.ts +0 -6
- package/dist/modes/repo.js +0 -76
- package/dist/modes/ultra.d.ts +0 -22
- package/dist/modes/ultra.js +0 -281
- package/dist/modes/url.d.ts +0 -14
- package/dist/modes/url.js +0 -161
- package/dist/normalizer.d.ts +0 -11
- package/dist/normalizer.js +0 -867
- package/dist/playwright-loader.d.ts +0 -10
- package/dist/playwright-loader.js +0 -71
- package/dist/screenshot.d.ts +0 -9
- package/dist/screenshot.js +0 -94
- package/dist/types-ultra.d.ts +0 -157
- package/dist/types-ultra.js +0 -4
- package/dist/types.d.ts +0 -182
- package/dist/types.js +0 -4
- package/dist/writers/animations-md.d.ts +0 -17
- package/dist/writers/animations-md.js +0 -313
- package/dist/writers/components-md.d.ts +0 -8
- package/dist/writers/components-md.js +0 -151
- package/dist/writers/design-md.d.ts +0 -7
- package/dist/writers/design-md.js +0 -704
- package/dist/writers/interactions-md.d.ts +0 -8
- package/dist/writers/interactions-md.js +0 -146
- package/dist/writers/layout-md.d.ts +0 -8
- package/dist/writers/layout-md.js +0 -120
- package/dist/writers/skill.d.ts +0 -12
- package/dist/writers/skill.js +0 -1006
- package/dist/writers/tokens-json.d.ts +0 -11
- package/dist/writers/tokens-json.js +0 -164
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Loads playwright from any location it might be installed:
|
|
3
|
-
* 1. Bundled with the CLI (peer dep)
|
|
4
|
-
* 2. In the user's cwd node_modules (local project install)
|
|
5
|
-
* 3. In the global npm prefix (npm install -g playwright)
|
|
6
|
-
*
|
|
7
|
-
* Returns the playwright module or null if not found anywhere.
|
|
8
|
-
*/
|
|
9
|
-
export declare function loadPlaywright(): any | null;
|
|
10
|
-
//# sourceMappingURL=playwright-loader.d.ts.map
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.loadPlaywright = loadPlaywright;
|
|
37
|
-
const path = __importStar(require("path"));
|
|
38
|
-
const child_process_1 = require("child_process");
|
|
39
|
-
/**
|
|
40
|
-
* Loads playwright from any location it might be installed:
|
|
41
|
-
* 1. Bundled with the CLI (peer dep)
|
|
42
|
-
* 2. In the user's cwd node_modules (local project install)
|
|
43
|
-
* 3. In the global npm prefix (npm install -g playwright)
|
|
44
|
-
*
|
|
45
|
-
* Returns the playwright module or null if not found anywhere.
|
|
46
|
-
*/
|
|
47
|
-
function loadPlaywright() {
|
|
48
|
-
// 1. Try standard require (works when playwright is in same node_modules tree)
|
|
49
|
-
try {
|
|
50
|
-
return require('playwright');
|
|
51
|
-
}
|
|
52
|
-
catch { /* fall through */ }
|
|
53
|
-
// 2. Try from cwd (user ran: npm install playwright in their project)
|
|
54
|
-
try {
|
|
55
|
-
const cwdPath = path.join(process.cwd(), 'node_modules', 'playwright');
|
|
56
|
-
return require(cwdPath);
|
|
57
|
-
}
|
|
58
|
-
catch { /* fall through */ }
|
|
59
|
-
// 3. Try from global npm prefix (npm install -g playwright)
|
|
60
|
-
try {
|
|
61
|
-
const globalRoot = (0, child_process_1.execSync)('npm root -g', {
|
|
62
|
-
encoding: 'utf-8',
|
|
63
|
-
stdio: ['ignore', 'pipe', 'ignore'],
|
|
64
|
-
timeout: 5000,
|
|
65
|
-
}).trim();
|
|
66
|
-
return require(path.join(globalRoot, 'playwright'));
|
|
67
|
-
}
|
|
68
|
-
catch { /* fall through */ }
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=playwright-loader.js.map
|
package/dist/screenshot.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capture a screenshot of a website using the microlink.io free API.
|
|
3
|
-
* No API key required for basic usage.
|
|
4
|
-
*
|
|
5
|
-
* Saves screenshot to skillDir/screenshots/homepage.png
|
|
6
|
-
* Returns the local relative path, or null if capture fails.
|
|
7
|
-
*/
|
|
8
|
-
export declare function captureScreenshot(url: string, skillDir: string): Promise<string | null>;
|
|
9
|
-
//# sourceMappingURL=screenshot.d.ts.map
|
package/dist/screenshot.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.captureScreenshot = captureScreenshot;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
/**
|
|
40
|
-
* Capture a screenshot of a website using the microlink.io free API.
|
|
41
|
-
* No API key required for basic usage.
|
|
42
|
-
*
|
|
43
|
-
* Saves screenshot to skillDir/screenshots/homepage.png
|
|
44
|
-
* Returns the local relative path, or null if capture fails.
|
|
45
|
-
*/
|
|
46
|
-
async function captureScreenshot(url, skillDir) {
|
|
47
|
-
try {
|
|
48
|
-
const screenshotsDir = path.join(skillDir, 'screenshots');
|
|
49
|
-
fs.mkdirSync(screenshotsDir, { recursive: true });
|
|
50
|
-
// microlink.io with embed=screenshot.url returns the image bytes directly
|
|
51
|
-
const apiUrl = `https://api.microlink.io?url=${encodeURIComponent(url)}&screenshot=true&meta=false&embed=screenshot.url&waitFor=2000`;
|
|
52
|
-
const res = await fetch(apiUrl, {
|
|
53
|
-
headers: { 'User-Agent': 'skillui/1.0' },
|
|
54
|
-
signal: AbortSignal.timeout(25000),
|
|
55
|
-
});
|
|
56
|
-
if (!res.ok)
|
|
57
|
-
return null;
|
|
58
|
-
const contentType = res.headers.get('content-type') || '';
|
|
59
|
-
// The embed=screenshot.url mode returns image bytes directly
|
|
60
|
-
if (contentType.startsWith('image/')) {
|
|
61
|
-
const buffer = Buffer.from(await res.arrayBuffer());
|
|
62
|
-
if (buffer.length < 1000)
|
|
63
|
-
return null;
|
|
64
|
-
const ext = contentType.includes('png') ? 'png' : 'jpg';
|
|
65
|
-
const destPath = path.join(screenshotsDir, `homepage.${ext}`);
|
|
66
|
-
fs.writeFileSync(destPath, buffer);
|
|
67
|
-
return `screenshots/homepage.${ext}`;
|
|
68
|
-
}
|
|
69
|
-
// Fallback: try JSON response (without embed param behaviour)
|
|
70
|
-
const text = await res.text();
|
|
71
|
-
try {
|
|
72
|
-
const json = JSON.parse(text);
|
|
73
|
-
const screenshotUrl = json?.data?.screenshot?.url;
|
|
74
|
-
if (!screenshotUrl)
|
|
75
|
-
return null;
|
|
76
|
-
const imgRes = await fetch(screenshotUrl, { signal: AbortSignal.timeout(20000) });
|
|
77
|
-
if (!imgRes.ok)
|
|
78
|
-
return null;
|
|
79
|
-
const buffer = Buffer.from(await imgRes.arrayBuffer());
|
|
80
|
-
if (buffer.length < 1000)
|
|
81
|
-
return null;
|
|
82
|
-
const destPath = path.join(screenshotsDir, 'homepage.jpg');
|
|
83
|
-
fs.writeFileSync(destPath, buffer);
|
|
84
|
-
return 'screenshots/homepage.jpg';
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=screenshot.js.map
|
package/dist/types-ultra.d.ts
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
export interface UltraOptions {
|
|
2
|
-
/** Max pages to crawl (default: 5) */
|
|
3
|
-
screens: number;
|
|
4
|
-
}
|
|
5
|
-
export interface PageScreenshot {
|
|
6
|
-
url: string;
|
|
7
|
-
slug: string;
|
|
8
|
-
/** Relative path inside skillDir: screens/pages/[slug].png */
|
|
9
|
-
filePath: string;
|
|
10
|
-
title: string;
|
|
11
|
-
}
|
|
12
|
-
export interface SectionScreenshot {
|
|
13
|
-
page: string;
|
|
14
|
-
index: number;
|
|
15
|
-
/** Relative path inside skillDir: screens/sections/[page]-section-[index].png */
|
|
16
|
-
filePath: string;
|
|
17
|
-
selector: string;
|
|
18
|
-
height: number;
|
|
19
|
-
width: number;
|
|
20
|
-
}
|
|
21
|
-
export interface StyleSnapshot {
|
|
22
|
-
backgroundColor: string;
|
|
23
|
-
color: string;
|
|
24
|
-
borderColor: string;
|
|
25
|
-
borderWidth: string;
|
|
26
|
-
boxShadow: string;
|
|
27
|
-
opacity: string;
|
|
28
|
-
transform: string;
|
|
29
|
-
outline: string;
|
|
30
|
-
outlineColor: string;
|
|
31
|
-
textDecoration: string;
|
|
32
|
-
transition: string;
|
|
33
|
-
}
|
|
34
|
-
export interface StyleDiff {
|
|
35
|
-
property: string;
|
|
36
|
-
from: string;
|
|
37
|
-
to: string;
|
|
38
|
-
}
|
|
39
|
-
export interface InteractionRecord {
|
|
40
|
-
componentType: 'button' | 'link' | 'input' | 'role-button';
|
|
41
|
-
label: string;
|
|
42
|
-
selector: string;
|
|
43
|
-
index: number;
|
|
44
|
-
screenshots: {
|
|
45
|
-
default?: string;
|
|
46
|
-
hover?: string;
|
|
47
|
-
focus?: string;
|
|
48
|
-
};
|
|
49
|
-
hoverChanges: StyleDiff[];
|
|
50
|
-
focusChanges: StyleDiff[];
|
|
51
|
-
transitionValue: string;
|
|
52
|
-
}
|
|
53
|
-
export interface LayoutRecord {
|
|
54
|
-
tag: string;
|
|
55
|
-
selector: string;
|
|
56
|
-
display: string;
|
|
57
|
-
flexDirection: string;
|
|
58
|
-
flexWrap: string;
|
|
59
|
-
justifyContent: string;
|
|
60
|
-
alignItems: string;
|
|
61
|
-
gap: string;
|
|
62
|
-
rowGap: string;
|
|
63
|
-
columnGap: string;
|
|
64
|
-
padding: string;
|
|
65
|
-
margin: string;
|
|
66
|
-
gridTemplateColumns: string;
|
|
67
|
-
gridTemplateRows: string;
|
|
68
|
-
maxWidth: string;
|
|
69
|
-
width: string;
|
|
70
|
-
height: string;
|
|
71
|
-
position: string;
|
|
72
|
-
childCount: number;
|
|
73
|
-
depth: number;
|
|
74
|
-
}
|
|
75
|
-
export interface DOMComponent {
|
|
76
|
-
name: string;
|
|
77
|
-
pattern: string;
|
|
78
|
-
instances: number;
|
|
79
|
-
commonClasses: string[];
|
|
80
|
-
htmlSnippet: string;
|
|
81
|
-
category: 'card' | 'list-item' | 'nav-item' | 'form-field' | 'button' | 'badge' | 'unknown';
|
|
82
|
-
}
|
|
83
|
-
export interface KeyframeStop {
|
|
84
|
-
stop: string;
|
|
85
|
-
properties: Record<string, string>;
|
|
86
|
-
}
|
|
87
|
-
export interface ExtractedKeyframe {
|
|
88
|
-
name: string;
|
|
89
|
-
stops: KeyframeStop[];
|
|
90
|
-
usedBy: string[];
|
|
91
|
-
animDuration?: string;
|
|
92
|
-
animEasing?: string;
|
|
93
|
-
animDelay?: string;
|
|
94
|
-
animIteration?: string;
|
|
95
|
-
animFillMode?: string;
|
|
96
|
-
animDirection?: string;
|
|
97
|
-
}
|
|
98
|
-
export interface ScrollFrame {
|
|
99
|
-
scrollPercent: number;
|
|
100
|
-
scrollY: number;
|
|
101
|
-
pageHeight: number;
|
|
102
|
-
filePath: string;
|
|
103
|
-
}
|
|
104
|
-
export interface DetectedLibrary {
|
|
105
|
-
name: string;
|
|
106
|
-
version?: string;
|
|
107
|
-
type: 'animation' | 'scroll' | 'physics' | '3d' | 'lottie' | 'other';
|
|
108
|
-
cdn?: string;
|
|
109
|
-
}
|
|
110
|
-
export interface VideoInfo {
|
|
111
|
-
index: number;
|
|
112
|
-
src: string;
|
|
113
|
-
poster?: string;
|
|
114
|
-
autoplay: boolean;
|
|
115
|
-
loop: boolean;
|
|
116
|
-
muted: boolean;
|
|
117
|
-
width?: number;
|
|
118
|
-
height?: number;
|
|
119
|
-
role: 'background' | 'content' | 'unknown';
|
|
120
|
-
firstFramePath?: string;
|
|
121
|
-
}
|
|
122
|
-
export interface ScrollAnimationPattern {
|
|
123
|
-
selector: string;
|
|
124
|
-
library: string;
|
|
125
|
-
attribute?: string;
|
|
126
|
-
animationType: string;
|
|
127
|
-
duration?: string;
|
|
128
|
-
delay?: string;
|
|
129
|
-
easing?: string;
|
|
130
|
-
count: number;
|
|
131
|
-
}
|
|
132
|
-
export interface CSSAnimationVar {
|
|
133
|
-
name: string;
|
|
134
|
-
value: string;
|
|
135
|
-
category: 'duration' | 'easing' | 'delay' | 'animation' | 'other';
|
|
136
|
-
}
|
|
137
|
-
export interface FullAnimationResult {
|
|
138
|
-
keyframes: ExtractedKeyframe[];
|
|
139
|
-
scrollFrames: ScrollFrame[];
|
|
140
|
-
libraries: DetectedLibrary[];
|
|
141
|
-
videos: VideoInfo[];
|
|
142
|
-
scrollPatterns: ScrollAnimationPattern[];
|
|
143
|
-
animationVars: CSSAnimationVar[];
|
|
144
|
-
globalTransitions: string[];
|
|
145
|
-
canvasCount: number;
|
|
146
|
-
webglDetected: boolean;
|
|
147
|
-
lottieCount: number;
|
|
148
|
-
}
|
|
149
|
-
export interface UltraResult {
|
|
150
|
-
pageScreenshots: PageScreenshot[];
|
|
151
|
-
sectionScreenshots: SectionScreenshot[];
|
|
152
|
-
interactions: InteractionRecord[];
|
|
153
|
-
layouts: LayoutRecord[];
|
|
154
|
-
domComponents: DOMComponent[];
|
|
155
|
-
animations: FullAnimationResult;
|
|
156
|
-
}
|
|
157
|
-
//# sourceMappingURL=types-ultra.d.ts.map
|
package/dist/types-ultra.js
DELETED
package/dist/types.d.ts
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
export interface DesignProfile {
|
|
2
|
-
projectName: string;
|
|
3
|
-
siteUrl?: string;
|
|
4
|
-
favicon?: string | null;
|
|
5
|
-
frameworks: Framework[];
|
|
6
|
-
colors: ColorToken[];
|
|
7
|
-
typography: TypographyToken[];
|
|
8
|
-
spacing: SpacingScale;
|
|
9
|
-
shadows: ShadowToken[];
|
|
10
|
-
components: ComponentInfo[];
|
|
11
|
-
breakpoints: Breakpoint[];
|
|
12
|
-
cssVariables: CSSVariable[];
|
|
13
|
-
borderRadius: string[];
|
|
14
|
-
fontVarMap: Record<string, string>;
|
|
15
|
-
antiPatterns: string[];
|
|
16
|
-
designTraits: DesignTraits;
|
|
17
|
-
animations: AnimationToken[];
|
|
18
|
-
darkModeVars: DarkModeVar[];
|
|
19
|
-
iconLibrary: string | null;
|
|
20
|
-
stateLibrary: string | null;
|
|
21
|
-
componentCategories: Record<ComponentCategory, string[]>;
|
|
22
|
-
zIndexScale: number[];
|
|
23
|
-
containerMaxWidth: string | null;
|
|
24
|
-
fontSources: FontSource[];
|
|
25
|
-
pageSections: PageSection[];
|
|
26
|
-
motionTokens: MotionTokens;
|
|
27
|
-
}
|
|
28
|
-
export interface DesignTraits {
|
|
29
|
-
isDark: boolean;
|
|
30
|
-
hasShadows: boolean;
|
|
31
|
-
hasGradients: boolean;
|
|
32
|
-
hasRoundedFull: boolean;
|
|
33
|
-
maxBorderRadius: number;
|
|
34
|
-
primaryColorTemp: 'warm' | 'cool' | 'neutral';
|
|
35
|
-
fontStyle: 'serif' | 'sans-serif' | 'monospace';
|
|
36
|
-
density: 'compact' | 'standard' | 'spacious';
|
|
37
|
-
hasAnimations: boolean;
|
|
38
|
-
hasDarkMode: boolean;
|
|
39
|
-
motionStyle: 'none' | 'subtle' | 'expressive';
|
|
40
|
-
}
|
|
41
|
-
export type ComponentCategory = 'layout' | 'navigation' | 'data-display' | 'data-input' | 'feedback' | 'overlay' | 'typography' | 'media' | 'other';
|
|
42
|
-
export interface AnimationToken {
|
|
43
|
-
name: string;
|
|
44
|
-
type: 'css-keyframe' | 'css-transition' | 'framer-motion' | 'spring';
|
|
45
|
-
value: string;
|
|
46
|
-
source: string;
|
|
47
|
-
}
|
|
48
|
-
export interface DarkModeVar {
|
|
49
|
-
variable: string;
|
|
50
|
-
lightValue: string;
|
|
51
|
-
darkValue: string;
|
|
52
|
-
}
|
|
53
|
-
export type FrameworkId = 'tailwind' | 'react' | 'vue' | 'next' | 'nuxt' | 'svelte' | 'angular' | 'css-in-js' | 'css-modules';
|
|
54
|
-
export interface Framework {
|
|
55
|
-
id: FrameworkId;
|
|
56
|
-
name: string;
|
|
57
|
-
version?: string;
|
|
58
|
-
}
|
|
59
|
-
export type ColorRole = 'background' | 'surface' | 'text-primary' | 'text-muted' | 'accent' | 'border' | 'danger' | 'success' | 'warning' | 'info' | 'unknown';
|
|
60
|
-
export interface ColorToken {
|
|
61
|
-
hex: string;
|
|
62
|
-
name?: string;
|
|
63
|
-
role: ColorRole;
|
|
64
|
-
frequency: number;
|
|
65
|
-
source: 'tailwind' | 'css' | 'tokens-file' | 'component' | 'computed';
|
|
66
|
-
}
|
|
67
|
-
export type TypographyRole = 'heading-1' | 'heading-2' | 'heading-3' | 'heading-4' | 'body' | 'caption' | 'code' | 'unknown';
|
|
68
|
-
export interface TypographyToken {
|
|
69
|
-
role: TypographyRole;
|
|
70
|
-
fontFamily: string;
|
|
71
|
-
fontSize?: string;
|
|
72
|
-
fontWeight?: string | number;
|
|
73
|
-
lineHeight?: string;
|
|
74
|
-
source: 'tailwind' | 'css' | 'tokens-file' | 'component' | 'computed';
|
|
75
|
-
}
|
|
76
|
-
export interface SpacingScale {
|
|
77
|
-
base: number;
|
|
78
|
-
values: number[];
|
|
79
|
-
unit: 'px' | 'rem';
|
|
80
|
-
}
|
|
81
|
-
export type ShadowLevel = 'flat' | 'raised' | 'floating' | 'overlay';
|
|
82
|
-
export interface ShadowToken {
|
|
83
|
-
value: string;
|
|
84
|
-
level: ShadowLevel;
|
|
85
|
-
name?: string;
|
|
86
|
-
}
|
|
87
|
-
export interface ComponentInfo {
|
|
88
|
-
name: string;
|
|
89
|
-
filePath: string;
|
|
90
|
-
variants: string[];
|
|
91
|
-
cssClasses: string[];
|
|
92
|
-
jsxSnippet: string;
|
|
93
|
-
props: string[];
|
|
94
|
-
category: ComponentCategory;
|
|
95
|
-
hasAnimation: boolean;
|
|
96
|
-
animationDetails: string[];
|
|
97
|
-
statePatterns: string[];
|
|
98
|
-
tailwindPatterns: TailwindPattern;
|
|
99
|
-
}
|
|
100
|
-
export interface TailwindPattern {
|
|
101
|
-
backgrounds: string[];
|
|
102
|
-
borders: string[];
|
|
103
|
-
spacing: string[];
|
|
104
|
-
typography: string[];
|
|
105
|
-
effects: string[];
|
|
106
|
-
layout: string[];
|
|
107
|
-
interactive: string[];
|
|
108
|
-
}
|
|
109
|
-
export interface Breakpoint {
|
|
110
|
-
name: string;
|
|
111
|
-
value: string;
|
|
112
|
-
source: 'tailwind' | 'css';
|
|
113
|
-
}
|
|
114
|
-
export interface CSSVariable {
|
|
115
|
-
name: string;
|
|
116
|
-
value: string;
|
|
117
|
-
property?: string;
|
|
118
|
-
}
|
|
119
|
-
export interface RawTokens {
|
|
120
|
-
colors: Array<{
|
|
121
|
-
value: string;
|
|
122
|
-
frequency: number;
|
|
123
|
-
source: ColorToken['source'];
|
|
124
|
-
name?: string;
|
|
125
|
-
}>;
|
|
126
|
-
fonts: Array<{
|
|
127
|
-
family: string;
|
|
128
|
-
size?: string;
|
|
129
|
-
weight?: string | number;
|
|
130
|
-
source: TypographyToken['source'];
|
|
131
|
-
}>;
|
|
132
|
-
spacingValues: number[];
|
|
133
|
-
shadows: Array<{
|
|
134
|
-
value: string;
|
|
135
|
-
name?: string;
|
|
136
|
-
}>;
|
|
137
|
-
cssVariables: CSSVariable[];
|
|
138
|
-
breakpoints: Breakpoint[];
|
|
139
|
-
borderRadii: string[];
|
|
140
|
-
gradients: string[];
|
|
141
|
-
fontVarMap: Record<string, string>;
|
|
142
|
-
animations: AnimationToken[];
|
|
143
|
-
darkModeVars: DarkModeVar[];
|
|
144
|
-
zIndexValues: number[];
|
|
145
|
-
containerMaxWidth: string | null;
|
|
146
|
-
fontSources: FontSource[];
|
|
147
|
-
pageSections: PageSection[];
|
|
148
|
-
transitionDurations: string[];
|
|
149
|
-
transitionEasings: string[];
|
|
150
|
-
favicon?: string | null;
|
|
151
|
-
siteTitle?: string | null;
|
|
152
|
-
}
|
|
153
|
-
export interface FontSource {
|
|
154
|
-
family: string;
|
|
155
|
-
src: string;
|
|
156
|
-
format?: string;
|
|
157
|
-
weight?: string;
|
|
158
|
-
}
|
|
159
|
-
export interface PageSection {
|
|
160
|
-
type: 'navigation' | 'hero' | 'features' | 'content' | 'cards' | 'faq' | 'footer' | 'cta' | 'stats' | 'testimonials';
|
|
161
|
-
tag: string;
|
|
162
|
-
classes: string[];
|
|
163
|
-
childCount: number;
|
|
164
|
-
description: string;
|
|
165
|
-
}
|
|
166
|
-
export interface MotionTokens {
|
|
167
|
-
durations: string[];
|
|
168
|
-
easings: string[];
|
|
169
|
-
properties: string[];
|
|
170
|
-
}
|
|
171
|
-
export interface CLIOptions {
|
|
172
|
-
dir?: string;
|
|
173
|
-
repo?: string;
|
|
174
|
-
url?: string;
|
|
175
|
-
out: string;
|
|
176
|
-
name?: string;
|
|
177
|
-
skill: boolean;
|
|
178
|
-
format: 'design-md' | 'skill' | 'both';
|
|
179
|
-
mode: 'default' | 'ultra';
|
|
180
|
-
screens: string;
|
|
181
|
-
}
|
|
182
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { FullAnimationResult } from '../types-ultra';
|
|
2
|
-
import { DesignProfile } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* Generate references/ANIMATIONS.md
|
|
5
|
-
*
|
|
6
|
-
* Cinematic-quality animation documentation:
|
|
7
|
-
* - Technology stack (GSAP, Lottie, Three.js, etc.)
|
|
8
|
-
* - Scroll journey (7 screenshots from top to bottom)
|
|
9
|
-
* - Every CSS @keyframe with full code + usage context
|
|
10
|
-
* - Scroll-triggered animation patterns
|
|
11
|
-
* - Video background specifications
|
|
12
|
-
* - Canvas / WebGL indicators
|
|
13
|
-
* - CSS animation variables / tokens
|
|
14
|
-
* - Implementation guide (how to recreate the motion design)
|
|
15
|
-
*/
|
|
16
|
-
export declare function generateAnimationsMd(anim: FullAnimationResult, profile: DesignProfile): string;
|
|
17
|
-
//# sourceMappingURL=animations-md.d.ts.map
|