@cat-factory/integrations 0.134.1 → 0.135.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/dist/modules/documents/FigmaProvider.d.ts +28 -4
- package/dist/modules/documents/FigmaProvider.d.ts.map +1 -1
- package/dist/modules/documents/FigmaProvider.js +192 -34
- package/dist/modules/documents/FigmaProvider.js.map +1 -1
- package/dist/modules/documents/ZeplinProvider.d.ts +5 -0
- package/dist/modules/documents/ZeplinProvider.d.ts.map +1 -1
- package/dist/modules/documents/ZeplinProvider.js +14 -6
- package/dist/modules/documents/ZeplinProvider.js.map +1 -1
- package/dist/modules/documents/design.logic.d.ts +43 -4
- package/dist/modules/documents/design.logic.d.ts.map +1 -1
- package/dist/modules/documents/design.logic.js +0 -0
- package/dist/modules/documents/design.logic.js.map +1 -1
- package/dist/modules/documents/figma.logic.d.ts +143 -5
- package/dist/modules/documents/figma.logic.d.ts.map +1 -1
- package/dist/modules/documents/figma.logic.js +467 -49
- package/dist/modules/documents/figma.logic.js.map +1 -1
- package/dist/modules/documents/zeplin.logic.d.ts +15 -0
- package/dist/modules/documents/zeplin.logic.d.ts.map +1 -1
- package/dist/modules/documents/zeplin.logic.js +27 -0
- package/dist/modules/documents/zeplin.logic.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DocumentSourceDescriptor } from '@cat-factory/kernel';
|
|
2
|
-
import { type DesignBlock, type DesignComponent, type DesignContext, type DesignToken } from './design.logic.js';
|
|
2
|
+
import { type DesignBlock, type DesignComponent, type DesignContext, type DesignToken, type DesignTokenOrigin } from './design.logic.js';
|
|
3
3
|
/** Figma's REST API host. The PAT is sent to this host only — see {@link assertSafeFigmaUrl}. */
|
|
4
4
|
export declare const FIGMA_API_HOST = "api.figma.com";
|
|
5
5
|
/** What the connect UI renders, and which credentials the provider needs. */
|
|
@@ -45,7 +45,33 @@ export declare function splitFigmaExternalId(externalId: string): {
|
|
|
45
45
|
* stored URL matches the kind of link a teammate pastes into a task description.
|
|
46
46
|
*/
|
|
47
47
|
export declare function figmaUrlFor(externalId: string): string;
|
|
48
|
-
/**
|
|
48
|
+
/** A Figma paint (a fill or a stroke). Only a SOLID paint carries a colour we can name. */
|
|
49
|
+
export interface FigmaPaint {
|
|
50
|
+
type?: string;
|
|
51
|
+
visible?: boolean;
|
|
52
|
+
opacity?: number;
|
|
53
|
+
color?: {
|
|
54
|
+
r?: number;
|
|
55
|
+
g?: number;
|
|
56
|
+
b?: number;
|
|
57
|
+
a?: number;
|
|
58
|
+
} | null;
|
|
59
|
+
}
|
|
60
|
+
/** The `style` block Figma puts on a TEXT node: the typography facts we render. */
|
|
61
|
+
export interface FigmaTypeStyle {
|
|
62
|
+
fontFamily?: string;
|
|
63
|
+
fontWeight?: number;
|
|
64
|
+
fontSize?: number;
|
|
65
|
+
lineHeightPx?: number;
|
|
66
|
+
}
|
|
67
|
+
/** A component instance's property assignments (`{ 'Size#1:0': { value, type } }`). */
|
|
68
|
+
export interface FigmaComponentProperties {
|
|
69
|
+
[name: string]: {
|
|
70
|
+
value?: unknown;
|
|
71
|
+
type?: string;
|
|
72
|
+
} | undefined;
|
|
73
|
+
}
|
|
74
|
+
/** The subset of a Figma node we read for the layout/text/component/styling rendering. */
|
|
49
75
|
export interface FigmaNode {
|
|
50
76
|
id?: string;
|
|
51
77
|
name?: string;
|
|
@@ -57,22 +83,105 @@ export interface FigmaNode {
|
|
|
57
83
|
height?: number;
|
|
58
84
|
} | null;
|
|
59
85
|
children?: FigmaNode[];
|
|
86
|
+
fills?: FigmaPaint[];
|
|
87
|
+
strokes?: FigmaPaint[];
|
|
88
|
+
style?: FigmaTypeStyle;
|
|
89
|
+
cornerRadius?: number;
|
|
90
|
+
rectangleCornerRadii?: number[];
|
|
91
|
+
layoutMode?: string;
|
|
92
|
+
itemSpacing?: number;
|
|
93
|
+
paddingTop?: number;
|
|
94
|
+
paddingRight?: number;
|
|
95
|
+
paddingBottom?: number;
|
|
96
|
+
paddingLeft?: number;
|
|
97
|
+
/** Published-style ids by role (`fill`, `text`, `stroke`, `effect`, `grid`). */
|
|
98
|
+
styles?: Record<string, string | undefined>;
|
|
99
|
+
componentProperties?: FigmaComponentProperties;
|
|
60
100
|
}
|
|
61
101
|
/** A `componentId → { name }` map (Figma returns it alongside the node tree). */
|
|
62
102
|
export interface FigmaComponentMap {
|
|
63
103
|
[id: string]: {
|
|
64
104
|
name?: string;
|
|
105
|
+
description?: string;
|
|
106
|
+
componentSetId?: string;
|
|
65
107
|
} | undefined;
|
|
66
108
|
}
|
|
109
|
+
/** A `componentSetId → { name }` map: the identity a variant's own name does not carry. */
|
|
110
|
+
export interface FigmaComponentSetMap {
|
|
111
|
+
[id: string]: {
|
|
112
|
+
name?: string;
|
|
113
|
+
description?: string;
|
|
114
|
+
} | undefined;
|
|
115
|
+
}
|
|
116
|
+
/** The file/nodes response `styles` map: a published style id → its metadata. */
|
|
117
|
+
export interface FigmaStyleMap {
|
|
118
|
+
[id: string]: {
|
|
119
|
+
name?: string;
|
|
120
|
+
styleType?: string;
|
|
121
|
+
description?: string;
|
|
122
|
+
} | undefined;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Levels of descendants rendered below a frame's own children. Exported because the provider
|
|
126
|
+
* derives the API `depth=` it requests from it: the two must not drift, or the tree is cut by
|
|
127
|
+
* the fetch at a depth the renderer never states.
|
|
128
|
+
*/
|
|
129
|
+
export declare const MAX_TREE_DEPTH = 6;
|
|
130
|
+
/** Top-level frames a whole-file import fetches as subtrees. */
|
|
131
|
+
export declare const MAX_FILE_FRAMES = 12;
|
|
132
|
+
/** Figma's 0–1 colour channels → `#rrggbb`, with an alpha qualifier below full opacity. */
|
|
133
|
+
export declare function figmaColorHex(color: {
|
|
134
|
+
r?: number;
|
|
135
|
+
g?: number;
|
|
136
|
+
b?: number;
|
|
137
|
+
a?: number;
|
|
138
|
+
} | null | undefined, paintOpacity?: number): string | null;
|
|
139
|
+
/**
|
|
140
|
+
* The styling clause appended to a node's layout line. Everything here is a fact the agent
|
|
141
|
+
* would otherwise invent: the colour, the type ramp, the radius, and the auto-layout that
|
|
142
|
+
* decides whether the implementation is a flex row or a stack.
|
|
143
|
+
*/
|
|
144
|
+
export declare function figmaStylingFacts(node: FigmaNode): string[];
|
|
145
|
+
/** The blocks a set of frames renders to, plus the caps that cut them. */
|
|
146
|
+
export interface FigmaBlocksResult {
|
|
147
|
+
blocks: DesignBlock[];
|
|
148
|
+
/** Coverage notes for the caps that actually bit; empty when nothing was dropped. */
|
|
149
|
+
notes: string[];
|
|
150
|
+
}
|
|
67
151
|
/**
|
|
68
152
|
* Map the fetched Figma frames into the source-neutral {@link DesignBlock}s: one block
|
|
69
153
|
* per frame, with a `Layout` bullet tree and the frame's `Text content`. The
|
|
70
154
|
* design-system components are collected separately ({@link figmaComponents}) into the
|
|
71
155
|
* shared global `### Components` section rather than per-frame.
|
|
72
156
|
*/
|
|
73
|
-
export declare function figmaBlocks(roots: FigmaNode[]):
|
|
74
|
-
/**
|
|
75
|
-
|
|
157
|
+
export declare function figmaBlocks(roots: FigmaNode[]): FigmaBlocksResult;
|
|
158
|
+
/**
|
|
159
|
+
* The top-level frames of a whole file, in document order: the page children a
|
|
160
|
+
* {@link figmaBlocks} block is rendered from. The whole-file file read is shallow (it
|
|
161
|
+
* returns these with no grandchildren), so the caller fetches their subtrees separately.
|
|
162
|
+
*/
|
|
163
|
+
export declare function figmaTopLevelFrames(document: FigmaNode | undefined): FigmaNode[];
|
|
164
|
+
/**
|
|
165
|
+
* How many importable frames each page contributes, in the same document order
|
|
166
|
+
* {@link figmaTopLevelFrames} flattens. The frame cap counts frames, so on its own it cannot
|
|
167
|
+
* say whether it stopped mid-page or dropped a whole page of the design: this is what lets the
|
|
168
|
+
* cap note name the pages, which is the difference between "some frames are missing" and "you
|
|
169
|
+
* imported none of page 2".
|
|
170
|
+
*/
|
|
171
|
+
export declare function figmaPageSummary(document: FigmaNode | undefined): {
|
|
172
|
+
name: string;
|
|
173
|
+
frames: number;
|
|
174
|
+
}[];
|
|
175
|
+
/**
|
|
176
|
+
* Collect the distinct design-system components instantiated across the frames, each with
|
|
177
|
+
* the variants and properties the design actually uses. That signal is what lets an agent
|
|
178
|
+
* match "reuse the existing component" against a repo component rather than a bare name.
|
|
179
|
+
*
|
|
180
|
+
* Ordered by instance count (ties by name, so the result is deterministic) because that order
|
|
181
|
+
* is what the component cap slices: the components the design leans on survive it. The
|
|
182
|
+
* renderer sorts alphabetically for display, so the order here is a RANKING, not a layout.
|
|
183
|
+
*/
|
|
184
|
+
export declare function figmaComponents(roots: FigmaNode[], components?: FigmaComponentMap, componentSets?: FigmaComponentSetMap): DesignComponent[];
|
|
76
185
|
interface FigmaVariable {
|
|
77
186
|
name?: string;
|
|
78
187
|
resolvedType?: string;
|
|
@@ -97,6 +206,27 @@ export interface FigmaVariablesMeta {
|
|
|
97
206
|
* shared renderer drops the `### Design tokens` section entirely.
|
|
98
207
|
*/
|
|
99
208
|
export declare function figmaTokens(meta: FigmaVariablesMeta | undefined | null): DesignToken[];
|
|
209
|
+
/**
|
|
210
|
+
* Derive tokens from the file's PUBLISHED STYLES, the token source every Figma plan
|
|
211
|
+
* serves: the `styles` map names each published style and the nodes referencing one carry
|
|
212
|
+
* the concrete value, so the join produces `name = value` without the Enterprise-gated
|
|
213
|
+
* variables API. Deliberately NOT merged with {@link figmaTokens}: the two are different
|
|
214
|
+
* sources with different coverage, and a merged section could not say which one it came
|
|
215
|
+
* from.
|
|
216
|
+
*/
|
|
217
|
+
export declare function figmaStyleTokens(roots: FigmaNode[], styles?: FigmaStyleMap): DesignToken[];
|
|
218
|
+
/** Whether the Enterprise-gated variables read succeeded, was plan-gated, or failed. */
|
|
219
|
+
export type FigmaVariablesStatus = 'ok' | 'gated' | 'failed';
|
|
220
|
+
/**
|
|
221
|
+
* State which token path produced the section. A 403 from the variables API is a PLAN
|
|
222
|
+
* GATE, not an error, and neither of those reads the same as a design that simply defines
|
|
223
|
+
* no tokens, so the three cases must not collapse into one silent omission.
|
|
224
|
+
*/
|
|
225
|
+
export declare function figmaTokenOrigin(input: {
|
|
226
|
+
status: FigmaVariablesStatus;
|
|
227
|
+
variableTokens: number;
|
|
228
|
+
styleTokens: number;
|
|
229
|
+
}): DesignTokenOrigin | undefined;
|
|
100
230
|
export interface FigmaContextInput {
|
|
101
231
|
/** The composite external id (`<fileKey>` or `<fileKey>:<nodeId>`). */
|
|
102
232
|
externalId: string;
|
|
@@ -108,10 +238,18 @@ export interface FigmaContextInput {
|
|
|
108
238
|
roots: FigmaNode[];
|
|
109
239
|
/** The `componentId → { name }` map returned alongside the nodes. */
|
|
110
240
|
components: FigmaComponentMap;
|
|
241
|
+
/** The `componentSetId → { name }` map: a variant's real identity. */
|
|
242
|
+
componentSets?: FigmaComponentSetMap;
|
|
243
|
+
/** The file's published styles, the plan-independent token source. */
|
|
244
|
+
styles?: FigmaStyleMap;
|
|
111
245
|
/** Local-variables payload, or null when the plan doesn't expose it. */
|
|
112
246
|
variablesMeta?: FigmaVariablesMeta | null;
|
|
247
|
+
/** Whether the variables read succeeded, was plan-gated, or failed. */
|
|
248
|
+
variablesStatus?: FigmaVariablesStatus;
|
|
113
249
|
/** Best-effort short-lived rendered-preview URL, or null. */
|
|
114
250
|
previewUrl?: string | null;
|
|
251
|
+
/** Coverage caveats the fetch itself produced (dropped frames, a failed subtree read). */
|
|
252
|
+
fetchNotes?: string[];
|
|
115
253
|
}
|
|
116
254
|
/** Assemble the fetched Figma pieces into the shared {@link DesignContext}. */
|
|
117
255
|
export declare function buildFigmaDesignContext(input: FigmaContextInput): DesignContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figma.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/figma.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"figma.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/figma.logic.ts"],"names":[],"mappings":"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"}
|