@echelon-foundry/design-system 0.3.0 → 0.4.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/README.md +29 -0
- package/contracts/diagram-presentation.json +109 -0
- package/contracts/workflow-capabilities.json +25 -0
- package/dist/all.css +175 -3
- package/dist/build-metrics.json +32 -4
- package/dist/components.css +173 -3
- package/dist/foundations.css +2 -0
- package/dist/marketing/forma-all.css +176 -4
- package/dist/marketing/forma-echelon-marketing.css +3 -1
- package/dist/marketing/forma-marketing-theme-echelon.css +1 -1
- package/dist/marketing/forma-marketing.css +3 -1
- package/dist/marketing/forma-marketing.manifest.json +9 -9
- package/dist/marketing/forma-marketing.sha256 +4 -4
- package/dist/patterns/bounded-overflow.html +9 -0
- package/dist/patterns/button.html +5 -0
- package/dist/patterns/container.html +6 -0
- package/dist/patterns/date-time-field.html +5 -0
- package/dist/patterns/grid.html +5 -0
- package/dist/patterns/image-choice.html +2 -2
- package/dist/patterns/key-value-list.html +5 -0
- package/dist/patterns/section.html +4 -0
- package/dist/patterns/skip-link.html +6 -0
- package/dist/patterns/split.html +12 -0
- package/dist/patterns/surface.html +4 -0
- package/dist/patterns/text-field.html +5 -0
- package/dist/patterns/text-roles.html +7 -0
- package/dist/patterns/textarea.html +5 -0
- package/dist/patterns/visually-hidden.html +4 -0
- package/docs/MARKETING-SITES.md +1 -1
- package/docs/workflow/EMBEDDING.md +148 -0
- package/docs/workflow/EXTERNAL-PRODUCERS.md +34 -0
- package/docs/workflow/FORMAT.md +196 -0
- package/docs/workflow/RENDERING.md +90 -0
- package/docs/workflow/REQUIREMENTS-AUDIT-2026-10-01.md +55 -0
- package/docs/workflow/VALIDATION.md +91 -0
- package/examples/workflows/fixtures.json +101 -0
- package/examples/workflows/forma/workflows/accessible.forma-workflow.json +90 -0
- package/examples/workflows/forma/workflows/branching.forma-workflow.json +91 -0
- package/examples/workflows/forma/workflows/branded.forma-workflow.json +85 -0
- package/examples/workflows/forma/workflows/color-mapping.forma-workflow.json +111 -0
- package/examples/workflows/forma/workflows/colored.forma-workflow.json +131 -0
- package/examples/workflows/forma/workflows/edge-metadata.forma-workflow.json +66 -0
- package/examples/workflows/forma/workflows/embedded-edit.forma-workflow.json +117 -0
- package/examples/workflows/forma/workflows/embedded-view.forma-workflow.json +93 -0
- package/examples/workflows/forma/workflows/extensions.forma-workflow.json +90 -0
- package/examples/workflows/forma/workflows/groups.forma-workflow.json +89 -0
- package/examples/workflows/forma/workflows/interactive-export.forma-workflow.json +62 -0
- package/examples/workflows/forma/workflows/minimal.forma-workflow.json +17 -0
- package/examples/workflows/forma/workflows/mobile.forma-workflow.json +80 -0
- package/examples/workflows/forma/workflows/multi-step.forma-workflow.json +82 -0
- package/examples/workflows/forma/workflows/no-layout.forma-workflow.json +90 -0
- package/examples/workflows/forma/workflows/node-metadata.forma-workflow.json +80 -0
- package/examples/workflows/forma/workflows/runtime-ports.forma-workflow.json +118 -0
- package/examples/workflows/forma/workflows/static-export.forma-workflow.json +77 -0
- package/examples/workflows/forma/workflows/swimlanes.forma-workflow.json +130 -0
- package/figma/component-contracts.json +140 -0
- package/package.json +28 -9
- package/patterns/bounded-overflow.html +9 -0
- package/patterns/button.html +5 -0
- package/patterns/container.html +6 -0
- package/patterns/date-time-field.html +5 -0
- package/patterns/grid.html +5 -0
- package/patterns/image-choice.html +2 -2
- package/patterns/key-value-list.html +5 -0
- package/patterns/section.html +4 -0
- package/patterns/skip-link.html +6 -0
- package/patterns/split.html +12 -0
- package/patterns/surface.html +4 -0
- package/patterns/text-field.html +5 -0
- package/patterns/text-roles.html +7 -0
- package/patterns/textarea.html +5 -0
- package/patterns/visually-hidden.html +4 -0
- package/schemas/workflow/1.0/forma-workflow.schema.json +1045 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://forma.echelonfoundry.com/schemas/workflow/1.0/forma-workflow.schema.json",
|
|
3
|
+
"format": "forma-workflow",
|
|
4
|
+
"formatVersion": "1.0.0",
|
|
5
|
+
"id": "no-layout",
|
|
6
|
+
"title": "Crew readiness",
|
|
7
|
+
"description": "Produced without any coordinates; Forma applies its deterministic default layout.",
|
|
8
|
+
"forma": {
|
|
9
|
+
"version": "0.4.0"
|
|
10
|
+
},
|
|
11
|
+
"nodes": [
|
|
12
|
+
{
|
|
13
|
+
"id": "medical",
|
|
14
|
+
"kind": "task",
|
|
15
|
+
"label": "Medical clearance"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "training",
|
|
19
|
+
"kind": "task",
|
|
20
|
+
"label": "Training sign-off"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "suits",
|
|
24
|
+
"kind": "task",
|
|
25
|
+
"label": "Suit fit check"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "merge",
|
|
29
|
+
"kind": "merge",
|
|
30
|
+
"label": "All checks complete"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "board",
|
|
34
|
+
"kind": "task",
|
|
35
|
+
"label": "Crew readiness board"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "ready",
|
|
39
|
+
"kind": "end",
|
|
40
|
+
"label": "Crew ready"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"edges": [
|
|
44
|
+
{
|
|
45
|
+
"id": "n1",
|
|
46
|
+
"source": {
|
|
47
|
+
"node": "medical"
|
|
48
|
+
},
|
|
49
|
+
"target": {
|
|
50
|
+
"node": "merge"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "n2",
|
|
55
|
+
"source": {
|
|
56
|
+
"node": "training"
|
|
57
|
+
},
|
|
58
|
+
"target": {
|
|
59
|
+
"node": "merge"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "n3",
|
|
64
|
+
"source": {
|
|
65
|
+
"node": "suits"
|
|
66
|
+
},
|
|
67
|
+
"target": {
|
|
68
|
+
"node": "merge"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "n4",
|
|
73
|
+
"source": {
|
|
74
|
+
"node": "merge"
|
|
75
|
+
},
|
|
76
|
+
"target": {
|
|
77
|
+
"node": "board"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "n5",
|
|
82
|
+
"source": {
|
|
83
|
+
"node": "board"
|
|
84
|
+
},
|
|
85
|
+
"target": {
|
|
86
|
+
"node": "ready"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://forma.echelonfoundry.com/schemas/workflow/1.0/forma-workflow.schema.json",
|
|
3
|
+
"format": "forma-workflow",
|
|
4
|
+
"formatVersion": "1.0.0",
|
|
5
|
+
"id": "node-metadata",
|
|
6
|
+
"title": "Flight software release",
|
|
7
|
+
"forma": {
|
|
8
|
+
"version": "0.4.0"
|
|
9
|
+
},
|
|
10
|
+
"metadata": {
|
|
11
|
+
"program": "Example mission",
|
|
12
|
+
"classification": "public",
|
|
13
|
+
"revision": 3
|
|
14
|
+
},
|
|
15
|
+
"nodes": [
|
|
16
|
+
{
|
|
17
|
+
"id": "build",
|
|
18
|
+
"kind": "task",
|
|
19
|
+
"label": "Build flight software",
|
|
20
|
+
"metadata": {
|
|
21
|
+
"owner": "FSW team",
|
|
22
|
+
"buildNumber": 4127,
|
|
23
|
+
"requirements": [
|
|
24
|
+
"FSW-12",
|
|
25
|
+
"FSW-31"
|
|
26
|
+
],
|
|
27
|
+
"verified": true,
|
|
28
|
+
"thresholds": {
|
|
29
|
+
"cpu": 0.7,
|
|
30
|
+
"memory": 0.8
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "qualify",
|
|
36
|
+
"kind": "task",
|
|
37
|
+
"label": "Qualification test",
|
|
38
|
+
"metadata": {
|
|
39
|
+
"owner": "V&V",
|
|
40
|
+
"procedure": "QT-0042",
|
|
41
|
+
"estimateHours": 36.5
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "release",
|
|
46
|
+
"kind": "end",
|
|
47
|
+
"label": "Release to mission",
|
|
48
|
+
"references": [
|
|
49
|
+
{
|
|
50
|
+
"id": "cr",
|
|
51
|
+
"system": "gov.nasa.example.config",
|
|
52
|
+
"type": "Change request",
|
|
53
|
+
"key": "CR-2291",
|
|
54
|
+
"label": "Change request CR-2291",
|
|
55
|
+
"href": "https://example.org/cr/2291"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"edges": [
|
|
61
|
+
{
|
|
62
|
+
"id": "m1",
|
|
63
|
+
"source": {
|
|
64
|
+
"node": "build"
|
|
65
|
+
},
|
|
66
|
+
"target": {
|
|
67
|
+
"node": "qualify"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "m2",
|
|
72
|
+
"source": {
|
|
73
|
+
"node": "qualify"
|
|
74
|
+
},
|
|
75
|
+
"target": {
|
|
76
|
+
"node": "release"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://forma.echelonfoundry.com/schemas/workflow/1.0/forma-workflow.schema.json",
|
|
3
|
+
"format": "forma-workflow",
|
|
4
|
+
"formatVersion": "1.0.0",
|
|
5
|
+
"id": "runtime-ports",
|
|
6
|
+
"title": "Propellant loading",
|
|
7
|
+
"forma": {
|
|
8
|
+
"version": "0.4.0"
|
|
9
|
+
},
|
|
10
|
+
"nodes": [
|
|
11
|
+
{
|
|
12
|
+
"id": "tank",
|
|
13
|
+
"kind": "data",
|
|
14
|
+
"label": "Propellant tank",
|
|
15
|
+
"ports": [
|
|
16
|
+
{
|
|
17
|
+
"id": "fill",
|
|
18
|
+
"side": "left",
|
|
19
|
+
"direction": "in",
|
|
20
|
+
"maxConnections": 1
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "vent",
|
|
24
|
+
"side": "top",
|
|
25
|
+
"direction": "out"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "feed",
|
|
29
|
+
"side": "right",
|
|
30
|
+
"direction": "out"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"status": {
|
|
34
|
+
"state": "active",
|
|
35
|
+
"label": "Filling"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "supply",
|
|
40
|
+
"kind": "external",
|
|
41
|
+
"label": "Ground supply",
|
|
42
|
+
"ports": [
|
|
43
|
+
{
|
|
44
|
+
"id": "out",
|
|
45
|
+
"side": "right",
|
|
46
|
+
"direction": "out"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"status": {
|
|
50
|
+
"state": "complete",
|
|
51
|
+
"label": "Connected"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "engine",
|
|
56
|
+
"kind": "task",
|
|
57
|
+
"label": "Engine chill-down",
|
|
58
|
+
"ports": [
|
|
59
|
+
{
|
|
60
|
+
"id": "in",
|
|
61
|
+
"side": "left",
|
|
62
|
+
"direction": "in"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"status": {
|
|
66
|
+
"state": "blocked",
|
|
67
|
+
"label": "Waiting for temperature"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "vent",
|
|
72
|
+
"kind": "task",
|
|
73
|
+
"label": "Boil-off vent",
|
|
74
|
+
"status": {
|
|
75
|
+
"state": "gov.nasa.example.ops:monitoring",
|
|
76
|
+
"label": "Monitoring"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"edges": [
|
|
81
|
+
{
|
|
82
|
+
"id": "r1",
|
|
83
|
+
"source": {
|
|
84
|
+
"node": "supply",
|
|
85
|
+
"port": "out"
|
|
86
|
+
},
|
|
87
|
+
"target": {
|
|
88
|
+
"node": "tank",
|
|
89
|
+
"port": "fill"
|
|
90
|
+
},
|
|
91
|
+
"label": "LOX fill"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "r2",
|
|
95
|
+
"source": {
|
|
96
|
+
"node": "tank",
|
|
97
|
+
"port": "feed"
|
|
98
|
+
},
|
|
99
|
+
"target": {
|
|
100
|
+
"node": "engine",
|
|
101
|
+
"port": "in"
|
|
102
|
+
},
|
|
103
|
+
"label": "Feed"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "r3",
|
|
107
|
+
"source": {
|
|
108
|
+
"node": "tank",
|
|
109
|
+
"port": "vent"
|
|
110
|
+
},
|
|
111
|
+
"target": {
|
|
112
|
+
"node": "vent"
|
|
113
|
+
},
|
|
114
|
+
"label": "Vent",
|
|
115
|
+
"line": "dotted"
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://forma.echelonfoundry.com/schemas/workflow/1.0/forma-workflow.schema.json",
|
|
3
|
+
"format": "forma-workflow",
|
|
4
|
+
"formatVersion": "1.0.0",
|
|
5
|
+
"id": "static-export",
|
|
6
|
+
"title": "Static export reference",
|
|
7
|
+
"forma": {
|
|
8
|
+
"version": "0.4.0"
|
|
9
|
+
},
|
|
10
|
+
"nodes": [
|
|
11
|
+
{
|
|
12
|
+
"id": "a",
|
|
13
|
+
"kind": "start",
|
|
14
|
+
"label": "Request",
|
|
15
|
+
"layout": {
|
|
16
|
+
"x": 24,
|
|
17
|
+
"y": 24,
|
|
18
|
+
"width": 200,
|
|
19
|
+
"height": 72
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "b",
|
|
24
|
+
"kind": "task",
|
|
25
|
+
"label": "Review",
|
|
26
|
+
"status": {
|
|
27
|
+
"state": "active"
|
|
28
|
+
},
|
|
29
|
+
"layout": {
|
|
30
|
+
"x": 320,
|
|
31
|
+
"y": 24,
|
|
32
|
+
"width": 200,
|
|
33
|
+
"height": 96
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "c",
|
|
38
|
+
"kind": "end",
|
|
39
|
+
"label": "Done",
|
|
40
|
+
"layout": {
|
|
41
|
+
"x": 616,
|
|
42
|
+
"y": 24,
|
|
43
|
+
"width": 200,
|
|
44
|
+
"height": 72
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"edges": [
|
|
49
|
+
{
|
|
50
|
+
"id": "s1",
|
|
51
|
+
"source": {
|
|
52
|
+
"node": "a"
|
|
53
|
+
},
|
|
54
|
+
"target": {
|
|
55
|
+
"node": "b"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "s2",
|
|
60
|
+
"source": {
|
|
61
|
+
"node": "b"
|
|
62
|
+
},
|
|
63
|
+
"target": {
|
|
64
|
+
"node": "c"
|
|
65
|
+
},
|
|
66
|
+
"label": "Approved"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"layout": {
|
|
70
|
+
"direction": "right",
|
|
71
|
+
"mode": "authored",
|
|
72
|
+
"canvas": {
|
|
73
|
+
"width": 840,
|
|
74
|
+
"height": 144
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://forma.echelonfoundry.com/schemas/workflow/1.0/forma-workflow.schema.json",
|
|
3
|
+
"format": "forma-workflow",
|
|
4
|
+
"formatVersion": "1.0.0",
|
|
5
|
+
"id": "swimlanes",
|
|
6
|
+
"title": "Anomaly response",
|
|
7
|
+
"forma": {
|
|
8
|
+
"version": "0.4.0"
|
|
9
|
+
},
|
|
10
|
+
"nodes": [
|
|
11
|
+
{
|
|
12
|
+
"id": "detect",
|
|
13
|
+
"kind": "event",
|
|
14
|
+
"label": "Telemetry anomaly"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "triage",
|
|
18
|
+
"kind": "task",
|
|
19
|
+
"label": "Triage the anomaly"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "decide",
|
|
23
|
+
"kind": "decision",
|
|
24
|
+
"label": "Safe to continue?"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "safe",
|
|
28
|
+
"kind": "task",
|
|
29
|
+
"label": "Command safe mode"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "continue",
|
|
33
|
+
"kind": "end",
|
|
34
|
+
"label": "Resume nominal operations"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "review",
|
|
38
|
+
"kind": "task",
|
|
39
|
+
"label": "Engineering review"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"edges": [
|
|
43
|
+
{
|
|
44
|
+
"id": "s1",
|
|
45
|
+
"source": {
|
|
46
|
+
"node": "detect"
|
|
47
|
+
},
|
|
48
|
+
"target": {
|
|
49
|
+
"node": "triage"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "s2",
|
|
54
|
+
"source": {
|
|
55
|
+
"node": "triage"
|
|
56
|
+
},
|
|
57
|
+
"target": {
|
|
58
|
+
"node": "decide"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "s3",
|
|
63
|
+
"source": {
|
|
64
|
+
"node": "decide"
|
|
65
|
+
},
|
|
66
|
+
"target": {
|
|
67
|
+
"node": "continue"
|
|
68
|
+
},
|
|
69
|
+
"label": "Yes"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "s4",
|
|
73
|
+
"source": {
|
|
74
|
+
"node": "decide"
|
|
75
|
+
},
|
|
76
|
+
"target": {
|
|
77
|
+
"node": "safe"
|
|
78
|
+
},
|
|
79
|
+
"label": "No"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "s5",
|
|
83
|
+
"source": {
|
|
84
|
+
"node": "safe"
|
|
85
|
+
},
|
|
86
|
+
"target": {
|
|
87
|
+
"node": "review"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"groups": [
|
|
92
|
+
{
|
|
93
|
+
"id": "flight",
|
|
94
|
+
"kind": "swimlane",
|
|
95
|
+
"label": "Flight control",
|
|
96
|
+
"members": [
|
|
97
|
+
"detect",
|
|
98
|
+
"triage",
|
|
99
|
+
"decide",
|
|
100
|
+
"continue"
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "spacecraft",
|
|
105
|
+
"kind": "swimlane",
|
|
106
|
+
"label": "Spacecraft",
|
|
107
|
+
"members": [
|
|
108
|
+
"safe"
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "engineering",
|
|
113
|
+
"kind": "swimlane",
|
|
114
|
+
"label": "Engineering",
|
|
115
|
+
"members": [
|
|
116
|
+
"review"
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "response",
|
|
121
|
+
"kind": "phase",
|
|
122
|
+
"label": "Response phase",
|
|
123
|
+
"members": [
|
|
124
|
+
"triage",
|
|
125
|
+
"decide",
|
|
126
|
+
"safe"
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
@@ -100,6 +100,26 @@
|
|
|
100
100
|
"status": "requires-published-figma-component"
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
|
+
{
|
|
104
|
+
"id": "bounded-overflow",
|
|
105
|
+
"figmaName": "Forma / Bounded Overflow",
|
|
106
|
+
"source": "patterns/bounded-overflow.html",
|
|
107
|
+
"codeConnect": {
|
|
108
|
+
"id": "Forma/bounded-overflow",
|
|
109
|
+
"nodeUrl": null,
|
|
110
|
+
"status": "requires-published-figma-component"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "button",
|
|
115
|
+
"figmaName": "Forma / Button",
|
|
116
|
+
"source": "patterns/button.html",
|
|
117
|
+
"codeConnect": {
|
|
118
|
+
"id": "Forma/button",
|
|
119
|
+
"nodeUrl": null,
|
|
120
|
+
"status": "requires-published-figma-component"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
103
123
|
{
|
|
104
124
|
"id": "callout",
|
|
105
125
|
"figmaName": "Forma / Callout",
|
|
@@ -320,6 +340,16 @@
|
|
|
320
340
|
"status": "requires-published-figma-component"
|
|
321
341
|
}
|
|
322
342
|
},
|
|
343
|
+
{
|
|
344
|
+
"id": "container",
|
|
345
|
+
"figmaName": "Forma / Container",
|
|
346
|
+
"source": "patterns/container.html",
|
|
347
|
+
"codeConnect": {
|
|
348
|
+
"id": "Forma/container",
|
|
349
|
+
"nodeUrl": null,
|
|
350
|
+
"status": "requires-published-figma-component"
|
|
351
|
+
}
|
|
352
|
+
},
|
|
323
353
|
{
|
|
324
354
|
"id": "conversation",
|
|
325
355
|
"figmaName": "Forma / Conversation",
|
|
@@ -370,6 +400,16 @@
|
|
|
370
400
|
"status": "requires-published-figma-component"
|
|
371
401
|
}
|
|
372
402
|
},
|
|
403
|
+
{
|
|
404
|
+
"id": "date-time-field",
|
|
405
|
+
"figmaName": "Forma / Date Time Field",
|
|
406
|
+
"source": "patterns/date-time-field.html",
|
|
407
|
+
"codeConnect": {
|
|
408
|
+
"id": "Forma/date-time-field",
|
|
409
|
+
"nodeUrl": null,
|
|
410
|
+
"status": "requires-published-figma-component"
|
|
411
|
+
}
|
|
412
|
+
},
|
|
373
413
|
{
|
|
374
414
|
"id": "dense-ledger",
|
|
375
415
|
"figmaName": "Forma / Dense Ledger",
|
|
@@ -630,6 +670,16 @@
|
|
|
630
670
|
"status": "requires-published-figma-component"
|
|
631
671
|
}
|
|
632
672
|
},
|
|
673
|
+
{
|
|
674
|
+
"id": "grid",
|
|
675
|
+
"figmaName": "Forma / Grid",
|
|
676
|
+
"source": "patterns/grid.html",
|
|
677
|
+
"codeConnect": {
|
|
678
|
+
"id": "Forma/grid",
|
|
679
|
+
"nodeUrl": null,
|
|
680
|
+
"status": "requires-published-figma-component"
|
|
681
|
+
}
|
|
682
|
+
},
|
|
633
683
|
{
|
|
634
684
|
"id": "handoff-summary",
|
|
635
685
|
"figmaName": "Forma / Handoff Summary",
|
|
@@ -700,6 +750,16 @@
|
|
|
700
750
|
"status": "requires-published-figma-component"
|
|
701
751
|
}
|
|
702
752
|
},
|
|
753
|
+
{
|
|
754
|
+
"id": "key-value-list",
|
|
755
|
+
"figmaName": "Forma / Key Value List",
|
|
756
|
+
"source": "patterns/key-value-list.html",
|
|
757
|
+
"codeConnect": {
|
|
758
|
+
"id": "Forma/key-value-list",
|
|
759
|
+
"nodeUrl": null,
|
|
760
|
+
"status": "requires-published-figma-component"
|
|
761
|
+
}
|
|
762
|
+
},
|
|
703
763
|
{
|
|
704
764
|
"id": "landmark-region",
|
|
705
765
|
"figmaName": "Forma / Landmark Region",
|
|
@@ -1130,6 +1190,16 @@
|
|
|
1130
1190
|
"status": "requires-published-figma-component"
|
|
1131
1191
|
}
|
|
1132
1192
|
},
|
|
1193
|
+
{
|
|
1194
|
+
"id": "section",
|
|
1195
|
+
"figmaName": "Forma / Section",
|
|
1196
|
+
"source": "patterns/section.html",
|
|
1197
|
+
"codeConnect": {
|
|
1198
|
+
"id": "Forma/section",
|
|
1199
|
+
"nodeUrl": null,
|
|
1200
|
+
"status": "requires-published-figma-component"
|
|
1201
|
+
}
|
|
1202
|
+
},
|
|
1133
1203
|
{
|
|
1134
1204
|
"id": "section-heading",
|
|
1135
1205
|
"figmaName": "Forma / Section Heading",
|
|
@@ -1300,6 +1370,16 @@
|
|
|
1300
1370
|
"status": "requires-published-figma-component"
|
|
1301
1371
|
}
|
|
1302
1372
|
},
|
|
1373
|
+
{
|
|
1374
|
+
"id": "skip-link",
|
|
1375
|
+
"figmaName": "Forma / Skip Link",
|
|
1376
|
+
"source": "patterns/skip-link.html",
|
|
1377
|
+
"codeConnect": {
|
|
1378
|
+
"id": "Forma/skip-link",
|
|
1379
|
+
"nodeUrl": null,
|
|
1380
|
+
"status": "requires-published-figma-component"
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1303
1383
|
{
|
|
1304
1384
|
"id": "slider",
|
|
1305
1385
|
"figmaName": "Forma / Slider",
|
|
@@ -1340,6 +1420,16 @@
|
|
|
1340
1420
|
"status": "requires-published-figma-component"
|
|
1341
1421
|
}
|
|
1342
1422
|
},
|
|
1423
|
+
{
|
|
1424
|
+
"id": "split",
|
|
1425
|
+
"figmaName": "Forma / Split",
|
|
1426
|
+
"source": "patterns/split.html",
|
|
1427
|
+
"codeConnect": {
|
|
1428
|
+
"id": "Forma/split",
|
|
1429
|
+
"nodeUrl": null,
|
|
1430
|
+
"status": "requires-published-figma-component"
|
|
1431
|
+
}
|
|
1432
|
+
},
|
|
1343
1433
|
{
|
|
1344
1434
|
"id": "split-pane",
|
|
1345
1435
|
"figmaName": "Forma / Split Pane",
|
|
@@ -1390,6 +1480,16 @@
|
|
|
1390
1480
|
"status": "requires-published-figma-component"
|
|
1391
1481
|
}
|
|
1392
1482
|
},
|
|
1483
|
+
{
|
|
1484
|
+
"id": "surface",
|
|
1485
|
+
"figmaName": "Forma / Surface",
|
|
1486
|
+
"source": "patterns/surface.html",
|
|
1487
|
+
"codeConnect": {
|
|
1488
|
+
"id": "Forma/surface",
|
|
1489
|
+
"nodeUrl": null,
|
|
1490
|
+
"status": "requires-published-figma-component"
|
|
1491
|
+
}
|
|
1492
|
+
},
|
|
1393
1493
|
{
|
|
1394
1494
|
"id": "survey-progress",
|
|
1395
1495
|
"figmaName": "Forma / Survey Progress",
|
|
@@ -1440,6 +1540,36 @@
|
|
|
1440
1540
|
"status": "requires-published-figma-component"
|
|
1441
1541
|
}
|
|
1442
1542
|
},
|
|
1543
|
+
{
|
|
1544
|
+
"id": "text-field",
|
|
1545
|
+
"figmaName": "Forma / Text Field",
|
|
1546
|
+
"source": "patterns/text-field.html",
|
|
1547
|
+
"codeConnect": {
|
|
1548
|
+
"id": "Forma/text-field",
|
|
1549
|
+
"nodeUrl": null,
|
|
1550
|
+
"status": "requires-published-figma-component"
|
|
1551
|
+
}
|
|
1552
|
+
},
|
|
1553
|
+
{
|
|
1554
|
+
"id": "text-roles",
|
|
1555
|
+
"figmaName": "Forma / Text Roles",
|
|
1556
|
+
"source": "patterns/text-roles.html",
|
|
1557
|
+
"codeConnect": {
|
|
1558
|
+
"id": "Forma/text-roles",
|
|
1559
|
+
"nodeUrl": null,
|
|
1560
|
+
"status": "requires-published-figma-component"
|
|
1561
|
+
}
|
|
1562
|
+
},
|
|
1563
|
+
{
|
|
1564
|
+
"id": "textarea",
|
|
1565
|
+
"figmaName": "Forma / Textarea",
|
|
1566
|
+
"source": "patterns/textarea.html",
|
|
1567
|
+
"codeConnect": {
|
|
1568
|
+
"id": "Forma/textarea",
|
|
1569
|
+
"nodeUrl": null,
|
|
1570
|
+
"status": "requires-published-figma-component"
|
|
1571
|
+
}
|
|
1572
|
+
},
|
|
1443
1573
|
{
|
|
1444
1574
|
"id": "timeline",
|
|
1445
1575
|
"figmaName": "Forma / Timeline",
|
|
@@ -1510,6 +1640,16 @@
|
|
|
1510
1640
|
"status": "requires-published-figma-component"
|
|
1511
1641
|
}
|
|
1512
1642
|
},
|
|
1643
|
+
{
|
|
1644
|
+
"id": "visually-hidden",
|
|
1645
|
+
"figmaName": "Forma / Visually Hidden",
|
|
1646
|
+
"source": "patterns/visually-hidden.html",
|
|
1647
|
+
"codeConnect": {
|
|
1648
|
+
"id": "Forma/visually-hidden",
|
|
1649
|
+
"nodeUrl": null,
|
|
1650
|
+
"status": "requires-published-figma-component"
|
|
1651
|
+
}
|
|
1652
|
+
},
|
|
1513
1653
|
{
|
|
1514
1654
|
"id": "wizard",
|
|
1515
1655
|
"figmaName": "Forma / Wizard",
|