@seed-design/figma 0.0.25 → 0.0.28
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/lib/codegen/index.cjs +1694 -3
- package/lib/codegen/index.d.ts +16 -13
- package/lib/codegen/index.js +1694 -3
- package/lib/codegen/targets/react/index.cjs +1654 -70
- package/lib/codegen/targets/react/index.d.ts +11 -9
- package/lib/codegen/targets/react/index.js +1654 -70
- package/lib/index.cjs +1682 -0
- package/lib/index.d.ts +19 -2
- package/lib/index.js +1681 -1
- package/package.json +3 -3
- package/src/codegen/core/codegen.ts +9 -1
- package/src/codegen/targets/figma/instance.ts +21 -1
- package/src/codegen/targets/figma/pipeline.ts +4 -1
- package/src/codegen/targets/react/props.ts +13 -13
- package/src/entities/component.interface.ts +7 -0
- package/src/entities/component.repository.ts +16 -0
- package/src/entities/index.ts +5 -0
package/lib/codegen/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as FigmaRestSpec from '@figma/rest-api-spec';
|
|
2
2
|
import { ComponentPropertyType, InstanceSwapPreferredValue, LocalVariable, VariableAlias as VariableAlias$1, VariableScope, RGBA } from '@figma/rest-api-spec';
|
|
3
|
-
import * as ________ from '../index.js';
|
|
4
3
|
import * as index_d_ts from './targets/react/index.js';
|
|
5
4
|
export { index_d_ts as react };
|
|
6
5
|
|
|
@@ -110,7 +109,7 @@ interface CodeGeneratorDeps {
|
|
|
110
109
|
booleanOperationTransformer: ElementTransformer<NormalizedBooleanOperationNode>;
|
|
111
110
|
shouldInferAutoLayout: boolean;
|
|
112
111
|
}
|
|
113
|
-
|
|
112
|
+
interface CodeGenerator {
|
|
114
113
|
generateJsxTree: (node: NormalizedSceneNode) => ElementNode | undefined;
|
|
115
114
|
generateCode: (node: NormalizedSceneNode, options: {
|
|
116
115
|
shouldPrintSource: boolean;
|
|
@@ -118,7 +117,8 @@ declare function createCodeGenerator({ frameTransformer, textTransformer, rectan
|
|
|
118
117
|
imports: string;
|
|
119
118
|
jsx: string;
|
|
120
119
|
} | undefined;
|
|
121
|
-
}
|
|
120
|
+
}
|
|
121
|
+
declare function createCodeGenerator({ frameTransformer, textTransformer, rectangleTransformer, instanceTransformer, vectorTransformer, booleanOperationTransformer, shouldInferAutoLayout, }: CodeGeneratorDeps): CodeGenerator;
|
|
122
122
|
|
|
123
123
|
interface ComponentHandler<T extends NormalizedInstanceNode["componentProperties"] = NormalizedInstanceNode["componentProperties"]> {
|
|
124
124
|
key: string;
|
|
@@ -149,6 +149,12 @@ type InferComponentDefinition<T extends Record<string, ComponentPropertyDefiniti
|
|
|
149
149
|
} : {});
|
|
150
150
|
};
|
|
151
151
|
|
|
152
|
+
interface ComponentMetadata {
|
|
153
|
+
name: string;
|
|
154
|
+
key: string;
|
|
155
|
+
componentPropertyDefinitions: Record<string, ComponentPropertyDefinition>;
|
|
156
|
+
}
|
|
157
|
+
|
|
152
158
|
type Variable = LocalVariable;
|
|
153
159
|
type VariableValue = Variable["valuesByMode"][string];
|
|
154
160
|
type VariableValueResolved = Exclude<VariableValue, VariableAlias$1>;
|
|
@@ -163,6 +169,10 @@ interface VariableService {
|
|
|
163
169
|
infer: (value: VariableValueResolved, scope: VariableScope) => Variable | undefined;
|
|
164
170
|
}
|
|
165
171
|
|
|
172
|
+
interface ComponentRepository {
|
|
173
|
+
getOne(key: string): ComponentMetadata | undefined;
|
|
174
|
+
}
|
|
175
|
+
|
|
166
176
|
type PropsConverter<T extends Record<string, any> = Record<string, any>, R extends Record<string, any> = Record<string, any>> = (node: T) => R;
|
|
167
177
|
declare function definePropsConverter<T extends Record<string, any>, R extends Record<string, any>>(converter: PropsConverter<T, R>): PropsConverter<T, R>;
|
|
168
178
|
type Handlers<TTrait extends Record<string, VariableValueResolved>, TProps extends Record<string, any>, HandlerKeys extends keyof TProps = keyof TProps> = {
|
|
@@ -1685,15 +1695,7 @@ interface CreatePipelineConfig {
|
|
|
1685
1695
|
shouldInferAutoLayout?: boolean;
|
|
1686
1696
|
shouldInferVariableName?: boolean;
|
|
1687
1697
|
}
|
|
1688
|
-
declare function createPipeline(options?: CreatePipelineConfig):
|
|
1689
|
-
generateJsxTree: (node: ________.NormalizedSceneNode) => ElementNode | undefined;
|
|
1690
|
-
generateCode: (node: ________.NormalizedSceneNode, options: {
|
|
1691
|
-
shouldPrintSource: boolean;
|
|
1692
|
-
}) => {
|
|
1693
|
-
imports: string;
|
|
1694
|
-
jsx: string;
|
|
1695
|
-
} | undefined;
|
|
1696
|
-
};
|
|
1698
|
+
declare function createPipeline(options?: CreatePipelineConfig): CodeGenerator;
|
|
1697
1699
|
|
|
1698
1700
|
type FigmaValueResolver = ValueResolver<string, number, number, number>;
|
|
1699
1701
|
|
|
@@ -1775,8 +1777,9 @@ declare function createFrameTransformer({ propsConverters, }: FrameTransformerDe
|
|
|
1775
1777
|
|
|
1776
1778
|
interface InstanceTransformerDeps {
|
|
1777
1779
|
frameTransformer: ElementTransformer<NormalizedInstanceNode>;
|
|
1780
|
+
componentRepository?: ComponentRepository;
|
|
1778
1781
|
}
|
|
1779
|
-
declare function createInstanceTransformer({ frameTransformer, }: InstanceTransformerDeps): ElementTransformer<NormalizedInstanceNode>;
|
|
1782
|
+
declare function createInstanceTransformer({ frameTransformer, componentRepository, }: InstanceTransformerDeps): ElementTransformer<NormalizedInstanceNode>;
|
|
1780
1783
|
|
|
1781
1784
|
interface RectangleTransformerDeps {
|
|
1782
1785
|
propsConverters: PropsConverters;
|