@adobe/design-data-spec 0.3.0 → 0.5.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.
Files changed (92) hide show
  1. package/components/accordion.json +517 -0
  2. package/components/action-bar.json +203 -0
  3. package/components/action-button.json +481 -0
  4. package/components/action-group.json +82 -0
  5. package/components/alert-banner.json +111 -0
  6. package/components/alert-dialog.json +152 -0
  7. package/components/avatar-group.json +140 -0
  8. package/components/avatar.json +184 -0
  9. package/components/badge.json +502 -0
  10. package/components/body.json +29 -0
  11. package/components/bottom-navigation-android.json +41 -0
  12. package/components/breadcrumbs.json +263 -0
  13. package/components/button-group.json +47 -0
  14. package/components/button.json +466 -8
  15. package/components/calendar.json +104 -0
  16. package/components/cards.json +512 -0
  17. package/components/checkbox-group.json +54 -0
  18. package/components/checkbox.json +303 -0
  19. package/components/close-button.json +170 -0
  20. package/components/coach-indicator.json +76 -0
  21. package/components/coach-mark.json +157 -0
  22. package/components/code.json +25 -0
  23. package/components/color-area.json +115 -0
  24. package/components/color-handle.json +85 -0
  25. package/components/color-loupe.json +74 -0
  26. package/components/color-slider.json +121 -0
  27. package/components/color-wheel.json +94 -0
  28. package/components/combo-box.json +480 -0
  29. package/components/contextual-help.json +162 -0
  30. package/components/date-picker.json +439 -0
  31. package/components/detail.json +30 -0
  32. package/components/divider.json +73 -0
  33. package/components/drop-zone.json +211 -0
  34. package/components/field-label.json +189 -0
  35. package/components/heading.json +33 -0
  36. package/components/help-text.json +186 -0
  37. package/components/illustrated-message.json +155 -0
  38. package/components/in-field-progress-button.json +44 -0
  39. package/components/in-field-progress-circle.json +80 -0
  40. package/components/in-line-alert.json +201 -0
  41. package/components/link.json +135 -0
  42. package/components/list-view.json +355 -0
  43. package/components/menu.json +542 -0
  44. package/components/meter.json +162 -0
  45. package/components/number-field.json +468 -0
  46. package/components/opacity-checkerboard.json +43 -0
  47. package/components/picker.json +522 -0
  48. package/components/popover.json +119 -0
  49. package/components/progress-bar.json +182 -0
  50. package/components/progress-circle.json +99 -0
  51. package/components/radio-button.json +285 -0
  52. package/components/radio-group.json +63 -0
  53. package/components/rating.json +145 -0
  54. package/components/scroll-zoom-bar.json +53 -0
  55. package/components/search-field.json +306 -0
  56. package/components/segmented-control.json +210 -0
  57. package/components/select-box.json +248 -0
  58. package/components/side-navigation.json +293 -0
  59. package/components/slider.json +370 -0
  60. package/components/standard-dialog.json +151 -0
  61. package/components/standard-panel.json +53 -0
  62. package/components/status-light.json +272 -0
  63. package/components/steplist.json +270 -0
  64. package/components/swatch-group.json +62 -0
  65. package/components/swatch.json +193 -0
  66. package/components/switch.json +305 -0
  67. package/components/tab-bar-ios.json +41 -0
  68. package/components/table.json +392 -0
  69. package/components/tabs.json +229 -0
  70. package/components/tag-field.json +203 -0
  71. package/components/tag-group.json +53 -0
  72. package/components/tag.json +376 -0
  73. package/components/takeover-dialog.json +92 -0
  74. package/components/text-area.json +485 -0
  75. package/components/text-field.json +501 -0
  76. package/components/thumbnail.json +109 -0
  77. package/components/title.json +39 -0
  78. package/components/toast.json +131 -0
  79. package/components/tooltip.json +140 -0
  80. package/components/tray.json +21 -0
  81. package/components/tree-view.json +341 -0
  82. package/conformance/invalid/SPEC-027/dataset.json +25 -0
  83. package/conformance/invalid/SPEC-027/expected-errors.json +10 -0
  84. package/conformance/valid/token-bindings.json +27 -0
  85. package/package.json +2 -1
  86. package/rules/rules.yaml +9 -0
  87. package/schemas/component.schema.json +24 -2
  88. package/schemas/token.schema.json +27 -0
  89. package/spec/agent-surface.md +39 -9
  90. package/spec/component-format.md +41 -16
  91. package/spec/token-format.md +18 -0
  92. package/src/validate.js +27 -3
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component.schema.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/components/action-group.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "action-group",
6
+ "displayName": "Action group",
7
+ "description": "An action group is a grouping of action buttons that are related to each other.",
8
+ "meta": {
9
+ "category": "actions",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/action-group/"
11
+ },
12
+ "options": {
13
+ "orientation": {
14
+ "type": "string",
15
+ "enum": ["horizontal", "vertical"],
16
+ "default": "horizontal"
17
+ },
18
+ "size": {
19
+ "type": "string",
20
+ "enum": ["s", "m", "l", "xl"],
21
+ "default": "m"
22
+ },
23
+ "density": {
24
+ "type": "string",
25
+ "enum": ["regular", "compact"],
26
+ "default": "regular"
27
+ },
28
+ "isJustified": {
29
+ "type": "boolean",
30
+ "default": false
31
+ },
32
+ "isQuiet": {
33
+ "type": "boolean",
34
+ "default": false
35
+ },
36
+ "isEmphasized": {
37
+ "type": "boolean",
38
+ "default": false
39
+ },
40
+ "enableSelection": {
41
+ "type": "boolean",
42
+ "default": false
43
+ },
44
+ "selectionMode": {
45
+ "type": "string",
46
+ "enum": ["single", "multiple"],
47
+ "default": "single",
48
+ "description": "Only applicable if selection is enabled"
49
+ },
50
+ "allowsEmptySelection": {
51
+ "type": "boolean",
52
+ "default": false,
53
+ "description": "Only applicable if selection is enabled"
54
+ },
55
+ "overflowMode": {
56
+ "type": "string",
57
+ "enum": ["wrap", "collapse"],
58
+ "default": "wrap"
59
+ },
60
+ "isDisabled": {
61
+ "type": "boolean",
62
+ "default": false
63
+ }
64
+ },
65
+ "lifecycle": {
66
+ "introduced": "1.0.0-draft"
67
+ },
68
+ "tokenBindings": [
69
+ {
70
+ "token": "spacing-75",
71
+ "context": "Spacing (horizontal, regular)"
72
+ },
73
+ {
74
+ "token": "spacing-100",
75
+ "context": "Spacing (horizontal, regular)"
76
+ },
77
+ {
78
+ "token": "spacing-50",
79
+ "context": "Spacing (horizontal, compact)"
80
+ }
81
+ ]
82
+ }
@@ -0,0 +1,111 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component.schema.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/components/alert-banner.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "alert-banner",
6
+ "displayName": "Alert banner",
7
+ "description": "Alert banners show pressing and high-signal messages, such as system alerts. They're meant to be noticed and prompt users to take action.",
8
+ "meta": {
9
+ "category": "feedback",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/alert-banner/"
11
+ },
12
+ "options": {
13
+ "text": {
14
+ "type": "string"
15
+ },
16
+ "variant": {
17
+ "type": "string",
18
+ "enum": ["neutral", "informative", "negative", "accent"],
19
+ "default": "neutral"
20
+ },
21
+ "actionLabel": {
22
+ "type": "string",
23
+ "description": "If undefined, this button does not appear."
24
+ },
25
+ "isDismissible": {
26
+ "type": "boolean",
27
+ "default": false
28
+ }
29
+ },
30
+ "lifecycle": {
31
+ "introduced": "1.0.0-draft"
32
+ },
33
+ "tokenBindings": [
34
+ {
35
+ "token": "workflow-icon-size-100",
36
+ "context": "Icon asset"
37
+ },
38
+ {
39
+ "token": "alert-banner-minimum-height",
40
+ "context": "Height"
41
+ },
42
+ {
43
+ "token": "alert-banner-width",
44
+ "context": "Width"
45
+ },
46
+ {
47
+ "token": "text-to-visual-300",
48
+ "context": "Spacing (icon to text)"
49
+ },
50
+ {
51
+ "token": "spacing-300",
52
+ "context": "Spacing (start edge to text and icon)"
53
+ },
54
+ {
55
+ "token": "spacing-100",
56
+ "context": "Spacing (close button to end edge)"
57
+ },
58
+ {
59
+ "token": "spacing-200",
60
+ "context": "Spacing (close button to end edge)"
61
+ },
62
+ {
63
+ "token": "alert-banner-top-to-workflow-icon",
64
+ "context": "Spacing (top/bottom edge to icon)"
65
+ },
66
+ {
67
+ "token": "alert-banner-top-to-text",
68
+ "context": "Spacing (top/bottom edge to text)"
69
+ },
70
+ {
71
+ "token": "alert-banner-bottom-to-text",
72
+ "context": "Spacing (top/bottom edge to text)"
73
+ },
74
+ {
75
+ "token": "neutral-subdued-background-color-default",
76
+ "context": "Background"
77
+ },
78
+ {
79
+ "token": "informative-background-color-default",
80
+ "context": "Background"
81
+ },
82
+ {
83
+ "token": "negative-background-color-default",
84
+ "context": "Background"
85
+ },
86
+ {
87
+ "token": "default-font-family",
88
+ "context": "Text"
89
+ },
90
+ {
91
+ "token": "regular-font-weight",
92
+ "context": "Text"
93
+ },
94
+ {
95
+ "token": "default-font-style",
96
+ "context": "Text"
97
+ },
98
+ {
99
+ "token": "font-size-100",
100
+ "context": "Text"
101
+ },
102
+ {
103
+ "token": "line-height-100",
104
+ "context": "Text"
105
+ },
106
+ {
107
+ "token": "cjk-line-height-100",
108
+ "context": "Text"
109
+ }
110
+ ]
111
+ }
@@ -0,0 +1,152 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component.schema.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/components/alert-dialog.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "alert-dialog",
6
+ "displayName": "Alert dialog",
7
+ "description": "Alert dialogs display important information that users need to acknowledge. They appear over the interface and block further interactions until an action is selected.",
8
+ "meta": {
9
+ "category": "feedback",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/alert-dialog/"
11
+ },
12
+ "options": {
13
+ "title": {
14
+ "type": "string"
15
+ },
16
+ "description": {
17
+ "type": "string"
18
+ },
19
+ "variant": {
20
+ "type": "string",
21
+ "enum": [
22
+ "confirmation",
23
+ "information",
24
+ "warning",
25
+ "destructive",
26
+ "error"
27
+ ],
28
+ "default": "confirmation"
29
+ },
30
+ "primaryActionLabel": {
31
+ "type": "string"
32
+ },
33
+ "secondaryActionLabel": {
34
+ "type": "string",
35
+ "description": "If undefined, this button does not appear."
36
+ },
37
+ "cancelActionLabel": {
38
+ "type": "string",
39
+ "default": "cancel",
40
+ "description": "If undefined, this button does not appear."
41
+ }
42
+ },
43
+ "lifecycle": {
44
+ "introduced": "1.0.0-draft"
45
+ },
46
+ "tokenBindings": [
47
+ {
48
+ "token": "heading-sans-serif-font-family",
49
+ "context": "Title"
50
+ },
51
+ {
52
+ "token": "heading-sans-serif-font-weight",
53
+ "context": "Title"
54
+ },
55
+ {
56
+ "token": "heading-sans-serif-font-style",
57
+ "context": "Title"
58
+ },
59
+ {
60
+ "token": "alert-dialog-title-font-size",
61
+ "context": "Title"
62
+ },
63
+ {
64
+ "token": "heading-line-height",
65
+ "context": "Title"
66
+ },
67
+ {
68
+ "token": "heading-color",
69
+ "context": "Title"
70
+ },
71
+ {
72
+ "token": "body-sans-serif-font-family",
73
+ "context": "Description"
74
+ },
75
+ {
76
+ "token": "body-sans-serif-font-weight",
77
+ "context": "Description"
78
+ },
79
+ {
80
+ "token": "body-sans-serif-font-style",
81
+ "context": "Description"
82
+ },
83
+ {
84
+ "token": "alert-dialog-body-font-size",
85
+ "context": "Description"
86
+ },
87
+ {
88
+ "token": "line-height-200",
89
+ "context": "Description"
90
+ },
91
+ {
92
+ "token": "body-color",
93
+ "context": "Description"
94
+ },
95
+ {
96
+ "token": "alert-dialog-maximum-width",
97
+ "context": "Maximum width"
98
+ },
99
+ {
100
+ "token": "alert-dialog-minimum-width",
101
+ "context": "Minimum width"
102
+ },
103
+ {
104
+ "token": "corner-radius-extra-large-default",
105
+ "context": "Rounding"
106
+ },
107
+ {
108
+ "token": "spacing-500",
109
+ "context": "Spacing (edge to content)"
110
+ },
111
+ {
112
+ "token": "spacing-400",
113
+ "context": "Spacing (edge to content)"
114
+ },
115
+ {
116
+ "token": "alert-dialog-top-to-alert-icon",
117
+ "context": "Icon asset (error and warning variants)"
118
+ },
119
+ {
120
+ "token": "spacing-300",
121
+ "context": "Spacing (title to description)"
122
+ },
123
+ {
124
+ "token": "workflow-icon-size-100",
125
+ "context": "Icon (error and warning variants)"
126
+ },
127
+ {
128
+ "token": "spacing-100",
129
+ "context": "Minimum spacing (title to icon)"
130
+ },
131
+ {
132
+ "token": "background-color-layer2",
133
+ "context": "Background"
134
+ },
135
+ {
136
+ "token": "overlay-color",
137
+ "context": "Overlay"
138
+ },
139
+ {
140
+ "token": "overlay-opacity",
141
+ "context": "Overlay"
142
+ },
143
+ {
144
+ "token": "notice-visual-color",
145
+ "context": "Icon (warning variant)"
146
+ },
147
+ {
148
+ "token": "negative-visual-color",
149
+ "context": "Icon (error variant)"
150
+ }
151
+ ]
152
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component.schema.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/components/avatar-group.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "avatar-group",
6
+ "displayName": "Avatar group",
7
+ "description": "Avatar groups display a collection of avatars representing people or entities.",
8
+ "meta": {
9
+ "category": "actions",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/avatar-group/"
11
+ },
12
+ "options": {
13
+ "label": {
14
+ "type": "string",
15
+ "description": "Optional text label displayed with the avatar group (e.g., group name)."
16
+ },
17
+ "size": {
18
+ "type": "number",
19
+ "enum": [50, 75, 100, 200, 300, 400, 500],
20
+ "default": 100
21
+ }
22
+ },
23
+ "lifecycle": {
24
+ "introduced": "1.0.0-draft"
25
+ },
26
+ "tokenBindings": [
27
+ {
28
+ "token": "avatar-group-size-50",
29
+ "context": "Size"
30
+ },
31
+ {
32
+ "token": "avatar-group-size-75",
33
+ "context": "Size"
34
+ },
35
+ {
36
+ "token": "avatar-group-size-100",
37
+ "context": "Size"
38
+ },
39
+ {
40
+ "token": "avatar-group-size-200",
41
+ "context": "Size"
42
+ },
43
+ {
44
+ "token": "avatar-group-size-300",
45
+ "context": "Size"
46
+ },
47
+ {
48
+ "token": "avatar-group-size-400",
49
+ "context": "Size"
50
+ },
51
+ {
52
+ "token": "avatar-group-size-500",
53
+ "context": "Size"
54
+ },
55
+ {
56
+ "token": "spacing-100",
57
+ "context": "Spacing (avatar group to label)"
58
+ },
59
+ {
60
+ "token": "avatar-to-avatar-50",
61
+ "context": "Spacing (avatar to avatar)"
62
+ },
63
+ {
64
+ "token": "avatar-to-avatar-75",
65
+ "context": "Spacing (avatar to avatar)"
66
+ },
67
+ {
68
+ "token": "avatar-to-avatar-100",
69
+ "context": "Spacing (avatar to avatar)"
70
+ },
71
+ {
72
+ "token": "avatar-to-avatar-200",
73
+ "context": "Spacing (avatar to avatar)"
74
+ },
75
+ {
76
+ "token": "avatar-to-avatar-300",
77
+ "context": "Spacing (avatar to avatar)"
78
+ },
79
+ {
80
+ "token": "avatar-to-avatar-400",
81
+ "context": "Spacing (avatar to avatar)"
82
+ },
83
+ {
84
+ "token": "avatar-to-avatar-500",
85
+ "context": "Spacing (avatar to avatar)"
86
+ },
87
+ {
88
+ "token": "default-font-family",
89
+ "context": "Layout"
90
+ },
91
+ {
92
+ "token": "regular-font-weight",
93
+ "context": "Layout"
94
+ },
95
+ {
96
+ "token": "default-font-style",
97
+ "context": "Layout"
98
+ },
99
+ {
100
+ "token": "font-size-50",
101
+ "context": "Layout"
102
+ },
103
+ {
104
+ "token": "font-size-75",
105
+ "context": "Layout"
106
+ },
107
+ {
108
+ "token": "font-size-100",
109
+ "context": "Layout"
110
+ },
111
+ {
112
+ "token": "font-size-200",
113
+ "context": "Layout"
114
+ },
115
+ {
116
+ "token": "font-size-300",
117
+ "context": "Layout"
118
+ },
119
+ {
120
+ "token": "font-size-400",
121
+ "context": "Layout"
122
+ },
123
+ {
124
+ "token": "font-size-500",
125
+ "context": "Layout"
126
+ },
127
+ {
128
+ "token": "font-size-600",
129
+ "context": "Layout"
130
+ },
131
+ {
132
+ "token": "line-height-100",
133
+ "context": "Layout"
134
+ },
135
+ {
136
+ "token": "cjk-line-height-100",
137
+ "context": "Layout"
138
+ }
139
+ ]
140
+ }
@@ -0,0 +1,184 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component.schema.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/components/avatar.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "avatar",
6
+ "displayName": "Avatar",
7
+ "description": "An avatar is a thumbnail representation of an entity, such as a user or an organization.",
8
+ "meta": {
9
+ "category": "navigation",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/avatar/"
11
+ },
12
+ "options": {
13
+ "size": {
14
+ "type": "number",
15
+ "enum": [
16
+ 50, 75, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200,
17
+ 1300, 1400, 1500
18
+ ],
19
+ "default": 500
20
+ },
21
+ "image": {
22
+ "type": "string",
23
+ "enum": [
24
+ "user image",
25
+ "gradient image",
26
+ "gradient",
27
+ "guest image",
28
+ "initials"
29
+ ],
30
+ "default": "user image"
31
+ },
32
+ "isDisabled": {
33
+ "type": "boolean",
34
+ "default": false
35
+ },
36
+ "showStroke": {
37
+ "type": "boolean",
38
+ "default": false
39
+ }
40
+ },
41
+ "states": [
42
+ {
43
+ "name": "down",
44
+ "trigger": "interaction"
45
+ },
46
+ {
47
+ "name": "keyboard-focus",
48
+ "trigger": "interaction"
49
+ }
50
+ ],
51
+ "lifecycle": {
52
+ "introduced": "1.0.0-draft"
53
+ },
54
+ "tokenBindings": [
55
+ {
56
+ "token": "avatar-size-50",
57
+ "context": "Size"
58
+ },
59
+ {
60
+ "token": "avatar-size-75",
61
+ "context": "Size"
62
+ },
63
+ {
64
+ "token": "avatar-size-100",
65
+ "context": "Size"
66
+ },
67
+ {
68
+ "token": "avatar-size-200",
69
+ "context": "Size"
70
+ },
71
+ {
72
+ "token": "avatar-size-300",
73
+ "context": "Size"
74
+ },
75
+ {
76
+ "token": "avatar-size-400",
77
+ "context": "Size"
78
+ },
79
+ {
80
+ "token": "avatar-size-500",
81
+ "context": "Size"
82
+ },
83
+ {
84
+ "token": "avatar-size-600",
85
+ "context": "Size"
86
+ },
87
+ {
88
+ "token": "avatar-size-700",
89
+ "context": "Size"
90
+ },
91
+ {
92
+ "token": "avatar-size-800",
93
+ "context": "Size"
94
+ },
95
+ {
96
+ "token": "avatar-size-900",
97
+ "context": "Size"
98
+ },
99
+ {
100
+ "token": "avatar-size-1000",
101
+ "context": "Size"
102
+ },
103
+ {
104
+ "token": "avatar-size-1100",
105
+ "context": "Size"
106
+ },
107
+ {
108
+ "token": "avatar-size-1200",
109
+ "context": "Size"
110
+ },
111
+ {
112
+ "token": "avatar-size-1300",
113
+ "context": "Size"
114
+ },
115
+ {
116
+ "token": "avatar-size-1400",
117
+ "context": "Size"
118
+ },
119
+ {
120
+ "token": "avatar-size-1500",
121
+ "context": "Size"
122
+ },
123
+ {
124
+ "token": "avatar-border-thickness",
125
+ "context": "Border"
126
+ },
127
+ {
128
+ "token": "focus-indicator-thickness",
129
+ "context": "Focus indicator"
130
+ },
131
+ {
132
+ "token": "focus-indicator-gap",
133
+ "context": "Focus indicator"
134
+ },
135
+ {
136
+ "token": "avatar-gradient-stop-1",
137
+ "context": "0% "
138
+ },
139
+ {
140
+ "token": "static-[color]-400",
141
+ "context": "0% "
142
+ },
143
+ {
144
+ "token": "avatar-gradient-stop-2",
145
+ "context": "66% "
146
+ },
147
+ {
148
+ "token": "static-[color]-600",
149
+ "context": "66% "
150
+ },
151
+ {
152
+ "token": "avatar-gradient-stop-3",
153
+ "context": "100% "
154
+ },
155
+ {
156
+ "token": "static-[color]-800",
157
+ "context": "100% "
158
+ },
159
+ {
160
+ "token": "gradient-angle",
161
+ "context": "Top-left to bottom-right"
162
+ },
163
+ {
164
+ "token": "default-font-family",
165
+ "context": "Text (List view item)"
166
+ },
167
+ {
168
+ "token": "extra-bold-font-weight",
169
+ "context": "Text (List view item)"
170
+ },
171
+ {
172
+ "token": "default-font-style",
173
+ "context": "Text (List view item)"
174
+ },
175
+ {
176
+ "token": "font-size-100",
177
+ "context": "Text (List view item)"
178
+ },
179
+ {
180
+ "token": "line-height-100",
181
+ "context": "Text (List view item)"
182
+ }
183
+ ]
184
+ }