@seed-design/figma 1.1.13 → 1.1.14

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 (43) hide show
  1. package/lib/codegen/index.cjs +636 -114
  2. package/lib/codegen/index.d.ts +136 -96
  3. package/lib/codegen/index.d.ts.map +1 -1
  4. package/lib/codegen/index.js +636 -114
  5. package/lib/codegen/targets/react/index.cjs +682 -134
  6. package/lib/codegen/targets/react/index.d.ts +31 -11
  7. package/lib/codegen/targets/react/index.d.ts.map +1 -1
  8. package/lib/codegen/targets/react/index.js +682 -135
  9. package/lib/index.cjs +1254 -433
  10. package/lib/index.d.ts +46 -10
  11. package/lib/index.d.ts.map +1 -1
  12. package/lib/index.js +1254 -433
  13. package/package.json +1 -1
  14. package/src/codegen/component-properties.ts +5 -5
  15. package/src/codegen/core/value-resolver.ts +49 -12
  16. package/src/codegen/targets/figma/frame.ts +1 -0
  17. package/src/codegen/targets/figma/pipeline.ts +5 -0
  18. package/src/codegen/targets/figma/props.ts +30 -1
  19. package/src/codegen/targets/figma/shape.ts +1 -0
  20. package/src/codegen/targets/figma/value-resolver.ts +20 -0
  21. package/src/codegen/targets/react/component/handlers/menu-sheet.ts +1 -1
  22. package/src/codegen/targets/react/component/handlers/page-banner.ts +2 -2
  23. package/src/codegen/targets/react/component/handlers/{radio-mark.ts → radiomark.ts} +4 -4
  24. package/src/codegen/targets/react/component/handlers/result-section.ts +1 -1
  25. package/src/codegen/targets/react/component/handlers/{switch-mark.ts → switchmark.ts} +4 -4
  26. package/src/codegen/targets/react/component/index.ts +4 -4
  27. package/src/codegen/targets/react/frame.ts +16 -2
  28. package/src/codegen/targets/react/pipeline.ts +6 -1
  29. package/src/codegen/targets/react/props.ts +26 -0
  30. package/src/codegen/targets/react/shape.ts +5 -1
  31. package/src/codegen/targets/react/value-resolver.ts +26 -0
  32. package/src/entities/data/__generated__/component-sets/index.d.ts +84 -89
  33. package/src/entities/data/__generated__/component-sets/index.mjs +84 -89
  34. package/src/entities/data/__generated__/components/index.d.ts +2 -2
  35. package/src/entities/data/__generated__/components/index.mjs +2 -2
  36. package/src/entities/data/__generated__/icons/index.mjs +14 -0
  37. package/src/entities/data/__generated__/styles/index.mjs +190 -1
  38. package/src/entities/data/__generated__/variable-collections/index.mjs +11 -1
  39. package/src/entities/data/__generated__/variables/index.mjs +280 -0
  40. package/src/normalizer/from-plugin.ts +427 -258
  41. package/src/normalizer/from-rest.ts +428 -58
  42. package/src/normalizer/types.ts +63 -10
  43. package/src/utils/figma-node.ts +15 -10
@@ -1,6 +1,7 @@
1
1
  import type { ValueResolver } from "@/codegen/core";
2
2
  import { camelCasePreserveUnderscoreBetweenNumbers } from "@/utils/common";
3
3
  import { toCssPixel, toCssRgba } from "@/utils/css";
4
+ import type { RGBA } from "@figma/rest-api-spec";
4
5
  import { camelCase } from "change-case";
5
6
 
6
7
  export type ReactValueResolver = ValueResolver<
@@ -31,6 +32,10 @@ export const defaultTextStyleNameFormatter = ({ slug }: { slug: string[] }) => {
31
32
  return camelCase(slug[slug.length - 1]!, { mergeAmbiguousCharacters: true });
32
33
  };
33
34
 
35
+ export const defaultEffectStyleNameFormatter = ({ slug }: { slug: string[] }) => {
36
+ return camelCase(slug[slug.length - 1]!, { mergeAmbiguousCharacters: true });
37
+ };
38
+
34
39
  export const defaultFillStyleResolver = ({ slug }: { slug: string[] }) => {
35
40
  const [, ...rest] = slug;
36
41
 
@@ -59,9 +64,30 @@ export const defaultFillStyleResolver = ({ slug }: { slug: string[] }) => {
59
64
  };
60
65
  };
61
66
 
67
+ function formatBoxShadow({
68
+ type,
69
+ color,
70
+ offset,
71
+ radius,
72
+ spread,
73
+ }: {
74
+ type: "DROP_SHADOW" | "INNER_SHADOW";
75
+ color: RGBA;
76
+ offset: { x: number; y: number };
77
+ radius: number;
78
+ spread?: number;
79
+ }): string {
80
+ const inset = type === "INNER_SHADOW" ? "inset " : "";
81
+ const colorStr = toCssRgba(color);
82
+ const spreadStr = spread ? ` ${spread}px` : "";
83
+
84
+ return `${inset}${offset.x}px ${offset.y}px ${radius}px${spreadStr} ${colorStr}`;
85
+ }
86
+
62
87
  export const defaultRawValueFormatters = {
63
88
  color: (value: RGBA) => toCssRgba(value),
64
89
  dimension: (value: number) => toCssPixel(value),
65
90
  fontDimension: (value: number) => toCssPixel(value),
66
91
  fontWeight: (value: number) => value,
92
+ boxShadow: formatBoxShadow,
67
93
  };
@@ -1,24 +1,3 @@
1
- export declare const templateBannerDetach: {
2
- "name": "templateBannerDetach",
3
- "key": "b9670e4d68d2b1057f28916728a845dc9c160c0f",
4
- "componentPropertyDefinitions": {
5
- "Layout": {
6
- "type": "VARIANT",
7
- "variantOptions": [
8
- "Title + Description",
9
- "Description + Title"
10
- ]
11
- },
12
- "Rounded": {
13
- "type": "VARIANT",
14
- "variantOptions": [
15
- "True",
16
- "False"
17
- ]
18
- }
19
- }
20
- };
21
-
22
1
  export declare const templateButtonGroup: {
23
2
  "name": "templateButtonGroup",
24
3
  "key": "29109a34197f2eb5d390b1d9ebba270979a7b302",
@@ -106,70 +85,18 @@ export declare const templateCustomPickerField: {
106
85
  }
107
86
  };
108
87
 
109
- export declare const templateResultSection: {
110
- "name": "templateResultSection",
111
- "key": "fabd52c41c63d921e37e0a1de373e4df2b496f30",
88
+ export declare const templateDisclaimer: {
89
+ "name": "templateDisclaimer",
90
+ "key": "e08d2594b76c6c0107e34c0071cab8ef844c8998",
112
91
  "componentPropertyDefinitions": {
113
- "Title#16237:0": {
114
- "type": "TEXT"
115
- },
116
- "Description#16237:5": {
117
- "type": "TEXT"
118
- },
119
- "Asset Type#45154:9": {
120
- "type": "INSTANCE_SWAP",
121
- "preferredValues": [
122
- {
123
- "type": "COMPONENT",
124
- "key": "3f2ed06bd34fbaf24d371cefa973e09e2c2572bf"
125
- },
126
- {
127
- "type": "COMPONENT",
128
- "key": "bf1ad3ad5c45a2e94fd800f7f6ecbe52ba0667ab"
129
- },
130
- {
131
- "type": "COMPONENT",
132
- "key": "d357dcf0fbff80f3bfa70fe4fd5d48a9bddd1b49"
133
- },
134
- {
135
- "type": "COMPONENT",
136
- "key": "a53df434b562c1eeb04dab9abd88431989c5fc33"
137
- },
138
- {
139
- "type": "COMPONENT",
140
- "key": "5e53811a1e1444deccb5147b6a57196a3be467c9"
141
- },
142
- {
143
- "type": "COMPONENT",
144
- "key": "3ff3999d2d2bbed2c7656210793d4f083901f73b"
145
- },
146
- {
147
- "type": "COMPONENT",
148
- "key": "56fcf964b7784ca83eaf6c9b1531de6150d23a0d"
149
- },
150
- {
151
- "type": "COMPONENT",
152
- "key": "5652618ddd66c844ab977d083d0dc41cb98f98ae"
153
- }
154
- ]
155
- },
156
- "Show Asset#45154:14": {
157
- "type": "BOOLEAN"
158
- },
159
- "Show Buttons#53435:0": {
160
- "type": "BOOLEAN"
161
- },
162
- "ㄴShow First Button#53766:0": {
163
- "type": "BOOLEAN"
164
- },
165
- "ㄴShow Second Button#53766:3": {
92
+ "Show Title#54910:2": {
166
93
  "type": "BOOLEAN"
167
94
  },
168
95
  "Size": {
169
96
  "type": "VARIANT",
170
97
  "variantOptions": [
171
- "Large",
172
- "Medium"
98
+ "t4(14pt)",
99
+ "t5(16pt)"
173
100
  ]
174
101
  }
175
102
  }
@@ -1212,17 +1139,16 @@ export declare const menuSheet: {
1212
1139
  "Menu Group Count": {
1213
1140
  "type": "VARIANT",
1214
1141
  "variantOptions": [
1142
+ "1",
1215
1143
  "2",
1216
- "3",
1217
- "1"
1144
+ "3"
1218
1145
  ]
1219
1146
  },
1220
1147
  "Layout": {
1221
1148
  "type": "VARIANT",
1222
1149
  "variantOptions": [
1223
1150
  "Text Only",
1224
- "Text with Icon",
1225
- "Text with Subtext"
1151
+ "Text with Icon"
1226
1152
  ]
1227
1153
  }
1228
1154
  }
@@ -1246,10 +1172,10 @@ export declare const pageBanner: {
1246
1172
  "type": "VARIANT",
1247
1173
  "variantOptions": [
1248
1174
  "Display",
1175
+ "Display (With Action)",
1249
1176
  "Actionable",
1250
1177
  "Dismissible",
1251
- "With Action",
1252
- "Custom"
1178
+ "Actionable (Custom)"
1253
1179
  ]
1254
1180
  },
1255
1181
  "Tone": {
@@ -1359,8 +1285,8 @@ export declare const radio: {
1359
1285
  }
1360
1286
  };
1361
1287
 
1362
- export declare const radioMark: {
1363
- "name": "radioMark",
1288
+ export declare const radiomark: {
1289
+ "name": "radiomark",
1364
1290
  "key": "832d696d6e9566610968cd70f128f500ec009d6a",
1365
1291
  "componentPropertyDefinitions": {
1366
1292
  "Size": {
@@ -1476,6 +1402,75 @@ export declare const resizableChild: {
1476
1402
  }
1477
1403
  };
1478
1404
 
1405
+ export declare const resultSection: {
1406
+ "name": "resultSection",
1407
+ "key": "fabd52c41c63d921e37e0a1de373e4df2b496f30",
1408
+ "componentPropertyDefinitions": {
1409
+ "Title#16237:0": {
1410
+ "type": "TEXT"
1411
+ },
1412
+ "Description#16237:5": {
1413
+ "type": "TEXT"
1414
+ },
1415
+ "Asset Type#45154:9": {
1416
+ "type": "INSTANCE_SWAP",
1417
+ "preferredValues": [
1418
+ {
1419
+ "type": "COMPONENT",
1420
+ "key": "3f2ed06bd34fbaf24d371cefa973e09e2c2572bf"
1421
+ },
1422
+ {
1423
+ "type": "COMPONENT",
1424
+ "key": "bf1ad3ad5c45a2e94fd800f7f6ecbe52ba0667ab"
1425
+ },
1426
+ {
1427
+ "type": "COMPONENT",
1428
+ "key": "d357dcf0fbff80f3bfa70fe4fd5d48a9bddd1b49"
1429
+ },
1430
+ {
1431
+ "type": "COMPONENT",
1432
+ "key": "a53df434b562c1eeb04dab9abd88431989c5fc33"
1433
+ },
1434
+ {
1435
+ "type": "COMPONENT",
1436
+ "key": "5e53811a1e1444deccb5147b6a57196a3be467c9"
1437
+ },
1438
+ {
1439
+ "type": "COMPONENT",
1440
+ "key": "3ff3999d2d2bbed2c7656210793d4f083901f73b"
1441
+ },
1442
+ {
1443
+ "type": "COMPONENT",
1444
+ "key": "56fcf964b7784ca83eaf6c9b1531de6150d23a0d"
1445
+ },
1446
+ {
1447
+ "type": "COMPONENT",
1448
+ "key": "5652618ddd66c844ab977d083d0dc41cb98f98ae"
1449
+ }
1450
+ ]
1451
+ },
1452
+ "Show Asset#45154:14": {
1453
+ "type": "BOOLEAN"
1454
+ },
1455
+ "Show Buttons#53435:0": {
1456
+ "type": "BOOLEAN"
1457
+ },
1458
+ "ㄴShow First Button#53766:0": {
1459
+ "type": "BOOLEAN"
1460
+ },
1461
+ "ㄴShow Second Button#53766:3": {
1462
+ "type": "BOOLEAN"
1463
+ },
1464
+ "Size": {
1465
+ "type": "VARIANT",
1466
+ "variantOptions": [
1467
+ "Large",
1468
+ "Medium"
1469
+ ]
1470
+ }
1471
+ }
1472
+ };
1473
+
1479
1474
  export declare const rootTopNavigationGlobal: {
1480
1475
  "name": "rootTopNavigationGlobal",
1481
1476
  "key": "a694a1da14a5c1d7d5c66bc78218c0c61fb388ab",
@@ -1717,8 +1712,8 @@ export declare const _switch: {
1717
1712
  }
1718
1713
  };
1719
1714
 
1720
- export declare const switchMark: {
1721
- "name": "switchMark",
1715
+ export declare const switchmark: {
1716
+ "name": "switchmark",
1722
1717
  "key": "bc53f269089e02a1d241e2a21ac7631bfa49834e",
1723
1718
  "componentPropertyDefinitions": {
1724
1719
  "Size": {
@@ -1,24 +1,3 @@
1
- export const templateBannerDetach = {
2
- "name": "templateBannerDetach",
3
- "key": "b9670e4d68d2b1057f28916728a845dc9c160c0f",
4
- "componentPropertyDefinitions": {
5
- "Layout": {
6
- "type": "VARIANT",
7
- "variantOptions": [
8
- "Title + Description",
9
- "Description + Title"
10
- ]
11
- },
12
- "Rounded": {
13
- "type": "VARIANT",
14
- "variantOptions": [
15
- "True",
16
- "False"
17
- ]
18
- }
19
- }
20
- };
21
-
22
1
  export const templateButtonGroup = {
23
2
  "name": "templateButtonGroup",
24
3
  "key": "29109a34197f2eb5d390b1d9ebba270979a7b302",
@@ -106,70 +85,18 @@ export const templateCustomPickerField = {
106
85
  }
107
86
  };
108
87
 
109
- export const templateResultSection = {
110
- "name": "templateResultSection",
111
- "key": "fabd52c41c63d921e37e0a1de373e4df2b496f30",
88
+ export const templateDisclaimer = {
89
+ "name": "templateDisclaimer",
90
+ "key": "e08d2594b76c6c0107e34c0071cab8ef844c8998",
112
91
  "componentPropertyDefinitions": {
113
- "Title#16237:0": {
114
- "type": "TEXT"
115
- },
116
- "Description#16237:5": {
117
- "type": "TEXT"
118
- },
119
- "Asset Type#45154:9": {
120
- "type": "INSTANCE_SWAP",
121
- "preferredValues": [
122
- {
123
- "type": "COMPONENT",
124
- "key": "3f2ed06bd34fbaf24d371cefa973e09e2c2572bf"
125
- },
126
- {
127
- "type": "COMPONENT",
128
- "key": "bf1ad3ad5c45a2e94fd800f7f6ecbe52ba0667ab"
129
- },
130
- {
131
- "type": "COMPONENT",
132
- "key": "d357dcf0fbff80f3bfa70fe4fd5d48a9bddd1b49"
133
- },
134
- {
135
- "type": "COMPONENT",
136
- "key": "a53df434b562c1eeb04dab9abd88431989c5fc33"
137
- },
138
- {
139
- "type": "COMPONENT",
140
- "key": "5e53811a1e1444deccb5147b6a57196a3be467c9"
141
- },
142
- {
143
- "type": "COMPONENT",
144
- "key": "3ff3999d2d2bbed2c7656210793d4f083901f73b"
145
- },
146
- {
147
- "type": "COMPONENT",
148
- "key": "56fcf964b7784ca83eaf6c9b1531de6150d23a0d"
149
- },
150
- {
151
- "type": "COMPONENT",
152
- "key": "5652618ddd66c844ab977d083d0dc41cb98f98ae"
153
- }
154
- ]
155
- },
156
- "Show Asset#45154:14": {
157
- "type": "BOOLEAN"
158
- },
159
- "Show Buttons#53435:0": {
160
- "type": "BOOLEAN"
161
- },
162
- "ㄴShow First Button#53766:0": {
163
- "type": "BOOLEAN"
164
- },
165
- "ㄴShow Second Button#53766:3": {
92
+ "Show Title#54910:2": {
166
93
  "type": "BOOLEAN"
167
94
  },
168
95
  "Size": {
169
96
  "type": "VARIANT",
170
97
  "variantOptions": [
171
- "Large",
172
- "Medium"
98
+ "t4(14pt)",
99
+ "t5(16pt)"
173
100
  ]
174
101
  }
175
102
  }
@@ -1212,17 +1139,16 @@ export const menuSheet = {
1212
1139
  "Menu Group Count": {
1213
1140
  "type": "VARIANT",
1214
1141
  "variantOptions": [
1142
+ "1",
1215
1143
  "2",
1216
- "3",
1217
- "1"
1144
+ "3"
1218
1145
  ]
1219
1146
  },
1220
1147
  "Layout": {
1221
1148
  "type": "VARIANT",
1222
1149
  "variantOptions": [
1223
1150
  "Text Only",
1224
- "Text with Icon",
1225
- "Text with Subtext"
1151
+ "Text with Icon"
1226
1152
  ]
1227
1153
  }
1228
1154
  }
@@ -1246,10 +1172,10 @@ export const pageBanner = {
1246
1172
  "type": "VARIANT",
1247
1173
  "variantOptions": [
1248
1174
  "Display",
1175
+ "Display (With Action)",
1249
1176
  "Actionable",
1250
1177
  "Dismissible",
1251
- "With Action",
1252
- "Custom"
1178
+ "Actionable (Custom)"
1253
1179
  ]
1254
1180
  },
1255
1181
  "Tone": {
@@ -1359,8 +1285,8 @@ export const radio = {
1359
1285
  }
1360
1286
  };
1361
1287
 
1362
- export const radioMark = {
1363
- "name": "radioMark",
1288
+ export const radiomark = {
1289
+ "name": "radiomark",
1364
1290
  "key": "832d696d6e9566610968cd70f128f500ec009d6a",
1365
1291
  "componentPropertyDefinitions": {
1366
1292
  "Size": {
@@ -1476,6 +1402,75 @@ export const resizableChild = {
1476
1402
  }
1477
1403
  };
1478
1404
 
1405
+ export const resultSection = {
1406
+ "name": "resultSection",
1407
+ "key": "fabd52c41c63d921e37e0a1de373e4df2b496f30",
1408
+ "componentPropertyDefinitions": {
1409
+ "Title#16237:0": {
1410
+ "type": "TEXT"
1411
+ },
1412
+ "Description#16237:5": {
1413
+ "type": "TEXT"
1414
+ },
1415
+ "Asset Type#45154:9": {
1416
+ "type": "INSTANCE_SWAP",
1417
+ "preferredValues": [
1418
+ {
1419
+ "type": "COMPONENT",
1420
+ "key": "3f2ed06bd34fbaf24d371cefa973e09e2c2572bf"
1421
+ },
1422
+ {
1423
+ "type": "COMPONENT",
1424
+ "key": "bf1ad3ad5c45a2e94fd800f7f6ecbe52ba0667ab"
1425
+ },
1426
+ {
1427
+ "type": "COMPONENT",
1428
+ "key": "d357dcf0fbff80f3bfa70fe4fd5d48a9bddd1b49"
1429
+ },
1430
+ {
1431
+ "type": "COMPONENT",
1432
+ "key": "a53df434b562c1eeb04dab9abd88431989c5fc33"
1433
+ },
1434
+ {
1435
+ "type": "COMPONENT",
1436
+ "key": "5e53811a1e1444deccb5147b6a57196a3be467c9"
1437
+ },
1438
+ {
1439
+ "type": "COMPONENT",
1440
+ "key": "3ff3999d2d2bbed2c7656210793d4f083901f73b"
1441
+ },
1442
+ {
1443
+ "type": "COMPONENT",
1444
+ "key": "56fcf964b7784ca83eaf6c9b1531de6150d23a0d"
1445
+ },
1446
+ {
1447
+ "type": "COMPONENT",
1448
+ "key": "5652618ddd66c844ab977d083d0dc41cb98f98ae"
1449
+ }
1450
+ ]
1451
+ },
1452
+ "Show Asset#45154:14": {
1453
+ "type": "BOOLEAN"
1454
+ },
1455
+ "Show Buttons#53435:0": {
1456
+ "type": "BOOLEAN"
1457
+ },
1458
+ "ㄴShow First Button#53766:0": {
1459
+ "type": "BOOLEAN"
1460
+ },
1461
+ "ㄴShow Second Button#53766:3": {
1462
+ "type": "BOOLEAN"
1463
+ },
1464
+ "Size": {
1465
+ "type": "VARIANT",
1466
+ "variantOptions": [
1467
+ "Large",
1468
+ "Medium"
1469
+ ]
1470
+ }
1471
+ }
1472
+ };
1473
+
1479
1474
  export const rootTopNavigationGlobal = {
1480
1475
  "name": "rootTopNavigationGlobal",
1481
1476
  "key": "a694a1da14a5c1d7d5c66bc78218c0c61fb388ab",
@@ -1717,8 +1712,8 @@ export const _switch = {
1717
1712
  }
1718
1713
  };
1719
1714
 
1720
- export const switchMark = {
1721
- "name": "switchMark",
1715
+ export const switchmark = {
1716
+ "name": "switchmark",
1722
1717
  "key": "bc53f269089e02a1d241e2a21ac7631bfa49834e",
1723
1718
  "componentPropertyDefinitions": {
1724
1719
  "Size": {
@@ -27,10 +27,10 @@ export declare const templateResultPage: {
27
27
  "name": "templateResultPage",
28
28
  "key": "88ff5d153a95a2532925b191960d3401d5fd94a6",
29
29
  "componentPropertyDefinitions": {
30
- "Show Top Navigation#28427:3": {
30
+ "Show Top Navigation#56814:4": {
31
31
  "type": "BOOLEAN"
32
32
  },
33
- "Show Bottom Action Bar#44990:7": {
33
+ "Show Bottom Action Bar#56814:6": {
34
34
  "type": "BOOLEAN"
35
35
  }
36
36
  }
@@ -27,10 +27,10 @@ export const templateResultPage = {
27
27
  "name": "templateResultPage",
28
28
  "key": "88ff5d153a95a2532925b191960d3401d5fd94a6",
29
29
  "componentPropertyDefinitions": {
30
- "Show Top Navigation#28427:3": {
30
+ "Show Top Navigation#56814:4": {
31
31
  "type": "BOOLEAN"
32
32
  },
33
- "Show Bottom Action Bar#44990:7": {
33
+ "Show Bottom Action Bar#56814:6": {
34
34
  "type": "BOOLEAN"
35
35
  }
36
36
  }
@@ -1639,6 +1639,16 @@ export const FIGMA_ICONS = {
1639
1639
  "type": "monochrome",
1640
1640
  "weight": "Line"
1641
1641
  },
1642
+ "27885dd88c45e55e1ce6790b6517b663fbc89286": {
1643
+ "name": "icon_keyhole_shield",
1644
+ "type": "monochrome",
1645
+ "weight": "Fill"
1646
+ },
1647
+ "2111483a75d693815d578415279d077e66412da1": {
1648
+ "name": "icon_keyhole_shield",
1649
+ "type": "monochrome",
1650
+ "weight": "Line"
1651
+ },
1642
1652
  "fe92b27029511a3fa4745e4d49cba81ee303cf48": {
1643
1653
  "name": "icon_laptop",
1644
1654
  "type": "monochrome",
@@ -3379,6 +3389,10 @@ export const FIGMA_ICONS = {
3379
3389
  "name": "icon_tshirt_bubble2",
3380
3390
  "type": "multicolor"
3381
3391
  },
3392
+ "ab66ee11be5539d340a87f1e9ca021fef1db3ef8": {
3393
+ "name": "icon_vest_horizstripe",
3394
+ "type": "multicolor"
3395
+ },
3382
3396
  "7ddb6f0f63708485a75cb21a25fae01671a34562": {
3383
3397
  "name": "icon_warninglight",
3384
3398
  "type": "multicolor"