@seed-design/figma 0.0.5 → 0.0.15

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 (195) hide show
  1. package/lib/index.cjs +5548 -4901
  2. package/lib/index.d.ts +489 -189
  3. package/lib/index.js +5535 -4888
  4. package/package.json +3 -2
  5. package/src/codegen/core/codegen.ts +65 -0
  6. package/src/codegen/core/component.ts +15 -27
  7. package/src/codegen/core/component.types.ts +29 -0
  8. package/src/codegen/core/element.ts +13 -0
  9. package/src/codegen/core/index.ts +13 -8
  10. package/src/codegen/core/infer-layout.test.ts +285 -0
  11. package/src/codegen/core/infer-layout.ts +416 -0
  12. package/src/codegen/core/jsx.ts +12 -0
  13. package/src/codegen/core/props.ts +81 -0
  14. package/src/codegen/core/value.ts +289 -0
  15. package/src/codegen/index.ts +39 -6
  16. package/src/codegen/targets/figma/context.ts +139 -0
  17. package/src/codegen/targets/figma/frame.ts +37 -0
  18. package/src/codegen/targets/figma/index.ts +6 -0
  19. package/src/codegen/targets/figma/instance.ts +16 -0
  20. package/src/codegen/targets/figma/props.ts +244 -0
  21. package/src/codegen/targets/figma/shape.ts +62 -0
  22. package/src/codegen/targets/figma/text.ts +33 -0
  23. package/src/codegen/targets/index.ts +2 -0
  24. package/src/codegen/{domain/seed-component → targets/react/component}/deps.interface.ts +2 -2
  25. package/src/codegen/{domain/seed-component → targets/react/component}/index.ts +36 -34
  26. package/src/codegen/{domain/seed-component → targets/react/component}/properties.type.ts +2 -2
  27. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/action-button.ts +4 -5
  28. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/action-chip.ts +3 -4
  29. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/action-sheet.ts +4 -5
  30. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/app-bar.ts +5 -6
  31. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/avatar-stack.ts +4 -5
  32. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/avatar.ts +4 -5
  33. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/badge.ts +4 -5
  34. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/callout.ts +4 -5
  35. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/checkbox.ts +4 -5
  36. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/chip-tabs.ts +4 -5
  37. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/control-chip.ts +4 -5
  38. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/error-state.ts +4 -5
  39. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/extended-action-sheet.ts +4 -5
  40. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/extended-fab.ts +4 -5
  41. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/fab.ts +2 -2
  42. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/help-bubble.ts +2 -2
  43. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/identity-placeholder.ts +2 -2
  44. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/inline-banner.ts +5 -6
  45. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/manner-temp-badge.ts +3 -4
  46. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/multiline-text-field.ts +4 -5
  47. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/progress-circle.ts +3 -4
  48. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/reaction-button.ts +4 -5
  49. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/segmented-control.ts +4 -5
  50. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/select-box.ts +4 -5
  51. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/skeleton.ts +3 -4
  52. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/snackbar.ts +3 -4
  53. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/switch.ts +4 -5
  54. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/tabs.ts +5 -6
  55. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/text-button.ts +6 -7
  56. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/text-field.ts +4 -5
  57. package/src/codegen/{domain/seed-component → targets/react/component}/transformers/toggle-button.ts +4 -5
  58. package/src/codegen/targets/react/context.ts +170 -0
  59. package/src/codegen/targets/react/frame.ts +75 -0
  60. package/src/codegen/targets/react/index.ts +7 -0
  61. package/src/codegen/{domain/instance.service.ts → targets/react/instance.ts} +20 -33
  62. package/src/codegen/targets/react/props.ts +361 -0
  63. package/src/codegen/targets/react/shape.ts +36 -0
  64. package/src/codegen/targets/react/text.ts +33 -0
  65. package/src/{codegen → entities}/data/icons.ts +1 -1
  66. package/src/{codegen → entities}/data/styles.ts +1 -1
  67. package/src/{codegen → entities}/data/variable-collections.ts +1 -1
  68. package/src/{codegen → entities}/data/variables.ts +1 -1
  69. package/src/entities/index.ts +41 -0
  70. package/src/{codegen/domain → entities}/style.repository.ts +6 -2
  71. package/src/{codegen/domain → entities}/style.service.ts +1 -1
  72. package/src/{codegen/domain → entities}/variable.repository.ts +17 -4
  73. package/src/{codegen/domain → entities}/variable.service.ts +47 -9
  74. package/src/index.ts +1 -0
  75. package/src/normalizer/from-plugin.ts +3 -0
  76. package/src/normalizer/types.ts +28 -24
  77. package/src/utils/common.ts +4 -0
  78. package/src/utils/css.ts +10 -4
  79. package/src/utils/figma-node.ts +42 -2
  80. package/src/codegen/context.ts +0 -148
  81. package/src/codegen/core/transformer.ts +0 -40
  82. package/src/codegen/domain/codegen.service.ts +0 -69
  83. package/src/codegen/domain/figma-component.service.ts +0 -21
  84. package/src/codegen/domain/frame.service.ts +0 -108
  85. package/src/codegen/domain/index.ts +0 -22
  86. package/src/codegen/domain/props/container-layout-props.service.ts +0 -248
  87. package/src/codegen/domain/props/fill-props.service.ts +0 -75
  88. package/src/codegen/domain/props/radius-props.service.ts +0 -105
  89. package/src/codegen/domain/props/self-layout-props.service.ts +0 -127
  90. package/src/codegen/domain/props/stroke-props.service.ts +0 -45
  91. package/src/codegen/domain/props/type-style-props.service.ts +0 -31
  92. package/src/codegen/domain/rectangle.service.ts +0 -31
  93. package/src/codegen/domain/text.service.ts +0 -62
  94. /package/src/codegen/{domain/seed-component → targets/react/component}/size.ts +0 -0
  95. /package/src/{codegen → entities}/data/__generated__/component-sets/action-button.d.ts +0 -0
  96. /package/src/{codegen → entities}/data/__generated__/component-sets/action-button.mjs +0 -0
  97. /package/src/{codegen → entities}/data/__generated__/component-sets/action-chip.d.ts +0 -0
  98. /package/src/{codegen → entities}/data/__generated__/component-sets/action-chip.mjs +0 -0
  99. /package/src/{codegen → entities}/data/__generated__/component-sets/action-sheet.d.ts +0 -0
  100. /package/src/{codegen → entities}/data/__generated__/component-sets/action-sheet.mjs +0 -0
  101. /package/src/{codegen → entities}/data/__generated__/component-sets/avatar-stack.d.ts +0 -0
  102. /package/src/{codegen → entities}/data/__generated__/component-sets/avatar-stack.mjs +0 -0
  103. /package/src/{codegen → entities}/data/__generated__/component-sets/avatar.d.ts +0 -0
  104. /package/src/{codegen → entities}/data/__generated__/component-sets/avatar.mjs +0 -0
  105. /package/src/{codegen → entities}/data/__generated__/component-sets/badge.d.ts +0 -0
  106. /package/src/{codegen → entities}/data/__generated__/component-sets/badge.mjs +0 -0
  107. /package/src/{codegen → entities}/data/__generated__/component-sets/bottom-navigation-global.d.ts +0 -0
  108. /package/src/{codegen → entities}/data/__generated__/component-sets/bottom-navigation-global.mjs +0 -0
  109. /package/src/{codegen → entities}/data/__generated__/component-sets/bottom-navigation-kr.d.ts +0 -0
  110. /package/src/{codegen → entities}/data/__generated__/component-sets/bottom-navigation-kr.mjs +0 -0
  111. /package/src/{codegen → entities}/data/__generated__/component-sets/bottom-sheet.d.ts +0 -0
  112. /package/src/{codegen → entities}/data/__generated__/component-sets/bottom-sheet.mjs +0 -0
  113. /package/src/{codegen → entities}/data/__generated__/component-sets/callout.d.ts +0 -0
  114. /package/src/{codegen → entities}/data/__generated__/component-sets/callout.mjs +0 -0
  115. /package/src/{codegen → entities}/data/__generated__/component-sets/checkbox.d.ts +0 -0
  116. /package/src/{codegen → entities}/data/__generated__/component-sets/checkbox.mjs +0 -0
  117. /package/src/{codegen → entities}/data/__generated__/component-sets/chip-tablist.d.ts +0 -0
  118. /package/src/{codegen → entities}/data/__generated__/component-sets/chip-tablist.mjs +0 -0
  119. /package/src/{codegen → entities}/data/__generated__/component-sets/control-chip.d.ts +0 -0
  120. /package/src/{codegen → entities}/data/__generated__/component-sets/control-chip.mjs +0 -0
  121. /package/src/{codegen → entities}/data/__generated__/component-sets/divider.d.ts +0 -0
  122. /package/src/{codegen → entities}/data/__generated__/component-sets/divider.mjs +0 -0
  123. /package/src/{codegen → entities}/data/__generated__/component-sets/error-state.d.ts +0 -0
  124. /package/src/{codegen → entities}/data/__generated__/component-sets/error-state.mjs +0 -0
  125. /package/src/{codegen → entities}/data/__generated__/component-sets/extended-action-sheet.d.ts +0 -0
  126. /package/src/{codegen → entities}/data/__generated__/component-sets/extended-action-sheet.mjs +0 -0
  127. /package/src/{codegen → entities}/data/__generated__/component-sets/extended-floating-action-button.d.ts +0 -0
  128. /package/src/{codegen → entities}/data/__generated__/component-sets/extended-floating-action-button.mjs +0 -0
  129. /package/src/{codegen → entities}/data/__generated__/component-sets/floating-action-button.d.ts +0 -0
  130. /package/src/{codegen → entities}/data/__generated__/component-sets/floating-action-button.mjs +0 -0
  131. /package/src/{codegen → entities}/data/__generated__/component-sets/help-bubble.d.ts +0 -0
  132. /package/src/{codegen → entities}/data/__generated__/component-sets/help-bubble.mjs +0 -0
  133. /package/src/{codegen → entities}/data/__generated__/component-sets/identity-placeholder.d.ts +0 -0
  134. /package/src/{codegen → entities}/data/__generated__/component-sets/identity-placeholder.mjs +0 -0
  135. /package/src/{codegen → entities}/data/__generated__/component-sets/index.d.ts +0 -0
  136. /package/src/{codegen → entities}/data/__generated__/component-sets/index.mjs +0 -0
  137. /package/src/{codegen → entities}/data/__generated__/component-sets/inline-banner.d.ts +0 -0
  138. /package/src/{codegen → entities}/data/__generated__/component-sets/inline-banner.mjs +0 -0
  139. /package/src/{codegen → entities}/data/__generated__/component-sets/main-tab-navigation-global.d.ts +0 -0
  140. /package/src/{codegen → entities}/data/__generated__/component-sets/main-tab-navigation-global.mjs +0 -0
  141. /package/src/{codegen → entities}/data/__generated__/component-sets/main-tab-navigation-kr.d.ts +0 -0
  142. /package/src/{codegen → entities}/data/__generated__/component-sets/main-tab-navigation-kr.mjs +0 -0
  143. /package/src/{codegen → entities}/data/__generated__/component-sets/manner-temp-badge.d.ts +0 -0
  144. /package/src/{codegen → entities}/data/__generated__/component-sets/manner-temp-badge.mjs +0 -0
  145. /package/src/{codegen → entities}/data/__generated__/component-sets/manner-temp-bar.d.ts +0 -0
  146. /package/src/{codegen → entities}/data/__generated__/component-sets/manner-temp-bar.mjs +0 -0
  147. /package/src/{codegen → entities}/data/__generated__/component-sets/manner-temp.d.ts +0 -0
  148. /package/src/{codegen → entities}/data/__generated__/component-sets/manner-temp.mjs +0 -0
  149. /package/src/{codegen → entities}/data/__generated__/component-sets/multiline-text-field.d.ts +0 -0
  150. /package/src/{codegen → entities}/data/__generated__/component-sets/multiline-text-field.mjs +0 -0
  151. /package/src/{codegen → entities}/data/__generated__/component-sets/progress-circle.d.ts +0 -0
  152. /package/src/{codegen → entities}/data/__generated__/component-sets/progress-circle.mjs +0 -0
  153. /package/src/{codegen → entities}/data/__generated__/component-sets/radio.d.ts +0 -0
  154. /package/src/{codegen → entities}/data/__generated__/component-sets/radio.mjs +0 -0
  155. /package/src/{codegen → entities}/data/__generated__/component-sets/range-slider.d.ts +0 -0
  156. /package/src/{codegen → entities}/data/__generated__/component-sets/range-slider.mjs +0 -0
  157. /package/src/{codegen → entities}/data/__generated__/component-sets/reaction-button.d.ts +0 -0
  158. /package/src/{codegen → entities}/data/__generated__/component-sets/reaction-button.mjs +0 -0
  159. /package/src/{codegen → entities}/data/__generated__/component-sets/segmented-control.d.ts +0 -0
  160. /package/src/{codegen → entities}/data/__generated__/component-sets/segmented-control.mjs +0 -0
  161. /package/src/{codegen → entities}/data/__generated__/component-sets/select-box.d.ts +0 -0
  162. /package/src/{codegen → entities}/data/__generated__/component-sets/select-box.mjs +0 -0
  163. /package/src/{codegen → entities}/data/__generated__/component-sets/skeleton.d.ts +0 -0
  164. /package/src/{codegen → entities}/data/__generated__/component-sets/skeleton.mjs +0 -0
  165. /package/src/{codegen → entities}/data/__generated__/component-sets/slider.d.ts +0 -0
  166. /package/src/{codegen → entities}/data/__generated__/component-sets/slider.mjs +0 -0
  167. /package/src/{codegen → entities}/data/__generated__/component-sets/snackbar.d.ts +0 -0
  168. /package/src/{codegen → entities}/data/__generated__/component-sets/snackbar.mjs +0 -0
  169. /package/src/{codegen → entities}/data/__generated__/component-sets/standard-navigation.d.ts +0 -0
  170. /package/src/{codegen → entities}/data/__generated__/component-sets/standard-navigation.mjs +0 -0
  171. /package/src/{codegen → entities}/data/__generated__/component-sets/switch.d.ts +0 -0
  172. /package/src/{codegen → entities}/data/__generated__/component-sets/switch.mjs +0 -0
  173. /package/src/{codegen → entities}/data/__generated__/component-sets/tablist.d.ts +0 -0
  174. /package/src/{codegen → entities}/data/__generated__/component-sets/tablist.mjs +0 -0
  175. /package/src/{codegen → entities}/data/__generated__/component-sets/template-bottom-fixed-bar.d.ts +0 -0
  176. /package/src/{codegen → entities}/data/__generated__/component-sets/template-bottom-fixed-bar.mjs +0 -0
  177. /package/src/{codegen → entities}/data/__generated__/component-sets/template-button-group.d.ts +0 -0
  178. /package/src/{codegen → entities}/data/__generated__/component-sets/template-button-group.mjs +0 -0
  179. /package/src/{codegen → entities}/data/__generated__/component-sets/template-chip-group.d.ts +0 -0
  180. /package/src/{codegen → entities}/data/__generated__/component-sets/template-chip-group.mjs +0 -0
  181. /package/src/{codegen → entities}/data/__generated__/component-sets/template-select-box-group.d.ts +0 -0
  182. /package/src/{codegen → entities}/data/__generated__/component-sets/template-select-box-group.mjs +0 -0
  183. /package/src/{codegen → entities}/data/__generated__/component-sets/template-top-navigation.d.ts +0 -0
  184. /package/src/{codegen → entities}/data/__generated__/component-sets/template-top-navigation.mjs +0 -0
  185. /package/src/{codegen → entities}/data/__generated__/component-sets/text-button.d.ts +0 -0
  186. /package/src/{codegen → entities}/data/__generated__/component-sets/text-button.mjs +0 -0
  187. /package/src/{codegen → entities}/data/__generated__/component-sets/text-field.d.ts +0 -0
  188. /package/src/{codegen → entities}/data/__generated__/component-sets/text-field.mjs +0 -0
  189. /package/src/{codegen → entities}/data/__generated__/component-sets/toggle-button.d.ts +0 -0
  190. /package/src/{codegen → entities}/data/__generated__/component-sets/toggle-button.mjs +0 -0
  191. /package/src/{codegen/domain → entities}/icon.interface.ts +0 -0
  192. /package/src/{codegen/domain → entities}/icon.repository.ts +0 -0
  193. /package/src/{codegen/domain → entities}/icon.service.ts +0 -0
  194. /package/src/{codegen/domain → entities}/style.interface.ts +0 -0
  195. /package/src/{codegen/domain → entities}/variable.interface.ts +0 -0
@@ -0,0 +1,244 @@
1
+ import {
2
+ createPropsTransformer,
3
+ definePropsTransformer,
4
+ type PropsTransformer,
5
+ type ValueTransformer,
6
+ } from "@/codegen/core";
7
+ import type { StyleService } from "@/entities";
8
+ import type {
9
+ NormalizedCornerTrait,
10
+ NormalizedHasChildrenTrait,
11
+ NormalizedHasFramePropertiesTrait,
12
+ NormalizedHasGeometryTrait,
13
+ NormalizedHasLayoutTrait,
14
+ NormalizedIsLayerTrait,
15
+ NormalizedTypePropertiesTrait,
16
+ } from "@/normalizer";
17
+
18
+ export interface PropsTransformers {
19
+ containerLayout: PropsTransformer<ContainerLayoutTrait, ContainerLayoutProps>;
20
+ selfLayout: PropsTransformer<SelfLayoutTrait, SelfLayoutProps>;
21
+ radius: PropsTransformer<RadiusTrait, RadiusProps>;
22
+ frameFill: PropsTransformer<FillTrait, FillProps>;
23
+ shapeFill: PropsTransformer<FillTrait, FillProps>;
24
+ textFill: PropsTransformer<FillTrait, FillProps>;
25
+ stroke: PropsTransformer<StrokeTrait, StrokeProps>;
26
+ typeStyle: PropsTransformer<TypeStyleTrait, TypeStyleProps>;
27
+ }
28
+
29
+ export type ContainerLayoutTrait = NormalizedHasFramePropertiesTrait &
30
+ NormalizedHasChildrenTrait &
31
+ NormalizedHasLayoutTrait &
32
+ NormalizedIsLayerTrait;
33
+
34
+ export type SelfLayoutTrait = NormalizedIsLayerTrait & NormalizedHasLayoutTrait;
35
+
36
+ export type RadiusTrait = NormalizedCornerTrait & NormalizedIsLayerTrait;
37
+
38
+ export type FillTrait = NormalizedIsLayerTrait & NormalizedHasGeometryTrait;
39
+
40
+ export type StrokeTrait = NormalizedIsLayerTrait & NormalizedHasGeometryTrait;
41
+
42
+ export type TypeStyleTrait = NormalizedTypePropertiesTrait & NormalizedIsLayerTrait;
43
+
44
+ export interface ContainerLayoutProps {
45
+ layoutMode?: "HORIZONTAL" | "VERTICAL" | "NONE";
46
+ primaryAxisAlignItems?: "MIN" | "CENTER" | "MAX" | "SPACE_BETWEEN";
47
+ counterAxisAlignItems?: "MIN" | "CENTER" | "MAX" | "BASELINE";
48
+ layoutWrap?: "WRAP" | "NO_WRAP";
49
+ itemSpacing?: number | string; // string when variable
50
+ paddingTop?: number | string; // string when variable
51
+ paddingBottom?: number | string; // string when variable
52
+ paddingLeft?: number | string; // string when variable
53
+ paddingRight?: number | string; // string when variable
54
+ horizontalPadding?: number | string; // string when variable
55
+ verticalPadding?: number | string; // string when variable
56
+ }
57
+
58
+ type FigmaValueTransformer = ValueTransformer<string, number, number, number>;
59
+
60
+ export function createContainerLayoutPropsTransformer(
61
+ valueTransformer: FigmaValueTransformer,
62
+ ): PropsTransformer<ContainerLayoutTrait, ContainerLayoutProps> {
63
+ return createPropsTransformer({
64
+ _types: {
65
+ trait: {} as ContainerLayoutTrait,
66
+ props: {} as ContainerLayoutProps,
67
+ },
68
+ handlers: {
69
+ layoutMode: ({ layoutMode }) => layoutMode ?? "NONE",
70
+ primaryAxisAlignItems: ({ primaryAxisAlignItems }) => primaryAxisAlignItems,
71
+ counterAxisAlignItems: ({ counterAxisAlignItems }) => counterAxisAlignItems,
72
+ layoutWrap: ({ layoutWrap }) => layoutWrap,
73
+ itemSpacing: ({ itemSpacing }) => itemSpacing,
74
+ paddingTop: (node) => valueTransformer.getFormattedValue.paddingTop(node),
75
+ paddingBottom: (node) => valueTransformer.getFormattedValue.paddingBottom(node),
76
+ paddingLeft: (node) => valueTransformer.getFormattedValue.paddingLeft(node),
77
+ paddingRight: (node) => valueTransformer.getFormattedValue.paddingRight(node),
78
+ },
79
+ shorthands: {
80
+ horizontalPadding: ["paddingLeft", "paddingRight"],
81
+ verticalPadding: ["paddingTop", "paddingBottom"],
82
+ },
83
+ defaults: {},
84
+ });
85
+ }
86
+
87
+ export interface SelfLayoutProps {
88
+ layoutGrow?: number;
89
+ layoutAlign?: "STRETCH" | "INHERIT" | "MIN" | "CENTER" | "MAX";
90
+ layoutSizingVertical?: "FIXED" | "HUG" | "FILL";
91
+ layoutSizingHorizontal?: "FIXED" | "HUG" | "FILL";
92
+ width?: string | number; // string when variable
93
+ height?: string | number; // string when variable
94
+ minWidth?: string | number; // string when variable
95
+ minHeight?: string | number; // string when variable
96
+ maxWidth?: string | number; // string when variable
97
+ maxHeight?: string | number; // string when variable
98
+ }
99
+
100
+ export function createSelfLayoutPropsTransformer(
101
+ valueTransformer: FigmaValueTransformer,
102
+ ): PropsTransformer<SelfLayoutTrait, SelfLayoutProps> {
103
+ return createPropsTransformer({
104
+ _types: {
105
+ trait: {} as SelfLayoutTrait,
106
+ props: {} as SelfLayoutProps,
107
+ },
108
+ handlers: {
109
+ layoutGrow: ({ layoutGrow }) => layoutGrow,
110
+ layoutAlign: ({ layoutAlign }) => layoutAlign,
111
+ layoutSizingVertical: ({ layoutSizingVertical }) => layoutSizingVertical,
112
+ layoutSizingHorizontal: ({ layoutSizingHorizontal }) => layoutSizingHorizontal,
113
+ width: (node) => valueTransformer.getFormattedValue.width(node),
114
+ height: (node) => valueTransformer.getFormattedValue.height(node),
115
+ minWidth: (node) => valueTransformer.getFormattedValue.minWidth(node),
116
+ minHeight: (node) => valueTransformer.getFormattedValue.minHeight(node),
117
+ maxWidth: (node) => valueTransformer.getFormattedValue.maxWidth(node),
118
+ maxHeight: (node) => valueTransformer.getFormattedValue.maxHeight(node),
119
+ },
120
+ defaults: {},
121
+ });
122
+ }
123
+
124
+ export interface RadiusProps {
125
+ cornerRadius?: number | string; // string when variable
126
+ topLeftRadius?: number | string; // string when variable
127
+ topRightRadius?: number | string; // string when variable
128
+ bottomLeftRadius?: number | string; // string when variable
129
+ bottomRightRadius?: number | string; // string when variable
130
+ }
131
+
132
+ export function createRadiusPropsTransformer(valueTransformer: FigmaValueTransformer) {
133
+ return createPropsTransformer({
134
+ _types: {
135
+ trait: {} as RadiusTrait,
136
+ props: {} as RadiusProps,
137
+ },
138
+ handlers: {
139
+ topLeftRadius: (node) => valueTransformer.getFormattedValue.topLeftRadius(node),
140
+ topRightRadius: (node) => valueTransformer.getFormattedValue.topRightRadius(node),
141
+ bottomLeftRadius: (node) => valueTransformer.getFormattedValue.bottomLeftRadius(node),
142
+ bottomRightRadius: (node) => valueTransformer.getFormattedValue.bottomRightRadius(node),
143
+ },
144
+ shorthands: {
145
+ cornerRadius: ["topLeftRadius", "topRightRadius", "bottomLeftRadius", "bottomRightRadius"],
146
+ },
147
+ defaults: {
148
+ cornerRadius: 0,
149
+ topLeftRadius: 0,
150
+ topRightRadius: 0,
151
+ bottomLeftRadius: 0,
152
+ bottomRightRadius: 0,
153
+ },
154
+ });
155
+ }
156
+
157
+ export interface FillProps {
158
+ fill?: string;
159
+ }
160
+
161
+ export function createFrameFillPropsTransformer(valueTransformer: FigmaValueTransformer) {
162
+ return definePropsTransformer<FillTrait, FillProps>((node: FillTrait) => {
163
+ const fill = valueTransformer.getFormattedValue.frameFill(node);
164
+
165
+ return {
166
+ fill,
167
+ };
168
+ });
169
+ }
170
+
171
+ export function createShapeFillPropsTransformer(valueTransformer: FigmaValueTransformer) {
172
+ return definePropsTransformer<FillTrait, FillProps>((node: FillTrait) => {
173
+ const fill = valueTransformer.getFormattedValue.shapeFill(node);
174
+
175
+ return {
176
+ fill,
177
+ };
178
+ });
179
+ }
180
+
181
+ export function createTextFillPropsTransformer(valueTransformer: FigmaValueTransformer) {
182
+ return definePropsTransformer<FillTrait, FillProps>((node: FillTrait) => {
183
+ const fill = valueTransformer.getFormattedValue.textFill(node);
184
+
185
+ return {
186
+ fill,
187
+ };
188
+ });
189
+ }
190
+
191
+ export interface StrokeProps {
192
+ stroke?: string;
193
+ strokeWeight?: number;
194
+ }
195
+
196
+ export function createStrokePropsTransformer(
197
+ valueTransformer: FigmaValueTransformer,
198
+ ): PropsTransformer<StrokeTrait, StrokeProps> {
199
+ return definePropsTransformer((node: StrokeTrait) => {
200
+ const stroke = valueTransformer.getFormattedValue.stroke(node);
201
+ const strokeWeight = node.strokeWeight;
202
+
203
+ return {
204
+ stroke,
205
+ strokeWeight,
206
+ };
207
+ });
208
+ }
209
+
210
+ export interface TypeStyleProps {
211
+ textStyle?: string;
212
+ fontSize?: string | number;
213
+ fontWeight?: string | number;
214
+ lineHeight?: string | number;
215
+ maxLines?: number;
216
+ }
217
+
218
+ export function createTypeStylePropsTransformer({
219
+ valueTransformer,
220
+ styleService,
221
+ }: {
222
+ valueTransformer: FigmaValueTransformer;
223
+ styleService: StyleService;
224
+ }): PropsTransformer<TypeStyleTrait, TypeStyleProps> {
225
+ return definePropsTransformer((node) => {
226
+ const styleName = node.textStyleKey ? styleService.getStyleName(node.textStyleKey) : undefined;
227
+ const maxLines =
228
+ node.style.textTruncation === "ENDING" ? (node.style.maxLines ?? undefined) : undefined;
229
+
230
+ if (styleName) {
231
+ return {
232
+ textStyle: styleName,
233
+ maxLines,
234
+ };
235
+ }
236
+
237
+ return {
238
+ fontSize: valueTransformer.getFormattedValue.fontSize(node),
239
+ fontWeight: valueTransformer.getFormattedValue.fontWeight(node),
240
+ lineHeight: valueTransformer.getFormattedValue.lineHeight(node),
241
+ maxLines,
242
+ };
243
+ });
244
+ }
@@ -0,0 +1,62 @@
1
+ import type {
2
+ NormalizedBooleanOperationNode,
3
+ NormalizedRectangleNode,
4
+ NormalizedVectorNode,
5
+ } from "@/normalizer";
6
+ import { createElement, defineElementTransformer, type ElementTransformer } from "../../core";
7
+ import type { PropsTransformers } from "./props";
8
+
9
+ export interface RectangleTransformerDeps {
10
+ propsTransformers: PropsTransformers;
11
+ }
12
+
13
+ export function createRectangleTransformer({
14
+ propsTransformers,
15
+ }: RectangleTransformerDeps): ElementTransformer<NormalizedRectangleNode> {
16
+ return defineElementTransformer((node: NormalizedRectangleNode, traverse) => {
17
+ return createElement("Rectangle", { ...propsTransformers.selfLayout(node, traverse) });
18
+ });
19
+ }
20
+
21
+ export interface VectorTransformerDeps {
22
+ propsTransformers: PropsTransformers;
23
+ }
24
+
25
+ export function createVectorTransformer({
26
+ propsTransformers,
27
+ }: VectorTransformerDeps): ElementTransformer<NormalizedVectorNode> {
28
+ return defineElementTransformer((node, traverse) => {
29
+ return createElement(
30
+ "Vector",
31
+ {
32
+ ...propsTransformers.selfLayout(node, traverse),
33
+ ...propsTransformers.radius(node, traverse),
34
+ ...propsTransformers.stroke(node, traverse),
35
+ ...propsTransformers.shapeFill(node, traverse),
36
+ },
37
+ [],
38
+ "Vector Node Placeholder",
39
+ );
40
+ });
41
+ }
42
+
43
+ export interface BooleanOperationTransformerDeps {
44
+ propsTransformers: PropsTransformers;
45
+ }
46
+
47
+ export function createBooleanOperationTransformer({
48
+ propsTransformers,
49
+ }: BooleanOperationTransformerDeps): ElementTransformer<NormalizedBooleanOperationNode> {
50
+ return defineElementTransformer((node, traverse) => {
51
+ return createElement(
52
+ "BooleanOperation",
53
+ {
54
+ ...propsTransformers.selfLayout(node, traverse),
55
+ ...propsTransformers.radius(node, traverse),
56
+ ...propsTransformers.stroke(node, traverse),
57
+ ...propsTransformers.shapeFill(node, traverse),
58
+ },
59
+ node.children.map(traverse),
60
+ );
61
+ });
62
+ }
@@ -0,0 +1,33 @@
1
+ import type { NormalizedTextNode } from "@/normalizer";
2
+ import { compactObject } from "@/utils/common";
3
+ import { createElement, defineElementTransformer, type ElementTransformer } from "../../core";
4
+ import type { PropsTransformers } from "./props";
5
+
6
+ export interface TextTransformerDeps {
7
+ propsTransformers: PropsTransformers;
8
+ }
9
+
10
+ export function createTextTransformer({
11
+ propsTransformers,
12
+ }: TextTransformerDeps): ElementTransformer<NormalizedTextNode> {
13
+ return defineElementTransformer((node: NormalizedTextNode, traverse) => {
14
+ const hasMultipleFills = node.fills.length > 1;
15
+
16
+ const fillProps = propsTransformers.textFill(node, traverse);
17
+ const typeStyleProps = propsTransformers.typeStyle(node, traverse);
18
+
19
+ const props = compactObject({
20
+ ...typeStyleProps,
21
+ ...fillProps,
22
+ });
23
+
24
+ return createElement(
25
+ "Text",
26
+ props,
27
+ node.characters,
28
+ hasMultipleFills
29
+ ? "Multiple fills in Text node encountered, only the first fill is used."
30
+ : "",
31
+ );
32
+ });
33
+ }
@@ -0,0 +1,2 @@
1
+ export * as figma from "./figma";
2
+ export * as react from "./react";
@@ -1,5 +1,5 @@
1
- import type { IconService } from "../icon.service";
2
- import type { VariableService } from "../variable.service";
1
+ import type { IconService, VariableService } from "@/entities";
2
+
3
3
  export interface SeedComponentTransformerDeps {
4
4
  iconService: IconService;
5
5
  variableService: VariableService;
@@ -39,37 +39,39 @@ export type { SeedComponentTransformerDeps };
39
39
  export type * from "./properties.type";
40
40
 
41
41
  export const createSeedComponentTransformers = (ctx: SeedComponentTransformerDeps) =>
42
- [
43
- createActionButtonTransformer(ctx),
44
- createActionChipTransformer(ctx),
45
- createActionSheetTransformer(ctx),
46
- createAppBarTransformer(ctx),
47
- createAvatarTransformer(ctx),
48
- createAvatarStackTransformer(ctx),
49
- createBadgeTransformer(ctx),
50
- createCalloutTransformer(ctx),
51
- createCheckboxTransformer(ctx),
52
- createChipTabsTransformer(ctx),
53
- createControlChipTransformer(ctx),
54
- createErrorStateTransformer(ctx),
55
- createExtendedActionSheetTransformer(ctx),
56
- createExtendedFabTransformer(ctx),
57
- createFabTransformer(ctx),
58
- createHelpBubbleTransformer(ctx),
59
- createIdentityPlaceholderTransformer(ctx),
60
- createInlineBannerTransformer(ctx),
61
- createMannerTempBadgeTransformer(ctx),
62
- createMultilineTextFieldTransformer(ctx),
63
- createProgressCircleTransformer(ctx),
64
- createReactionButtonTransformer(ctx),
65
- createSegmentedControlTransformer(ctx),
66
- createSelectBoxGroupTransformer(ctx),
67
- createSelectBoxTransformer(ctx),
68
- createSkeletonTransformer(ctx),
69
- createSnackbarTransformer(ctx),
70
- createSwitchTransformer(ctx),
71
- createTabsTransformer(ctx),
72
- createTextButtonTransformer(ctx),
73
- createTextFieldTransformer(ctx),
74
- createToggleButtonTransformer(ctx),
75
- ] as Array<ComponentTransformer>;
42
+ Object.fromEntries(
43
+ [
44
+ createActionButtonTransformer(ctx),
45
+ createActionChipTransformer(ctx),
46
+ createActionSheetTransformer(ctx),
47
+ createAppBarTransformer(ctx),
48
+ createAvatarTransformer(ctx),
49
+ createAvatarStackTransformer(ctx),
50
+ createBadgeTransformer(ctx),
51
+ createCalloutTransformer(ctx),
52
+ createCheckboxTransformer(ctx),
53
+ createChipTabsTransformer(ctx),
54
+ createControlChipTransformer(ctx),
55
+ createErrorStateTransformer(ctx),
56
+ createExtendedActionSheetTransformer(ctx),
57
+ createExtendedFabTransformer(ctx),
58
+ createFabTransformer(ctx),
59
+ createHelpBubbleTransformer(ctx),
60
+ createIdentityPlaceholderTransformer(ctx),
61
+ createInlineBannerTransformer(ctx),
62
+ createMannerTempBadgeTransformer(ctx),
63
+ createMultilineTextFieldTransformer(ctx),
64
+ createProgressCircleTransformer(ctx),
65
+ createReactionButtonTransformer(ctx),
66
+ createSegmentedControlTransformer(ctx),
67
+ createSelectBoxGroupTransformer(ctx),
68
+ createSelectBoxTransformer(ctx),
69
+ createSkeletonTransformer(ctx),
70
+ createSnackbarTransformer(ctx),
71
+ createSwitchTransformer(ctx),
72
+ createTabsTransformer(ctx),
73
+ createTextButtonTransformer(ctx),
74
+ createTextFieldTransformer(ctx),
75
+ createToggleButtonTransformer(ctx),
76
+ ].map((x) => [x.key, x]) as Array<[string, ComponentTransformer]>,
77
+ );
@@ -1,5 +1,5 @@
1
- import type { InferFromDefinition } from "../../core/component";
2
- import type * as metadata from "../../data/__generated__/component-sets";
1
+ import type { InferFromDefinition } from "@/codegen/core";
2
+ import type * as metadata from "@/entities/data/__generated__/component-sets";
3
3
 
4
4
  export type ActionButtonProperties = InferFromDefinition<
5
5
  typeof metadata.actionButton.componentPropertyDefinitions
@@ -1,11 +1,10 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
2
3
  import { camelCase } from "change-case";
3
4
  import { match } from "ts-pattern";
4
- import { createElement } from "../../../core/jsx";
5
- import * as metadata from "../../../data/__generated__/component-sets";
6
- import { handleSizeProp } from "../size";
7
- import type { ActionButtonProperties } from "../properties.type";
8
5
  import type { SeedComponentTransformerDeps } from "../deps.interface";
6
+ import type { ActionButtonProperties } from "../properties.type";
7
+ import { handleSizeProp } from "../size";
9
8
 
10
9
  export const createActionButtonTransformer = (ctx: SeedComponentTransformerDeps) =>
11
10
  defineComponentTransformer<ActionButtonProperties>(
@@ -1,10 +1,9 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
2
3
  import { match } from "ts-pattern";
3
- import { createElement } from "../../../core/jsx";
4
- import * as metadata from "../../../data/__generated__/component-sets";
4
+ import type { SeedComponentTransformerDeps } from "../deps.interface";
5
5
  import type { ActionChipProperties } from "../properties.type";
6
6
  import { handleSizeProp } from "../size";
7
- import type { SeedComponentTransformerDeps } from "../deps.interface";
8
7
 
9
8
  export const createActionChipTransformer = (ctx: SeedComponentTransformerDeps) =>
10
9
  defineComponentTransformer<ActionChipProperties>(
@@ -1,11 +1,10 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
3
+ import { findAllInstances } from "@/utils/figma-node";
2
4
  import { camelCase } from "change-case";
3
5
  import { match } from "ts-pattern";
4
- import * as metadata from "../../../data/__generated__/component-sets";
5
- import { createElement } from "../../../core/jsx";
6
- import { findAllInstances } from "../../../../utils/figma-node";
7
- import type { ActionSheetItemProperties, ActionSheetProperties } from "../properties.type";
8
6
  import type { SeedComponentTransformerDeps } from "../deps.interface";
7
+ import type { ActionSheetItemProperties, ActionSheetProperties } from "../properties.type";
9
8
 
10
9
  const ACTION_SHEET_ITEM_KEY = "c3cafd3a3fdcd45fecb6971019d88eaf39a2e381";
11
10
  const createActionSheetItemTransformer = (_ctx: SeedComponentTransformerDeps) =>
@@ -1,16 +1,15 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
3
+ import type { NormalizedInstanceNode, NormalizedTextNode } from "@/normalizer";
4
+ import { findAll, findAllInstances, findOne } from "@/utils/figma-node";
2
5
  import { match } from "ts-pattern";
3
- import * as metadata from "../../../data/__generated__/component-sets";
4
- import { createElement } from "../../../core/jsx";
5
- import { findAll, findAllInstances, findOne } from "../../../../utils/figma-node";
6
- import type { NormalizedInstanceNode, NormalizedTextNode } from "../../../../normalizer";
6
+ import type { SeedComponentTransformerDeps } from "../deps.interface";
7
7
  import type {
8
8
  AppBarLeftProperties,
9
9
  AppBarMainProperties,
10
10
  AppBarProperties,
11
11
  AppBarRightProperties,
12
12
  } from "../properties.type";
13
- import type { SeedComponentTransformerDeps } from "../deps.interface";
14
13
 
15
14
  const APP_BAR_MAIN_KEY = "336b49b26c3933485d87cc460b06c390976ea58e";
16
15
  const createAppBarMainTransformer = (_ctx: SeedComponentTransformerDeps) =>
@@ -1,9 +1,8 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
2
- import * as metadata from "../../../data/__generated__/component-sets";
3
- import { createElement } from "../../../core/jsx";
4
- import { findAllInstances } from "../../../../utils/figma-node";
5
- import type { AvatarProperties, AvatarStackProperties } from "../properties.type";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
3
+ import { findAllInstances } from "@/utils/figma-node";
6
4
  import type { SeedComponentTransformerDeps } from "../deps.interface";
5
+ import type { AvatarProperties, AvatarStackProperties } from "../properties.type";
7
6
  import { createAvatarTransformer } from "./avatar";
8
7
 
9
8
  export const createAvatarStackTransformer = (ctx: SeedComponentTransformerDeps) => {
@@ -1,9 +1,8 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
2
- import * as metadata from "../../../data/__generated__/component-sets";
3
- import { createElement } from "../../../core/jsx";
4
- import { findAllInstances } from "../../../../utils/figma-node";
5
- import type { AvatarProperties, IdentityPlaceholderProperties } from "../properties.type";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
3
+ import { findAllInstances } from "@/utils/figma-node";
6
4
  import type { SeedComponentTransformerDeps } from "../deps.interface";
5
+ import type { AvatarProperties, IdentityPlaceholderProperties } from "../properties.type";
7
6
  import { createIdentityPlaceholderTransformer } from "./identity-placeholder";
8
7
 
9
8
  export const createAvatarTransformer = (ctx: SeedComponentTransformerDeps) => {
@@ -1,10 +1,9 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
2
3
  import { camelCase } from "change-case";
3
- import * as metadata from "../../../data/__generated__/component-sets";
4
- import { createElement } from "../../../core/jsx";
5
- import { handleSizeProp } from "../size";
6
- import type { BadgeProperties } from "../properties.type";
7
4
  import type { SeedComponentTransformerDeps } from "../deps.interface";
5
+ import type { BadgeProperties } from "../properties.type";
6
+ import { handleSizeProp } from "../size";
8
7
 
9
8
  export const createBadgeTransformer = (_ctx: SeedComponentTransformerDeps) =>
10
9
  defineComponentTransformer<BadgeProperties>(
@@ -1,10 +1,9 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
3
+ import type { NormalizedTextNode } from "@/normalizer";
2
4
  import { camelCase } from "change-case";
3
- import * as metadata from "../../../data/__generated__/component-sets";
4
- import { createElement } from "../../../core/jsx";
5
- import type { NormalizedTextNode } from "../../../../normalizer";
6
- import type { CalloutProperties } from "../properties.type";
7
5
  import type { SeedComponentTransformerDeps } from "../deps.interface";
6
+ import type { CalloutProperties } from "../properties.type";
8
7
 
9
8
  export const createCalloutTransformer = (ctx: SeedComponentTransformerDeps) =>
10
9
  defineComponentTransformer<CalloutProperties>(
@@ -1,10 +1,9 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
2
3
  import { camelCase } from "change-case";
3
- import * as metadata from "../../../data/__generated__/component-sets";
4
- import { createElement } from "../../../core/jsx";
5
- import { handleSizeProp } from "../size";
6
- import type { CheckboxProperties } from "../properties.type";
7
4
  import type { SeedComponentTransformerDeps } from "../deps.interface";
5
+ import type { CheckboxProperties } from "../properties.type";
6
+ import { handleSizeProp } from "../size";
8
7
 
9
8
  export const createCheckboxTransformer = (_ctx: SeedComponentTransformerDeps) =>
10
9
  defineComponentTransformer<CheckboxProperties>(
@@ -1,10 +1,9 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
3
+ import { findAllInstances } from "@/utils/figma-node";
2
4
  import { camelCase } from "change-case";
3
- import * as metadata from "../../../data/__generated__/component-sets";
4
- import { createElement } from "../../../core/jsx";
5
- import { findAllInstances } from "../../../../utils/figma-node";
6
- import type { ChipTabsItemProperties, ChipTabsProperties } from "../properties.type";
7
5
  import type { SeedComponentTransformerDeps } from "../deps.interface";
6
+ import type { ChipTabsItemProperties, ChipTabsProperties } from "../properties.type";
8
7
 
9
8
  const CHIP_TABS_ITEM_KEY = "fa80168b02051fbb0ba032238bd76d840dbe2e15";
10
9
  const createChipTabsItemTransformer = (_ctx: SeedComponentTransformerDeps) =>
@@ -1,10 +1,9 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
2
3
  import { match } from "ts-pattern";
3
- import * as metadata from "../../../data/__generated__/component-sets";
4
- import { createElement } from "../../../core/jsx";
5
- import { handleSizeProp } from "../size";
6
- import type { ControlChipProperties } from "../properties.type";
7
4
  import type { SeedComponentTransformerDeps } from "../deps.interface";
5
+ import type { ControlChipProperties } from "../properties.type";
6
+ import { handleSizeProp } from "../size";
8
7
 
9
8
  export const createControlChipTransformer = (ctx: SeedComponentTransformerDeps) =>
10
9
  defineComponentTransformer<ControlChipProperties>(
@@ -1,10 +1,9 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
3
+ import { findAllInstances } from "@/utils/figma-node";
2
4
  import { camelCase } from "change-case";
3
- import * as metadata from "../../../data/__generated__/component-sets";
4
- import { createElement } from "../../../core/jsx";
5
- import { findAllInstances } from "../../../../utils/figma-node";
6
- import type { ActionButtonProperties, ErrorStateProperties } from "../properties.type";
7
5
  import type { SeedComponentTransformerDeps } from "../deps.interface";
6
+ import type { ActionButtonProperties, ErrorStateProperties } from "../properties.type";
8
7
  import { createActionButtonTransformer } from "./action-button";
9
8
 
10
9
  export const createErrorStateTransformer = (ctx: SeedComponentTransformerDeps) => {
@@ -1,14 +1,13 @@
1
- import { defineComponentTransformer } from "@/codegen/core";
1
+ import { createElement, defineComponentTransformer } from "@/codegen/core";
2
+ import * as metadata from "@/entities/data/__generated__/component-sets";
3
+ import { findAllInstances } from "@/utils/figma-node";
2
4
  import { camelCase } from "change-case";
3
- import * as metadata from "../../../data/__generated__/component-sets";
4
- import { createElement } from "../../../core/jsx";
5
- import { findAllInstances } from "../../../../utils/figma-node";
5
+ import type { SeedComponentTransformerDeps } from "../deps.interface";
6
6
  import type {
7
7
  ExtendedActionSheetGroupProperties,
8
8
  ExtendedActionSheetItemProperties,
9
9
  ExtendedActionSheetProperties,
10
10
  } from "../properties.type";
11
- import type { SeedComponentTransformerDeps } from "../deps.interface";
12
11
 
13
12
  const EXTENDED_ACTION_SHEET_ITEM_KEY = "057083e95466da59051119eec0b41d4ad5a07f8f";
14
13
  const createExtendedActionSheetItemTransformer = (ctx: SeedComponentTransformerDeps) =>