inkbridge 0.1.0-beta.1
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/README.md +201 -0
- package/bin/inkhouse.mjs +171 -0
- package/code.js +11802 -0
- package/manifest.json +30 -0
- package/package.json +45 -0
- package/scanner/blob-placement-regression.ts +132 -0
- package/scanner/class-collector.ts +69 -0
- package/scanner/cli.ts +336 -0
- package/scanner/component-scanner.ts +2876 -0
- package/scanner/css-patch-regression.ts +112 -0
- package/scanner/css-token-reader-regression.ts +92 -0
- package/scanner/css-token-reader.ts +477 -0
- package/scanner/font-style-resolver-regression.ts +32 -0
- package/scanner/index.ts +9 -0
- package/scanner/radial-gradient-regression.ts +53 -0
- package/scanner/style-map.ts +149 -0
- package/scanner/tailwind-parser.ts +644 -0
- package/scanner/transform-math-regression.ts +42 -0
- package/scanner/types.ts +298 -0
- package/src/blob-placement.ts +111 -0
- package/src/change-detection.ts +204 -0
- package/src/class-utils.ts +105 -0
- package/src/clip-path-decorative.ts +194 -0
- package/src/color-resolver.ts +98 -0
- package/src/colors.ts +196 -0
- package/src/component-defs.ts +54 -0
- package/src/component-gen.ts +561 -0
- package/src/component-lookup.ts +82 -0
- package/src/config.ts +115 -0
- package/src/design-system.ts +59 -0
- package/src/dev-server.ts +173 -0
- package/src/figma-globals.d.ts +3 -0
- package/src/font-style-resolver.ts +171 -0
- package/src/github.ts +1465 -0
- package/src/icon-builder.ts +607 -0
- package/src/image-cache.ts +22 -0
- package/src/inline-text.ts +271 -0
- package/src/layout-parser.ts +667 -0
- package/src/layout-utils.ts +155 -0
- package/src/main.ts +687 -0
- package/src/node-ir.ts +595 -0
- package/src/pack-provider.ts +148 -0
- package/src/packs.ts +126 -0
- package/src/radial-gradient.ts +84 -0
- package/src/render-context.ts +138 -0
- package/src/responsive-analyzer.ts +139 -0
- package/src/state-analyzer.ts +143 -0
- package/src/story-builder.ts +1706 -0
- package/src/story-layout.ts +38 -0
- package/src/tailwind.ts +2379 -0
- package/src/text-builder.ts +116 -0
- package/src/text-line.ts +42 -0
- package/src/token-source.ts +43 -0
- package/src/tokens.ts +717 -0
- package/src/transform-math.ts +44 -0
- package/src/ui-builder.ts +1996 -0
- package/src/utility-resolver.ts +125 -0
- package/src/variables.ts +1042 -0
- package/src/width-solver.ts +466 -0
- package/templates/patch-tokens-route.ts +165 -0
- package/templates/scan-components-route.ts +57 -0
- package/ui.html +1222 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type JsxNode, type JsxElement, splitClassName } from './node-ir';
|
|
2
|
+
import { extractGridColumns, extractGridBreakpointWidth } from './width-solver';
|
|
3
|
+
|
|
4
|
+
export function extractGridColumnsFromTree(node: JsxNode | undefined): number | null {
|
|
5
|
+
if (!node || node.type !== 'element') return null;
|
|
6
|
+
const el = node as JsxElement;
|
|
7
|
+
const classes = splitClassName(el.props && el.props.className);
|
|
8
|
+
let maxCols = extractGridColumns(classes);
|
|
9
|
+
for (const child of el.children || []) {
|
|
10
|
+
const childCols = extractGridColumnsFromTree(child);
|
|
11
|
+
if (childCols && (!maxCols || childCols > maxCols)) maxCols = childCols;
|
|
12
|
+
}
|
|
13
|
+
return maxCols;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function extractGridBreakpointWidthFromTree(node: JsxNode | undefined): number | null {
|
|
17
|
+
if (!node || node.type !== 'element') return null;
|
|
18
|
+
const el = node as JsxElement;
|
|
19
|
+
const classes = splitClassName(el.props && el.props.className);
|
|
20
|
+
let best = extractGridBreakpointWidth(classes);
|
|
21
|
+
for (const child of el.children || []) {
|
|
22
|
+
const childBest = extractGridBreakpointWidthFromTree(child);
|
|
23
|
+
if (childBest && (!best || childBest > best)) best = childBest;
|
|
24
|
+
}
|
|
25
|
+
return best;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function defaultGridWidth(cols: number): number {
|
|
29
|
+
if (cols >= 3) return 960;
|
|
30
|
+
if (cols === 2) return 640;
|
|
31
|
+
return 320;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function normalizeLayoutClasses(value: string[] | string | undefined): string[] {
|
|
35
|
+
if (!value) return [];
|
|
36
|
+
if (Array.isArray(value)) return value;
|
|
37
|
+
return splitClassName(value);
|
|
38
|
+
}
|