@mseep/dembrandt 0.19.5

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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +408 -0
  3. package/dist/index.d.ts +8 -0
  4. package/dist/index.js +532 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/browser.d.ts +16 -0
  7. package/dist/lib/browser.js +27 -0
  8. package/dist/lib/browser.js.map +1 -0
  9. package/dist/lib/colors.d.ts +101 -0
  10. package/dist/lib/colors.js +405 -0
  11. package/dist/lib/colors.js.map +1 -0
  12. package/dist/lib/compare.d.ts +31 -0
  13. package/dist/lib/compare.js +46 -0
  14. package/dist/lib/compare.js.map +1 -0
  15. package/dist/lib/discovery.d.ts +31 -0
  16. package/dist/lib/discovery.js +243 -0
  17. package/dist/lib/discovery.js.map +1 -0
  18. package/dist/lib/drift.d.ts +64 -0
  19. package/dist/lib/drift.js +383 -0
  20. package/dist/lib/drift.js.map +1 -0
  21. package/dist/lib/dtcg/validate.d.ts +51 -0
  22. package/dist/lib/dtcg/validate.js +1403 -0
  23. package/dist/lib/dtcg/validate.js.map +1 -0
  24. package/dist/lib/exit-codes.d.ts +29 -0
  25. package/dist/lib/exit-codes.js +26 -0
  26. package/dist/lib/exit-codes.js.map +1 -0
  27. package/dist/lib/extractors/breakpoints.d.ts +5 -0
  28. package/dist/lib/extractors/breakpoints.js +450 -0
  29. package/dist/lib/extractors/breakpoints.js.map +1 -0
  30. package/dist/lib/extractors/colors.d.ts +2 -0
  31. package/dist/lib/extractors/colors.js +657 -0
  32. package/dist/lib/extractors/colors.js.map +1 -0
  33. package/dist/lib/extractors/components.d.ts +4 -0
  34. package/dist/lib/extractors/components.js +370 -0
  35. package/dist/lib/extractors/components.js.map +1 -0
  36. package/dist/lib/extractors/index.d.ts +9 -0
  37. package/dist/lib/extractors/index.js +1257 -0
  38. package/dist/lib/extractors/index.js.map +1 -0
  39. package/dist/lib/extractors/logo.d.ts +2 -0
  40. package/dist/lib/extractors/logo.js +626 -0
  41. package/dist/lib/extractors/logo.js.map +1 -0
  42. package/dist/lib/extractors/spacing.d.ts +4 -0
  43. package/dist/lib/extractors/spacing.js +163 -0
  44. package/dist/lib/extractors/spacing.js.map +1 -0
  45. package/dist/lib/extractors/teach.d.ts +1 -0
  46. package/dist/lib/extractors/teach.js +66 -0
  47. package/dist/lib/extractors/teach.js.map +1 -0
  48. package/dist/lib/extractors/typography.d.ts +1 -0
  49. package/dist/lib/extractors/typography.js +163 -0
  50. package/dist/lib/extractors/typography.js.map +1 -0
  51. package/dist/lib/findings.d.ts +34 -0
  52. package/dist/lib/findings.js +166 -0
  53. package/dist/lib/findings.js.map +1 -0
  54. package/dist/lib/formatters/dtcg.d.ts +10 -0
  55. package/dist/lib/formatters/dtcg.js +416 -0
  56. package/dist/lib/formatters/dtcg.js.map +1 -0
  57. package/dist/lib/formatters/html.d.ts +25 -0
  58. package/dist/lib/formatters/html.js +479 -0
  59. package/dist/lib/formatters/html.js.map +1 -0
  60. package/dist/lib/formatters/markdown.d.ts +5 -0
  61. package/dist/lib/formatters/markdown.js +568 -0
  62. package/dist/lib/formatters/markdown.js.map +1 -0
  63. package/dist/lib/formatters/pdf.d.ts +12 -0
  64. package/dist/lib/formatters/pdf.js +1121 -0
  65. package/dist/lib/formatters/pdf.js.map +1 -0
  66. package/dist/lib/formatters/terminal.d.ts +6 -0
  67. package/dist/lib/formatters/terminal.js +954 -0
  68. package/dist/lib/formatters/terminal.js.map +1 -0
  69. package/dist/lib/formatters/theme.d.ts +35 -0
  70. package/dist/lib/formatters/theme.js +37 -0
  71. package/dist/lib/formatters/theme.js.map +1 -0
  72. package/dist/lib/merger.d.ts +14 -0
  73. package/dist/lib/merger.js +362 -0
  74. package/dist/lib/merger.js.map +1 -0
  75. package/dist/lib/normalize.d.ts +29 -0
  76. package/dist/lib/normalize.js +59 -0
  77. package/dist/lib/normalize.js.map +1 -0
  78. package/dist/lib/robots.d.ts +12 -0
  79. package/dist/lib/robots.js +110 -0
  80. package/dist/lib/robots.js.map +1 -0
  81. package/dist/lib/run-summary.d.ts +40 -0
  82. package/dist/lib/run-summary.js +64 -0
  83. package/dist/lib/run-summary.js.map +1 -0
  84. package/dist/lib/types.d.ts +329 -0
  85. package/dist/lib/types.js +7 -0
  86. package/dist/lib/types.js.map +1 -0
  87. package/dist/lib/version.d.ts +134 -0
  88. package/dist/lib/version.js +153 -0
  89. package/dist/lib/version.js.map +1 -0
  90. package/dist/mcp-server.d.ts +11 -0
  91. package/dist/mcp-server.js +311 -0
  92. package/dist/mcp-server.js.map +1 -0
  93. package/dist/package.json +106 -0
  94. package/dist/test/_vitest-shim.d.ts +13 -0
  95. package/dist/test/_vitest-shim.js +23 -0
  96. package/dist/test/_vitest-shim.js.map +1 -0
  97. package/dist/test/cli.test.d.ts +1 -0
  98. package/dist/test/cli.test.js +24 -0
  99. package/dist/test/cli.test.js.map +1 -0
  100. package/dist/test/colors.test.d.ts +1 -0
  101. package/dist/test/colors.test.js +64 -0
  102. package/dist/test/colors.test.js.map +1 -0
  103. package/dist/test/compare.test.d.ts +1 -0
  104. package/dist/test/compare.test.js +57 -0
  105. package/dist/test/compare.test.js.map +1 -0
  106. package/dist/test/drift.test.d.ts +1 -0
  107. package/dist/test/drift.test.js +53 -0
  108. package/dist/test/drift.test.js.map +1 -0
  109. package/dist/test/dtcg-formatter.test.d.ts +1 -0
  110. package/dist/test/dtcg-formatter.test.js +48 -0
  111. package/dist/test/dtcg-formatter.test.js.map +1 -0
  112. package/dist/test/dtcg-validate.test.d.ts +1 -0
  113. package/dist/test/dtcg-validate.test.js +2129 -0
  114. package/dist/test/dtcg-validate.test.js.map +1 -0
  115. package/dist/test/exit-codes.test.d.ts +1 -0
  116. package/dist/test/exit-codes.test.js +53 -0
  117. package/dist/test/exit-codes.test.js.map +1 -0
  118. package/dist/test/findings.test.d.ts +1 -0
  119. package/dist/test/findings.test.js +77 -0
  120. package/dist/test/findings.test.js.map +1 -0
  121. package/dist/test/html.test.d.ts +1 -0
  122. package/dist/test/html.test.js +95 -0
  123. package/dist/test/html.test.js.map +1 -0
  124. package/dist/test/markdown.test.d.ts +1 -0
  125. package/dist/test/markdown.test.js +145 -0
  126. package/dist/test/markdown.test.js.map +1 -0
  127. package/dist/test/merger.test.d.ts +1 -0
  128. package/dist/test/merger.test.js +98 -0
  129. package/dist/test/merger.test.js.map +1 -0
  130. package/dist/test/normalize.test.d.ts +1 -0
  131. package/dist/test/normalize.test.js +47 -0
  132. package/dist/test/normalize.test.js.map +1 -0
  133. package/dist/test/run-summary.test.d.ts +1 -0
  134. package/dist/test/run-summary.test.js +45 -0
  135. package/dist/test/run-summary.test.js.map +1 -0
  136. package/dist/test/version.test.d.ts +1 -0
  137. package/dist/test/version.test.js +73 -0
  138. package/dist/test/version.test.js.map +1 -0
  139. package/package.json +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../lib/dtcg/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * CI exit-code contract. A pipeline branches on these to tell apart "design
3
+ * drifted" (review the diff) from "extraction broke" (retry / investigate):
4
+ * 0 success / stable 1 drift detected (--compare)
5
+ * 2 extraction failure 67 navigation/connection timeout (retryable, try --slow)
6
+ *
7
+ * Kept in its own module (not index.ts, which runs the CLI on import) so the
8
+ * classifier is importable and unit-testable without spawning a subprocess.
9
+ * Consumers (dembrandt-next/.github/workflows/drift.yml) depend on these values;
10
+ * changing one is a breaking change to the gate.
11
+ */
12
+ export declare const EXIT: {
13
+ readonly OK: 0;
14
+ readonly DRIFT: 1;
15
+ readonly RUNTIME: 2;
16
+ readonly TIMEOUT: 67;
17
+ };
18
+ /** Stable failure code surfaced to CI alongside the numeric exit. */
19
+ export type ErrorCode = "NAVIGATION_TIMEOUT" | "EXTRACTION_FAILED";
20
+ /**
21
+ * Classify an extraction failure into a stable {code, exit} for CI consumers.
22
+ * Network/DNS/timeout errors map to the retryable TIMEOUT exit; everything else
23
+ * is a generic RUNTIME failure. Reads only `err.message`, so a bare string or a
24
+ * malformed error never throws.
25
+ */
26
+ export declare function classifyError(err: any): {
27
+ code: ErrorCode;
28
+ exit: number;
29
+ };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * CI exit-code contract. A pipeline branches on these to tell apart "design
3
+ * drifted" (review the diff) from "extraction broke" (retry / investigate):
4
+ * 0 success / stable 1 drift detected (--compare)
5
+ * 2 extraction failure 67 navigation/connection timeout (retryable, try --slow)
6
+ *
7
+ * Kept in its own module (not index.ts, which runs the CLI on import) so the
8
+ * classifier is importable and unit-testable without spawning a subprocess.
9
+ * Consumers (dembrandt-next/.github/workflows/drift.yml) depend on these values;
10
+ * changing one is a breaking change to the gate.
11
+ */
12
+ export const EXIT = { OK: 0, DRIFT: 1, RUNTIME: 2, TIMEOUT: 67 };
13
+ /**
14
+ * Classify an extraction failure into a stable {code, exit} for CI consumers.
15
+ * Network/DNS/timeout errors map to the retryable TIMEOUT exit; everything else
16
+ * is a generic RUNTIME failure. Reads only `err.message`, so a bare string or a
17
+ * malformed error never throws.
18
+ */
19
+ export function classifyError(err) {
20
+ const m = String(err?.message ?? "");
21
+ if (/Timeout|net::ERR_|ECONNREFUSED|ETIMEDOUT|ENOTFOUND|ERR_NAME_NOT_RESOLVED/i.test(m)) {
22
+ return { code: "NAVIGATION_TIMEOUT", exit: EXIT.TIMEOUT };
23
+ }
24
+ return { code: "EXTRACTION_FAILED", exit: EXIT.RUNTIME };
25
+ }
26
+ //# sourceMappingURL=exit-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../lib/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAW,CAAC;AAK1E;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAQ;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,2EAA2E,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function extractBreakpoints(page: any): Promise<any>;
2
+ export declare function detectIconSystem(page: any): Promise<any>;
3
+ export declare function detectFrameworks(page: any): Promise<any>;
4
+ export declare function extractGradients(page: any): Promise<any>;
5
+ export declare function extractMotion(page: any): Promise<any>;
@@ -0,0 +1,450 @@
1
+ export async function extractBreakpoints(page) {
2
+ return await page.evaluate(() => {
3
+ const breakpoints = new Set();
4
+ for (const sheet of document.styleSheets) {
5
+ try {
6
+ for (const rule of (sheet.cssRules || [])) {
7
+ if (rule.media) {
8
+ const match = rule.media.mediaText.match(/(\d+)px/g);
9
+ if (match)
10
+ match.forEach((m) => breakpoints.add(parseInt(m)));
11
+ }
12
+ }
13
+ }
14
+ catch (e) { }
15
+ }
16
+ return Array.from(breakpoints)
17
+ .sort((a, b) => a - b)
18
+ .map((px) => ({ px: px + "px" }));
19
+ });
20
+ }
21
+ export async function detectIconSystem(page) {
22
+ return await page.evaluate(() => {
23
+ const systems = [];
24
+ if (document.querySelector('[class*="fa-"]')) {
25
+ systems.push({ name: "Font Awesome", type: "icon-font" });
26
+ }
27
+ if (document.querySelector('[class*="material-icons"]')) {
28
+ systems.push({ name: "Material Icons", type: "icon-font" });
29
+ }
30
+ if (document.querySelector('svg[class*="heroicon"]') || document.querySelector('svg[data-slot="icon"]')) {
31
+ systems.push({ name: "Heroicons", type: "svg" });
32
+ }
33
+ if (document.querySelector('svg[class*="hugeicons"]') || document.querySelector('[class*="hugeicons-"]')) {
34
+ systems.push({ name: "Hugeicons", type: "svg" });
35
+ }
36
+ if (document.querySelector('ion-icon') || document.querySelector('[class*="ionicons"]')) {
37
+ systems.push({ name: "Ionicons", type: "svg" });
38
+ }
39
+ if (document.querySelector('svg[data-feather]') || document.querySelector('i[data-feather]') || document.querySelector('[class*="feather-"]')) {
40
+ systems.push({ name: "Feather Icons", type: "svg" });
41
+ }
42
+ if (document.querySelector('svg[class*="icon"]')) {
43
+ systems.push({ name: "SVG Icons", type: "svg" });
44
+ }
45
+ return systems;
46
+ });
47
+ }
48
+ export async function detectFrameworks(page) {
49
+ return await page.evaluate(() => {
50
+ const frameworks = [];
51
+ const html = document.documentElement.outerHTML;
52
+ const body = document.body;
53
+ function countMatches(selector) {
54
+ try {
55
+ return document.querySelectorAll(selector).length;
56
+ }
57
+ catch {
58
+ return 0;
59
+ }
60
+ }
61
+ function hasResource(pattern) {
62
+ const links = Array.from(document.querySelectorAll('link[href], script[src]'));
63
+ return links.some((el) => pattern.test(el.href || el.src));
64
+ }
65
+ // Tailwind CSS
66
+ const tailwindEvidence = [];
67
+ if (/\b\w+-\[[^\]]+\]/.test(html))
68
+ tailwindEvidence.push('arbitrary values (e.g., top-[117px])');
69
+ if (/(sm|md|lg|xl|2xl|dark|hover|focus|group-hover|peer-):[a-z]/.test(html))
70
+ tailwindEvidence.push('responsive/state modifiers');
71
+ if (hasResource(/tailwindcss|tailwind\.css|cdn\.tailwindcss/))
72
+ tailwindEvidence.push('stylesheet');
73
+ if (tailwindEvidence.length >= 2) {
74
+ frameworks.push({ name: 'Tailwind CSS', confidence: 'high', evidence: tailwindEvidence.join(', ') });
75
+ }
76
+ // Bootstrap
77
+ const bootstrapEvidence = [];
78
+ const hasContainer = countMatches('.container, .container-fluid') > 0;
79
+ const hasRow = countMatches('.row') > 0;
80
+ const hasCol = countMatches('[class*="col-"]') > 0;
81
+ if (hasContainer && hasRow && hasCol)
82
+ bootstrapEvidence.push('grid system (container + row + col)');
83
+ if (/\bbtn-primary\b|\bbtn-secondary\b|\bbtn-success\b/.test(html))
84
+ bootstrapEvidence.push('button variants');
85
+ if (hasResource(/bootstrap\.min\.css|bootstrap\.css|getbootstrap\.com/))
86
+ bootstrapEvidence.push('stylesheet');
87
+ if (bootstrapEvidence.length >= 2) {
88
+ frameworks.push({ name: 'Bootstrap', confidence: 'high', evidence: bootstrapEvidence.join(', ') });
89
+ }
90
+ // Material UI (MUI)
91
+ const muiCount = countMatches('[class*="MuiBox-"], [class*="MuiButton-"], [class*="Mui"]');
92
+ if (muiCount > 3)
93
+ frameworks.push({ name: 'Material UI (MUI)', confidence: 'high', evidence: `${muiCount} MUI components` });
94
+ // Chakra UI
95
+ const chakraCount = countMatches('[class*="chakra-"]');
96
+ if (chakraCount > 3)
97
+ frameworks.push({ name: 'Chakra UI', confidence: 'high', evidence: `${chakraCount} Chakra components` });
98
+ // Ant Design
99
+ const antCount = countMatches('[class^="ant-"], [class*=" ant-"]');
100
+ if (antCount > 3)
101
+ frameworks.push({ name: 'Ant Design', confidence: 'high', evidence: `${antCount} Ant components` });
102
+ // Vuetify
103
+ const vuetifySpecific = countMatches('[class*="v-btn"], [class*="v-card"], [class*="v-app"], [class*="v-toolbar"], [class*="v-navigation"], [class*="v-list"], [class*="v-sheet"]');
104
+ const hasVuetifyTheme = body.classList.contains('theme--light') || body.classList.contains('theme--dark');
105
+ const hasVuetifyApp = countMatches('[class*="v-application"]') > 0;
106
+ if ((vuetifySpecific > 8 && hasVuetifyApp) || (hasVuetifyTheme && vuetifySpecific > 5)) {
107
+ frameworks.push({ name: 'Vuetify', confidence: 'high', evidence: `${vuetifySpecific} Vuetify components` });
108
+ }
109
+ // Shopify Polaris
110
+ const polarisCount = countMatches('[class*="Polaris-"]');
111
+ if (polarisCount > 2)
112
+ frameworks.push({ name: 'Shopify Polaris', confidence: 'high', evidence: `${polarisCount} Polaris components` });
113
+ // Radix UI
114
+ const radixCount = document.querySelectorAll('[data-radix-], [data-state]').length;
115
+ if (radixCount > 5)
116
+ frameworks.push({ name: 'Radix UI', confidence: 'high', evidence: `${radixCount} Radix primitives` });
117
+ // DaisyUI
118
+ if (tailwindEvidence.length >= 2) {
119
+ const daisySpecific = countMatches('.btn-primary.btn, .badge, .drawer, .swap, .mockup-code');
120
+ const hasDaisyTheme = body.hasAttribute('data-theme');
121
+ if (daisySpecific > 3 || hasDaisyTheme) {
122
+ frameworks.push({ name: 'DaisyUI', confidence: 'high', evidence: `Tailwind + ${daisySpecific} DaisyUI components` });
123
+ }
124
+ }
125
+ // Foundation
126
+ const foundationEvidence = [];
127
+ if (countMatches('.grid-x, .grid-y, .cell') > 0 || countMatches('.button.primary, .button.secondary') > 0)
128
+ foundationEvidence.push('grid/button system');
129
+ if (hasResource(/foundation\.min\.css|foundation\.css|zurb\.com\/foundation/))
130
+ foundationEvidence.push('stylesheet');
131
+ if (foundationEvidence.length >= 1 || countMatches('[data-foundation]') > 0) {
132
+ frameworks.push({ name: 'Foundation', confidence: 'high', evidence: foundationEvidence.join(', ') || 'data attributes' });
133
+ }
134
+ // Bulma
135
+ const bulmaEvidence = [];
136
+ if (countMatches('.columns, .column') > 0 && countMatches('.column') > 2)
137
+ bulmaEvidence.push('columns system');
138
+ if (/\bbutton is-primary\b|\bbutton is-link\b/.test(html))
139
+ bulmaEvidence.push('button modifiers');
140
+ if (hasResource(/bulma\.min\.css|bulma\.css/))
141
+ bulmaEvidence.push('stylesheet');
142
+ if (bulmaEvidence.length >= 2)
143
+ frameworks.push({ name: 'Bulma', confidence: 'high', evidence: bulmaEvidence.join(', ') });
144
+ // Semantic UI
145
+ const semanticCount = countMatches('.ui.button, .ui.menu, .ui.card, .ui.grid');
146
+ if (semanticCount > 3 || hasResource(/semantic\.min\.css|semantic-ui/)) {
147
+ frameworks.push({ name: 'Semantic UI', confidence: 'high', evidence: `${semanticCount} .ui components` });
148
+ }
149
+ // UIkit
150
+ const uikitCount = countMatches('[class*="uk-"], [uk-grid], [uk-navbar]');
151
+ if (uikitCount > 3 || hasResource(/uikit\.min\.css|getuikit\.com/)) {
152
+ frameworks.push({ name: 'UIkit', confidence: 'high', evidence: `${uikitCount} uk- components` });
153
+ }
154
+ // shadcn/ui
155
+ const shadcnClasses = /\bcn\(|\bslot-\w+|\bdata-\[state=/.test(html);
156
+ const hasShadcnComponents = countMatches('[data-slot], [data-state]') > 5;
157
+ if (tailwindEvidence.length >= 2 && radixCount > 3 && (shadcnClasses || hasShadcnComponents)) {
158
+ frameworks.push({ name: 'shadcn/ui', confidence: 'medium', evidence: 'Tailwind + Radix + component patterns' });
159
+ }
160
+ // Headless UI
161
+ const headlessCount = document.querySelectorAll('[aria-controls][aria-expanded], [role="dialog"][data-headlessui]').length;
162
+ if (tailwindEvidence.length >= 2 && headlessCount > 2) {
163
+ frameworks.push({ name: 'Headless UI', confidence: 'high', evidence: `${headlessCount} headless components with Tailwind` });
164
+ }
165
+ // PrimeReact/Vue/NG
166
+ const primeCount = countMatches('[class*="p-"], .p-component, .p-button, .p-datatable');
167
+ if (primeCount > 5)
168
+ frameworks.push({ name: 'PrimeReact/Vue/NG', confidence: 'high', evidence: `${primeCount} Prime components` });
169
+ // Mantine
170
+ const mantineCount = countMatches('[class*="mantine-"], [data-mantine]');
171
+ if (mantineCount > 3)
172
+ frameworks.push({ name: 'Mantine', confidence: 'high', evidence: `${mantineCount} Mantine components` });
173
+ // Carbon Design System
174
+ const carbonCount = countMatches('[class*="cds--"], [class*="bx--"]');
175
+ if (carbonCount > 3)
176
+ frameworks.push({ name: 'Carbon Design System', confidence: 'high', evidence: `${carbonCount} Carbon components` });
177
+ // Fluent UI
178
+ const fluentCount = countMatches('[class*="ms-"], .ms-Button, .ms-TextField');
179
+ if (fluentCount > 5)
180
+ frameworks.push({ name: 'Fluent UI', confidence: 'high', evidence: `${fluentCount} Fluent components` });
181
+ // Quasar
182
+ const quasarCount = countMatches('[class*="q-"]');
183
+ if (quasarCount > 5 || body.classList.contains('q-app')) {
184
+ frameworks.push({ name: 'Quasar', confidence: 'high', evidence: `${quasarCount} q- components` });
185
+ }
186
+ // Element Plus/UI
187
+ const elementCount = countMatches('[class*="el-"]');
188
+ if (elementCount > 5)
189
+ frameworks.push({ name: 'Element Plus/UI', confidence: 'high', evidence: `${elementCount} el- components` });
190
+ return frameworks;
191
+ });
192
+ }
193
+ export async function extractGradients(page) {
194
+ return await page.evaluate(() => {
195
+ const seen = new Map();
196
+ const els = document.querySelectorAll('*');
197
+ let checked = 0;
198
+ for (const el of els) {
199
+ if (checked++ > 2000)
200
+ break;
201
+ if (el.style.backgroundImage === 'none')
202
+ continue;
203
+ if (el.offsetWidth === 0 && el.offsetHeight === 0)
204
+ continue;
205
+ const s = getComputedStyle(el);
206
+ const bg = s.backgroundImage;
207
+ if (!bg || bg === 'none')
208
+ continue;
209
+ const gradients = [];
210
+ let depth = 0, start = 0;
211
+ for (let i = 0; i < bg.length; i++) {
212
+ if (bg[i] === '(')
213
+ depth++;
214
+ else if (bg[i] === ')')
215
+ depth--;
216
+ else if (bg[i] === ',' && depth === 0) {
217
+ gradients.push(bg.slice(start, i).trim());
218
+ start = i + 1;
219
+ }
220
+ }
221
+ gradients.push(bg.slice(start).trim());
222
+ for (const grad of gradients) {
223
+ if (!/^(repeating-)?(linear|radial|conic)-gradient/.test(grad))
224
+ continue;
225
+ const base = grad.replace(/^repeating-/, '');
226
+ const repeating = grad.startsWith('repeating-');
227
+ const type = (base.startsWith('linear') ? 'linear' : base.startsWith('radial') ? 'radial' : 'conic') + (repeating ? '-repeating' : '');
228
+ const key = grad.replace(/\s+/g, ' ');
229
+ if (seen.has(key)) {
230
+ seen.get(key).count++;
231
+ continue;
232
+ }
233
+ const stopColors = [];
234
+ const stopRe = /#[0-9a-f]{3,8}|rgba?\([^)]+\)|hsla?\([^)]+\)|oklch\([^)]+\)|oklab\([^)]+\)/gi;
235
+ let m;
236
+ while ((m = stopRe.exec(grad)) !== null)
237
+ stopColors.push(m[0]);
238
+ seen.set(key, { gradient: key, type, stopColors, count: 1 });
239
+ }
240
+ }
241
+ return Array.from(seen.values())
242
+ .sort((a, b) => b.count - a.count)
243
+ .slice(0, 20);
244
+ });
245
+ }
246
+ export async function extractMotion(page) {
247
+ // Phase 1: static pass — collect durations, easings, animations per semantic context
248
+ const staticMotion = await page.evaluate(() => {
249
+ function getContext(el) {
250
+ const tag = el.tagName.toLowerCase();
251
+ const role = el.getAttribute('role') || '';
252
+ const cls = (typeof el.className === 'string' ? el.className : '').toLowerCase();
253
+ const id = (el.id || '').toLowerCase();
254
+ const hint = cls + ' ' + id + ' ' + role;
255
+ if (tag === 'button' || role === 'button' || hint.includes('btn'))
256
+ return 'button';
257
+ if (tag === 'a' || role === 'link')
258
+ return 'link';
259
+ if (tag === 'nav' || role === 'navigation' || hint.includes('nav') || hint.includes('menu'))
260
+ return 'nav';
261
+ if (hint.includes('modal') || hint.includes('dialog') || hint.includes('overlay') || hint.includes('drawer'))
262
+ return 'modal';
263
+ if (hint.includes('card') || hint.includes('tile') || hint.includes('item'))
264
+ return 'card';
265
+ if (hint.includes('hero') || hint.includes('banner') || hint.includes('header'))
266
+ return 'hero';
267
+ if (hint.includes('tooltip') || hint.includes('popover') || hint.includes('dropdown'))
268
+ return 'overlay';
269
+ if (tag === 'input' || tag === 'textarea' || tag === 'select')
270
+ return 'input';
271
+ if (hint.includes('image') || hint.includes('img') || hint.includes('media') || hint.includes('video'))
272
+ return 'media';
273
+ return 'other';
274
+ }
275
+ function parseDurationMs(val) {
276
+ if (!val || val === '0s')
277
+ return 0;
278
+ return val.endsWith('ms') ? parseFloat(val) : parseFloat(val) * 1000;
279
+ }
280
+ function classifyEasing(val) {
281
+ if (!val)
282
+ return null;
283
+ if (val === 'linear')
284
+ return 'linear';
285
+ if (val === 'ease')
286
+ return 'ease';
287
+ if (val === 'ease-in')
288
+ return 'ease-in';
289
+ if (val === 'ease-out')
290
+ return 'ease-out';
291
+ if (val === 'ease-in-out')
292
+ return 'ease-in-out';
293
+ // detect spring-like: high y1/y2 overshoot
294
+ const m = val.match(/cubic-bezier\(([\d.]+),\s*([\d.-]+),\s*([\d.]+),\s*([\d.-]+)\)/);
295
+ if (m) {
296
+ const y1 = parseFloat(m[2]), y2 = parseFloat(m[4]);
297
+ if (y1 < 0 || y1 > 1 || y2 < 0 || y2 > 1)
298
+ return 'spring';
299
+ const x1 = parseFloat(m[1]);
300
+ if (x1 < 0.2)
301
+ return 'ease-out'; // fast start
302
+ if (x1 > 0.6)
303
+ return 'ease-in'; // slow start
304
+ return 'custom';
305
+ }
306
+ return 'custom';
307
+ }
308
+ // per-context motion profiles
309
+ const contexts = {};
310
+ const globalDurations = new Map();
311
+ const globalEasings = new Map();
312
+ const globalAnimations = new Map();
313
+ const els = document.querySelectorAll('*');
314
+ let checked = 0;
315
+ for (const el of els) {
316
+ if (checked++ > 3000)
317
+ break;
318
+ if (el.offsetWidth === 0 && el.offsetHeight === 0)
319
+ continue;
320
+ const s = getComputedStyle(el);
321
+ const rawDurations = (s.transitionDuration || '').split(',').map(v => v.trim()).filter(v => v && v !== '0s');
322
+ const rawEasings = (s.transitionTimingFunction || '').split(/,(?![^(]*\))/).map(v => v.trim()).filter(Boolean);
323
+ const rawProps = (s.transitionProperty || '').split(',').map(v => v.trim());
324
+ const animName = s.animationName;
325
+ if (rawDurations.length === 0 && (!animName || animName === 'none'))
326
+ continue;
327
+ const ctx = getContext(el);
328
+ // global tallies
329
+ rawDurations.forEach(d => {
330
+ const ms = parseDurationMs(d);
331
+ if (ms <= 0)
332
+ return;
333
+ const e = globalDurations.get(d) || { value: d, ms, count: 0 };
334
+ e.count++;
335
+ globalDurations.set(d, e);
336
+ });
337
+ rawEasings.forEach(e => {
338
+ const entry = globalEasings.get(e) || { value: e, type: classifyEasing(e), count: 0 };
339
+ entry.count++;
340
+ globalEasings.set(e, entry);
341
+ });
342
+ // per-context profile
343
+ if (ctx !== 'other' && rawDurations.length > 0) {
344
+ if (!contexts[ctx])
345
+ contexts[ctx] = { durations: new Map(), easings: new Map(), props: new Map(), count: 0 };
346
+ const cx = contexts[ctx];
347
+ cx.count++;
348
+ rawDurations.forEach(d => { const e = cx.durations.get(d) || { value: d, ms: parseDurationMs(d), count: 0 }; e.count++; cx.durations.set(d, e); });
349
+ rawEasings.forEach(e => { const entry = cx.easings.get(e) || { value: e, type: classifyEasing(e), count: 0 }; entry.count++; cx.easings.set(e, entry); });
350
+ rawProps.forEach(p => { if (p && p !== 'all' && p !== 'none') {
351
+ const e = cx.props.get(p) || { value: p, count: 0 };
352
+ e.count++;
353
+ cx.props.set(p, e);
354
+ } });
355
+ }
356
+ // animations
357
+ if (animName && animName !== 'none') {
358
+ for (const name of animName.split(',').map(v => v.trim())) {
359
+ if (name === 'none')
360
+ continue;
361
+ const e = globalAnimations.get(name) || { name, duration: s.animationDuration?.split(',')[0]?.trim(), easing: s.animationTimingFunction?.split(',')[0]?.trim(), count: 0, contexts: new Set() };
362
+ e.count++;
363
+ e.contexts.add(ctx);
364
+ globalAnimations.set(name, e);
365
+ }
366
+ }
367
+ }
368
+ // serialize
369
+ const serializeCtx = (cx) => ({
370
+ count: cx.count,
371
+ durations: Array.from(cx.durations.values()).sort((a, b) => b.count - a.count).slice(0, 3).map((d) => d.value),
372
+ easing: Array.from(cx.easings.values()).sort((a, b) => b.count - a.count)[0]?.value || null,
373
+ easingType: Array.from(cx.easings.values()).sort((a, b) => b.count - a.count)[0]?.type || null,
374
+ props: Array.from(cx.props.values()).sort((a, b) => b.count - a.count).slice(0, 4).map((p) => p.value),
375
+ });
376
+ const ctxOut = {};
377
+ for (const [k, v] of Object.entries(contexts))
378
+ ctxOut[k] = serializeCtx(v);
379
+ return {
380
+ durations: Array.from(globalDurations.values()).sort((a, b) => a.ms - b.ms),
381
+ easings: Array.from(globalEasings.values()).sort((a, b) => b.count - a.count).slice(0, 8),
382
+ animations: Array.from(globalAnimations.values()).sort((a, b) => b.count - a.count).slice(0, 8).map(a => ({ ...a, contexts: Array.from(a.contexts) })),
383
+ contexts: ctxOut,
384
+ };
385
+ });
386
+ // Phase 2: hover interaction deltas on a sample of interactive elements
387
+ const interactiveDeltas = [];
388
+ try {
389
+ const els = await page.$$('button, a, [role="button"]');
390
+ const sampled = els.slice(0, 12);
391
+ for (const el of sampled) {
392
+ try {
393
+ const visible = await el.evaluate(e => {
394
+ const r = e.getBoundingClientRect();
395
+ const s = getComputedStyle(e);
396
+ return r.width > 0 && r.height > 0 && s.display !== 'none' && s.visibility !== 'hidden';
397
+ });
398
+ if (!visible)
399
+ continue;
400
+ const before = await el.evaluate(e => {
401
+ const s = getComputedStyle(e);
402
+ return { transform: s.transform, opacity: s.opacity, bg: s.backgroundColor, color: s.color, tag: e.tagName.toLowerCase(), text: (e.textContent || '').trim().slice(0, 30) };
403
+ });
404
+ await el.hover({ timeout: 800 }).catch(() => { });
405
+ await page.waitForTimeout(120);
406
+ const after = await el.evaluate(e => {
407
+ const s = getComputedStyle(e);
408
+ return { transform: s.transform, opacity: s.opacity, bg: s.backgroundColor, color: s.color };
409
+ }).catch(() => null);
410
+ if (!after)
411
+ continue;
412
+ const delta = {};
413
+ if (after.transform !== before.transform && after.transform !== 'none')
414
+ delta.transform = after.transform;
415
+ if (after.opacity !== before.opacity)
416
+ delta.opacity = { from: before.opacity, to: after.opacity };
417
+ if (after.bg !== before.bg)
418
+ delta.background = { from: before.bg, to: after.bg };
419
+ if (after.color !== before.color)
420
+ delta.color = { from: before.color, to: after.color };
421
+ if (Object.keys(delta).length > 0) {
422
+ // classify pattern
423
+ let pattern = 'color-shift';
424
+ if (delta.transform) {
425
+ const t = delta.transform;
426
+ if (/scale\(([\d.]+)/.test(t)) {
427
+ const s = parseFloat(t.match(/scale\(([\d.]+)/)[1]);
428
+ pattern = s > 1 ? 'scale-up' : 'scale-down';
429
+ }
430
+ else if (/translateY/.test(t))
431
+ pattern = 'slide-y';
432
+ else if (/translateX/.test(t))
433
+ pattern = 'slide-x';
434
+ else
435
+ pattern = 'transform';
436
+ }
437
+ else if (delta.opacity) {
438
+ pattern = parseFloat(delta.opacity.to) > parseFloat(delta.opacity.from) ? 'fade-in' : 'fade-out';
439
+ }
440
+ interactiveDeltas.push({ tag: before.tag, text: before.text, pattern, delta });
441
+ }
442
+ }
443
+ catch { /* stale element */ }
444
+ }
445
+ await page.mouse.move(0, 0).catch(() => { });
446
+ }
447
+ catch { /* skip */ }
448
+ return { ...staticMotion, interactiveDeltas };
449
+ }
450
+ //# sourceMappingURL=breakpoints.js.map