@seed-design/figma 0.2.5 → 1.0.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.
Files changed (32) hide show
  1. package/lib/codegen/index.cjs +716 -448
  2. package/lib/codegen/index.d.ts +127 -91
  3. package/lib/codegen/index.d.ts.map +1 -1
  4. package/lib/codegen/index.js +716 -448
  5. package/lib/codegen/targets/react/index.cjs +1060 -764
  6. package/lib/codegen/targets/react/index.d.ts.map +1 -1
  7. package/lib/codegen/targets/react/index.js +1060 -764
  8. package/lib/index.cjs +716 -448
  9. package/lib/index.js +716 -448
  10. package/package.json +3 -3
  11. package/src/codegen/component-properties.ts +4 -0
  12. package/src/codegen/targets/react/component/handlers/list-header.ts +20 -0
  13. package/src/codegen/targets/react/component/handlers/list-item.ts +8 -1
  14. package/src/codegen/targets/react/component/handlers/switch-mark.ts +26 -0
  15. package/src/codegen/targets/react/component/handlers/switch.ts +9 -3
  16. package/src/codegen/targets/react/component/index.ts +6 -2
  17. package/src/entities/data/__generated__/component-sets/index.d.ts +1 -0
  18. package/src/entities/data/__generated__/component-sets/index.mjs +1 -0
  19. package/src/entities/data/__generated__/component-sets/list-header.d.ts +3 -3
  20. package/src/entities/data/__generated__/component-sets/list-header.mjs +3 -3
  21. package/src/entities/data/__generated__/component-sets/manner-temp-badge.d.ts +10 -6
  22. package/src/entities/data/__generated__/component-sets/manner-temp-badge.mjs +10 -6
  23. package/src/entities/data/__generated__/component-sets/manner-temp.d.ts +10 -6
  24. package/src/entities/data/__generated__/component-sets/manner-temp.mjs +10 -6
  25. package/src/entities/data/__generated__/component-sets/segmented-control.d.ts +0 -9
  26. package/src/entities/data/__generated__/component-sets/segmented-control.mjs +0 -9
  27. package/src/entities/data/__generated__/component-sets/switch-mark.d.ts +35 -0
  28. package/src/entities/data/__generated__/component-sets/switch-mark.mjs +35 -0
  29. package/src/entities/data/__generated__/component-sets/switch.d.ts +2 -2
  30. package/src/entities/data/__generated__/component-sets/switch.mjs +2 -2
  31. package/src/entities/data/__generated__/variable-collections/index.mjs +13 -5
  32. package/src/entities/data/__generated__/variables/index.mjs +546 -322
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seed-design/figma",
3
- "version": "0.2.5",
3
+ "version": "1.0.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/daangn/seed-design.git",
@@ -39,14 +39,14 @@
39
39
  "sync-entities": "rm -rf src/entities/data/__generated__ && bun figma-extractor src/entities/data/__generated__ component-sets variables variable-collections"
40
40
  },
41
41
  "dependencies": {
42
- "@seed-design/css": "0.2.5",
42
+ "@seed-design/css": "1.0.1",
43
43
  "change-case": "^5.4.4",
44
44
  "ts-pattern": "^5.7.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@figma/plugin-typings": "^1.110.0",
48
48
  "@figma/rest-api-spec": "^0.33.0",
49
- "@seed-design/figma-extractor": "^0.0.5",
49
+ "@seed-design/figma-extractor": "^1.0.0",
50
50
  "typescript": "^5.9.2"
51
51
  },
52
52
  "publishConfig": {
@@ -334,6 +334,10 @@ export type SwitchProperties = InferComponentDefinition<
334
334
  typeof metadata.switch.componentPropertyDefinitions
335
335
  >;
336
336
 
337
+ export type SwitchMarkProperties = InferComponentDefinition<
338
+ typeof metadata.switchMark.componentPropertyDefinitions
339
+ >;
340
+
337
341
  export type ToggleButtonProperties = InferComponentDefinition<
338
342
  typeof metadata.toggleButton.componentPropertyDefinitions
339
343
  >;
@@ -0,0 +1,20 @@
1
+ import type { ListHeaderProperties } from "@/codegen/component-properties";
2
+ import { defineComponentHandler } from "@/codegen/core";
3
+ import * as metadata from "@/entities/data/__generated__/component-sets";
4
+ import { createLocalSnippetHelper } from "../../element-factories";
5
+ import type { ComponentHandlerDeps } from "../deps.interface";
6
+ import { camelCase } from "change-case";
7
+
8
+ const { createLocalSnippetElement } = createLocalSnippetHelper("list-header");
9
+
10
+ export const createListHeaderHandler = (_ctx: ComponentHandlerDeps) =>
11
+ defineComponentHandler<ListHeaderProperties>(
12
+ metadata.listHeader.key,
13
+ ({ componentProperties: props }) => {
14
+ const commonProps = {
15
+ variant: camelCase(props["Variant"].value),
16
+ };
17
+
18
+ return createLocalSnippetElement("ListHeader", commonProps, props["Title#28588:0"].value);
19
+ },
20
+ );
@@ -102,6 +102,10 @@ export const createListItemHandler = (ctx: ComponentHandlerDeps) =>
102
102
  const disabled = props.State.value === "Disabled";
103
103
 
104
104
  const tag = (() => {
105
+ if (suffix?.tag === "SwitchMark") {
106
+ return "ListSwitchItem";
107
+ }
108
+
105
109
  if (prefix?.tag === "Checkmark" || suffix?.tag === "Checkmark") {
106
110
  return "ListCheckItem";
107
111
  }
@@ -131,7 +135,10 @@ export const createListItemHandler = (ctx: ComponentHandlerDeps) =>
131
135
  ...(prefix && { prefix }),
132
136
  ...(suffix && { suffix }),
133
137
  ...(disabled &&
134
- (tag === "ListButtonItem" || tag === "ListCheckItem" || tag === "ListRadioItem") && {
138
+ (tag === "ListButtonItem" ||
139
+ tag === "ListCheckItem" ||
140
+ tag === "ListRadioItem" ||
141
+ tag === "ListSwitchItem") && {
135
142
  disabled: true,
136
143
  }),
137
144
  ...(props.State.value === "Highlighted" && {
@@ -0,0 +1,26 @@
1
+ import type { SwitchMarkProperties } from "@/codegen/component-properties";
2
+ import { defineComponentHandler } from "@/codegen/core";
3
+ import * as metadata from "@/entities/data/__generated__/component-sets";
4
+ import { createLocalSnippetHelper } from "../../element-factories";
5
+ import type { ComponentHandlerDeps } from "../deps.interface";
6
+ import { match } from "ts-pattern";
7
+
8
+ const { createLocalSnippetElement } = createLocalSnippetHelper("switch");
9
+
10
+ export const createSwitchMarkHandler = (_ctx: ComponentHandlerDeps) =>
11
+ defineComponentHandler<SwitchMarkProperties>(
12
+ metadata.switchMark.key,
13
+ ({ componentProperties: props }) => {
14
+ const tone = match(props.Tone.value)
15
+ .with("Neutral", () => "neutral")
16
+ .with("🚫[Deprecated] Brand", () => "brand")
17
+ .exhaustive();
18
+
19
+ const commonProps = {
20
+ tone,
21
+ size: props.Size.value,
22
+ };
23
+
24
+ return createLocalSnippetElement("SwitchMark", commonProps);
25
+ },
26
+ );
@@ -19,6 +19,14 @@ export const createSwitchHandler = (_ctx: ComponentHandlerDeps) =>
19
19
  const commonProps = {
20
20
  tone,
21
21
  size: props.Size.value,
22
+ };
23
+
24
+ if (props["Layout(Figma Only)"].value === "🚫[Switch Mark 사용] Switch Only") {
25
+ return createLocalSnippetElement("SwitchMark", commonProps);
26
+ }
27
+
28
+ return createLocalSnippetElement("Switch", {
29
+ ...commonProps,
22
30
  label: props["Label#36578:0"].value,
23
31
  ...(props.Selected.value === "True" && {
24
32
  defaultChecked: true,
@@ -26,8 +34,6 @@ export const createSwitchHandler = (_ctx: ComponentHandlerDeps) =>
26
34
  ...(props.State.value === "Disabled" && {
27
35
  disabled: true,
28
36
  }),
29
- };
30
-
31
- return createLocalSnippetElement("Switch", commonProps);
37
+ });
32
38
  },
33
39
  );
@@ -22,24 +22,26 @@ import { createErrorStateHandler } from "./handlers/error-state";
22
22
  import { createFloatingActionButtonHandler } from "./handlers/floating-action-button";
23
23
  import { createHelpBubbleHandler } from "./handlers/help-bubble";
24
24
  import { createIdentityPlaceholderHandler } from "./handlers/identity-placeholder";
25
+ import { createListHeaderHandler } from "@/codegen/targets/react/component/handlers/list-header";
26
+ import { createListItemHandler } from "@/codegen/targets/react/component/handlers/list-item";
25
27
  import { createMannerTempBadgeHandler } from "./handlers/manner-temp-badge";
26
28
  import { createMannerTempHandler } from "./handlers/manner-temp";
27
29
  import { createMenuSheetHandler } from "./handlers/menu-sheet";
28
30
  import { createMultilineTextFieldHandler } from "./handlers/multiline-text-field";
29
31
  import { createPageBannerHandler } from "./handlers/page-banner";
30
32
  import { createProgressCircleHandler } from "./handlers/progress-circle";
31
- import { createRadioMarkHandler } from "@/codegen/targets/react/component/handlers/radio-mark";
32
33
  import { createRadioGroupItemHandler } from "@/codegen/targets/react/component/handlers/radio-group";
34
+ import { createRadioMarkHandler } from "@/codegen/targets/react/component/handlers/radio-mark";
33
35
  import { createReactionButtonHandler } from "./handlers/reaction-button";
34
36
  import { createSegmentedControlHandler } from "./handlers/segmented-control";
35
37
  import { createSelectBoxGroupHandler, createSelectBoxHandler } from "./handlers/select-box";
36
38
  import { createSkeletonHandler } from "./handlers/skeleton";
37
39
  import { createSnackbarHandler } from "./handlers/snackbar";
40
+ import { createSwitchMarkHandler } from "@/codegen/targets/react/component/handlers/switch-mark";
38
41
  import { createSwitchHandler } from "./handlers/switch";
39
42
  import { createTabsHandler } from "@/codegen/targets/react/component/handlers/tabs";
40
43
  import { createTextFieldHandler } from "./handlers/text-field";
41
44
  import { createToggleButtonHandler } from "./handlers/toggle-button";
42
- import { createListItemHandler } from "@/codegen/targets/react/component/handlers/list-item";
43
45
 
44
46
  export type { ComponentHandlerDeps };
45
47
  export type UnboundComponentHandler<T extends NormalizedInstanceNode["componentProperties"]> = (
@@ -72,6 +74,7 @@ export const unboundSeedComponentHandlers: Array<UnboundComponentHandler<any>> =
72
74
  createFloatingActionButtonHandler,
73
75
  createHelpBubbleHandler,
74
76
  createIdentityPlaceholderHandler,
77
+ createListHeaderHandler,
75
78
  createListItemHandler,
76
79
  createMannerTempBadgeHandler,
77
80
  createMannerTempHandler,
@@ -88,6 +91,7 @@ export const unboundSeedComponentHandlers: Array<UnboundComponentHandler<any>> =
88
91
  createSkeletonHandler,
89
92
  createSnackbarHandler,
90
93
  createSwitchHandler,
94
+ createSwitchMarkHandler,
91
95
  createTabsHandler,
92
96
  createTextFieldHandler,
93
97
  createToggleButtonHandler,
@@ -44,6 +44,7 @@ export { metadata as slider } from "./slider";
44
44
  export { metadata as snackbar } from "./snackbar";
45
45
  export { metadata as superscriptChild } from "./superscript-child";
46
46
  export { metadata as switch } from "./switch";
47
+ export { metadata as switchMark } from "./switch-mark";
47
48
  export { metadata as tabs } from "./tabs";
48
49
  export { metadata as textField } from "./text-field";
49
50
  export { metadata as toggleButton } from "./toggle-button";
@@ -44,6 +44,7 @@ export { metadata as slider } from "./slider.mjs";
44
44
  export { metadata as snackbar } from "./snackbar.mjs";
45
45
  export { metadata as superscriptChild } from "./superscript-child.mjs";
46
46
  export { metadata as switch } from "./switch.mjs";
47
+ export { metadata as switchMark } from "./switch-mark.mjs";
47
48
  export { metadata as tabs } from "./tabs.mjs";
48
49
  export { metadata as textField } from "./text-field.mjs";
49
50
  export { metadata as toggleButton } from "./toggle-button.mjs";
@@ -13,11 +13,11 @@ export declare const metadata: {
13
13
  "Custom"
14
14
  ]
15
15
  },
16
- "Title Weight": {
16
+ "Variant": {
17
17
  "type": "VARIANT",
18
18
  "variantOptions": [
19
- "Medium",
20
- "Bold"
19
+ "Medium Weak",
20
+ "Bold Solid"
21
21
  ]
22
22
  }
23
23
  }
@@ -13,11 +13,11 @@ export const metadata = {
13
13
  "Custom"
14
14
  ]
15
15
  },
16
- "Title Weight": {
16
+ "Variant": {
17
17
  "type": "VARIANT",
18
18
  "variantOptions": [
19
- "Medium",
20
- "Bold"
19
+ "Medium Weak",
20
+ "Bold Solid"
21
21
  ]
22
22
  }
23
23
  }
@@ -5,12 +5,16 @@ export declare const metadata: {
5
5
  "Level": {
6
6
  "type": "VARIANT",
7
7
  "variantOptions": [
8
- "L1 (~29.9)",
9
- "L2 (30.0~36.2)",
10
- "L3 (36.3~37.5)",
11
- "L4 (37.6~41.9)",
12
- "L5 (42~51.9)",
13
- "L6 (52~)"
8
+ "L1",
9
+ "L2",
10
+ "L3",
11
+ "L4",
12
+ "L5",
13
+ "L6",
14
+ "L7",
15
+ "L8",
16
+ "L9",
17
+ "L10"
14
18
  ]
15
19
  }
16
20
  }
@@ -5,12 +5,16 @@ export const metadata = {
5
5
  "Level": {
6
6
  "type": "VARIANT",
7
7
  "variantOptions": [
8
- "L1 (~29.9)",
9
- "L2 (30.0~36.2)",
10
- "L3 (36.3~37.5)",
11
- "L4 (37.6~41.9)",
12
- "L5 (42~51.9)",
13
- "L6 (52~)"
8
+ "L1",
9
+ "L2",
10
+ "L3",
11
+ "L4",
12
+ "L5",
13
+ "L6",
14
+ "L7",
15
+ "L8",
16
+ "L9",
17
+ "L10"
14
18
  ]
15
19
  }
16
20
  }
@@ -5,12 +5,16 @@ export declare const metadata: {
5
5
  "Level": {
6
6
  "type": "VARIANT",
7
7
  "variantOptions": [
8
- "L1 (~29.9)",
9
- "L2 (30.0~36.2)",
10
- "L3 (36.3~37.5)",
11
- "L4 (37.6~41.9)",
12
- "L5 (42~51.9)",
13
- "L6 (52~)"
8
+ "L1",
9
+ "L2",
10
+ "L3",
11
+ "L4",
12
+ "L5",
13
+ "L6",
14
+ "L7",
15
+ "L8",
16
+ "L9",
17
+ "L10"
14
18
  ]
15
19
  }
16
20
  }
@@ -5,12 +5,16 @@ export const metadata = {
5
5
  "Level": {
6
6
  "type": "VARIANT",
7
7
  "variantOptions": [
8
- "L1 (~29.9)",
9
- "L2 (30.0~36.2)",
10
- "L3 (36.3~37.5)",
11
- "L4 (37.6~41.9)",
12
- "L5 (42~51.9)",
13
- "L6 (52~)"
8
+ "L1",
9
+ "L2",
10
+ "L3",
11
+ "L4",
12
+ "L5",
13
+ "L6",
14
+ "L7",
15
+ "L8",
16
+ "L9",
17
+ "L10"
14
18
  ]
15
19
  }
16
20
  }
@@ -9,15 +9,6 @@ export declare const metadata: {
9
9
  "3",
10
10
  "4"
11
11
  ]
12
- },
13
- "Selected Item": {
14
- "type": "VARIANT",
15
- "variantOptions": [
16
- "1",
17
- "2",
18
- "3",
19
- "4"
20
- ]
21
12
  }
22
13
  }
23
14
  };
@@ -9,15 +9,6 @@ export const metadata = {
9
9
  "3",
10
10
  "4"
11
11
  ]
12
- },
13
- "Selected Item": {
14
- "type": "VARIANT",
15
- "variantOptions": [
16
- "1",
17
- "2",
18
- "3",
19
- "4"
20
- ]
21
12
  }
22
13
  }
23
14
  };
@@ -0,0 +1,35 @@
1
+ export declare const metadata: {
2
+ "name": "🟢 Switch Mark",
3
+ "key": "bc53f269089e02a1d241e2a21ac7631bfa49834e",
4
+ "componentPropertyDefinitions": {
5
+ "Size": {
6
+ "type": "VARIANT",
7
+ "variantOptions": [
8
+ "16",
9
+ "24",
10
+ "32"
11
+ ]
12
+ },
13
+ "Tone": {
14
+ "type": "VARIANT",
15
+ "variantOptions": [
16
+ "Neutral",
17
+ "🚫[Deprecated] Brand"
18
+ ]
19
+ },
20
+ "Selected": {
21
+ "type": "VARIANT",
22
+ "variantOptions": [
23
+ "True",
24
+ "False"
25
+ ]
26
+ },
27
+ "State": {
28
+ "type": "VARIANT",
29
+ "variantOptions": [
30
+ "Enabled",
31
+ "Disabled"
32
+ ]
33
+ }
34
+ }
35
+ };
@@ -0,0 +1,35 @@
1
+ export const metadata = {
2
+ "name": "🟢 Switch Mark",
3
+ "key": "bc53f269089e02a1d241e2a21ac7631bfa49834e",
4
+ "componentPropertyDefinitions": {
5
+ "Size": {
6
+ "type": "VARIANT",
7
+ "variantOptions": [
8
+ "16",
9
+ "24",
10
+ "32"
11
+ ]
12
+ },
13
+ "Tone": {
14
+ "type": "VARIANT",
15
+ "variantOptions": [
16
+ "Neutral",
17
+ "🚫[Deprecated] Brand"
18
+ ]
19
+ },
20
+ "Selected": {
21
+ "type": "VARIANT",
22
+ "variantOptions": [
23
+ "True",
24
+ "False"
25
+ ]
26
+ },
27
+ "State": {
28
+ "type": "VARIANT",
29
+ "variantOptions": [
30
+ "Enabled",
31
+ "Disabled"
32
+ ]
33
+ }
34
+ }
35
+ };
@@ -34,12 +34,12 @@ export declare const metadata: {
34
34
  "Disabled"
35
35
  ]
36
36
  },
37
- "Label Layout(Figma Only)": {
37
+ "Layout(Figma Only)": {
38
38
  "type": "VARIANT",
39
39
  "variantOptions": [
40
40
  "Label Last",
41
41
  "Label First",
42
- "Switch Only"
42
+ "🚫[Switch Mark 사용] Switch Only"
43
43
  ]
44
44
  }
45
45
  }
@@ -34,12 +34,12 @@ export const metadata = {
34
34
  "Disabled"
35
35
  ]
36
36
  },
37
- "Label Layout(Figma Only)": {
37
+ "Layout(Figma Only)": {
38
38
  "type": "VARIANT",
39
39
  "variantOptions": [
40
40
  "Label Last",
41
41
  "Label First",
42
- "Switch Only"
42
+ "🚫[Switch Mark 사용] Switch Only"
43
43
  ]
44
44
  }
45
45
  }
@@ -45,13 +45,13 @@ export const FIGMA_VARIABLE_COLLECTIONS = {
45
45
  "VariableID:1:164",
46
46
  "VariableID:1:157",
47
47
  "VariableID:1:165",
48
- "VariableID:1:171",
49
48
  "VariableID:238:17662",
50
49
  "VariableID:17544:4057",
51
- "VariableID:41186:6437",
50
+ "VariableID:1:171",
52
51
  "VariableID:670:2700",
53
- "VariableID:1:172",
52
+ "VariableID:41186:6437",
54
53
  "VariableID:1:158",
54
+ "VariableID:1:172",
55
55
  "VariableID:1:161",
56
56
  "VariableID:1:159",
57
57
  "VariableID:576:22878",
@@ -98,8 +98,8 @@ export const FIGMA_VARIABLE_COLLECTIONS = {
98
98
  "VariableID:12479:23364",
99
99
  "VariableID:12479:23365",
100
100
  "VariableID:12479:23366",
101
- "VariableID:12548:1437",
102
101
  "VariableID:1:7",
102
+ "VariableID:12548:1437",
103
103
  "VariableID:12479:23367",
104
104
  "VariableID:12479:23368",
105
105
  "VariableID:12479:23371",
@@ -254,7 +254,15 @@ export const FIGMA_VARIABLE_COLLECTIONS = {
254
254
  "VariableID:34377:100601",
255
255
  "VariableID:34377:100602",
256
256
  "VariableID:36765:108896",
257
- "VariableID:36765:108897"
257
+ "VariableID:36765:108897",
258
+ "VariableID:43290:12817",
259
+ "VariableID:43290:12818",
260
+ "VariableID:43290:12819",
261
+ "VariableID:43290:12821",
262
+ "VariableID:43290:12820",
263
+ "VariableID:43290:12822",
264
+ "VariableID:43290:12823",
265
+ "VariableID:43290:12824"
258
266
  ]
259
267
  },
260
268
  "VariableCollectionId:1:174": {