@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,155 @@
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/illustrated-message.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "illustrated-message",
6
+ "displayName": "Illustrated message",
7
+ "description": "An illustrated message displays an illustration with a short title and description, often used for empty states or error states.",
8
+ "meta": {
9
+ "category": "feedback",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/illustrated-message/"
11
+ },
12
+ "options": {
13
+ "illustration": {
14
+ "type": "string",
15
+ "description": "Optional illustration or icon displayed above the message."
16
+ },
17
+ "size": {
18
+ "type": "string",
19
+ "enum": ["s", "m", "l"],
20
+ "default": "m",
21
+ "description": "Size of the illustration."
22
+ },
23
+ "orientation": {
24
+ "type": "string",
25
+ "enum": ["vertical", "horizontal"],
26
+ "default": "vertical",
27
+ "description": "Orientation of the illustrated message."
28
+ },
29
+ "title": {
30
+ "type": "string",
31
+ "description": "Primary heading text of the message."
32
+ },
33
+ "description": {
34
+ "type": "string",
35
+ "description": "Secondary descriptive text providing context or instructions."
36
+ },
37
+ "primaryActionLabel": {
38
+ "type": "string",
39
+ "description": "Label for the primary action button. If undefined, no primary action is shown."
40
+ },
41
+ "secondaryActionLabel": {
42
+ "type": "string",
43
+ "description": "Label for the secondary action button. If undefined, no secondary action is shown."
44
+ }
45
+ },
46
+ "lifecycle": {
47
+ "introduced": "1.0.0-draft"
48
+ },
49
+ "tokenBindings": [
50
+ {
51
+ "token": "illustrated-message-vertical-maximum-width",
52
+ "context": "Maximum width (Vertical variant)"
53
+ },
54
+ {
55
+ "token": "illustrated-message-horizontal-maximum-width",
56
+ "context": "Maximum width (Horizontal variant)"
57
+ },
58
+ {
59
+ "token": "spacing-200",
60
+ "context": "Spacing (Illustration to heading)"
61
+ },
62
+ {
63
+ "token": "spacing-100",
64
+ "context": "Spacing (Illustration to heading)"
65
+ },
66
+ {
67
+ "token": "spacing-75",
68
+ "context": "Spacing (Heading to description - vertical)"
69
+ },
70
+ {
71
+ "token": "spacing-300",
72
+ "context": "Spacing (Description to action - vertical)"
73
+ },
74
+ {
75
+ "token": "title-sans-serif-font-family",
76
+ "context": "Title"
77
+ },
78
+ {
79
+ "token": "title-sans-serif-font-weight",
80
+ "context": "Title"
81
+ },
82
+ {
83
+ "token": "title-sans-serif-font-style",
84
+ "context": "Title"
85
+ },
86
+ {
87
+ "token": "title-line-height",
88
+ "context": "Title"
89
+ },
90
+ {
91
+ "token": "illustrated-message-small-title-font-size",
92
+ "context": "Title"
93
+ },
94
+ {
95
+ "token": "illustrated-message-small-cjk-title-font-size",
96
+ "context": "Title"
97
+ },
98
+ {
99
+ "token": "illustrated-message-medium-title-font-size",
100
+ "context": "Title"
101
+ },
102
+ {
103
+ "token": "illustrated-message-medium-cjk-title-font-size",
104
+ "context": "Title"
105
+ },
106
+ {
107
+ "token": "illustrated-message-large-title-font-size",
108
+ "context": "Title"
109
+ },
110
+ {
111
+ "token": "illustrated-message-large-cjk-title-font-size",
112
+ "context": "Title"
113
+ },
114
+ {
115
+ "token": "body-sans-serif-font-family",
116
+ "context": "Description"
117
+ },
118
+ {
119
+ "token": "body-sans-serif-font-weight",
120
+ "context": "Description"
121
+ },
122
+ {
123
+ "token": "body-sans-serif-font-style",
124
+ "context": "Description"
125
+ },
126
+ {
127
+ "token": "line-height-200",
128
+ "context": "Description"
129
+ },
130
+ {
131
+ "token": "illustrated-message-small-body-font-size",
132
+ "context": "Description"
133
+ },
134
+ {
135
+ "token": "illustrated-message-medium-body-font-size",
136
+ "context": "Description"
137
+ },
138
+ {
139
+ "token": "illustrated-message-large-body-font-size",
140
+ "context": "Description"
141
+ },
142
+ {
143
+ "token": "neutral-content-color-default",
144
+ "context": "Illustration color"
145
+ },
146
+ {
147
+ "token": "heading-color",
148
+ "context": "Heading color"
149
+ },
150
+ {
151
+ "token": "body-color",
152
+ "context": "Description color"
153
+ }
154
+ ]
155
+ }
@@ -0,0 +1,44 @@
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/in-field-progress-button.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "in-field-progress-button",
6
+ "displayName": "In field progress button",
7
+ "description": "In field progress buttons provide interactive controls within form fields for actions like clearing, adding, or disclosing additional content.",
8
+ "meta": {
9
+ "category": "actions",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/in-field-progress-button/"
11
+ },
12
+ "options": {
13
+ "size": {
14
+ "type": "string",
15
+ "enum": ["s", "m", "l", "xl"],
16
+ "default": "m"
17
+ },
18
+ "style": {
19
+ "type": "string",
20
+ "enum": ["disclosure", "clear", "dash", "add"]
21
+ },
22
+ "isQuiet": {
23
+ "type": "boolean",
24
+ "default": false
25
+ }
26
+ },
27
+ "states": [
28
+ {
29
+ "name": "hover",
30
+ "trigger": "interaction"
31
+ },
32
+ {
33
+ "name": "down",
34
+ "trigger": "interaction"
35
+ },
36
+ {
37
+ "name": "keyboard-focus",
38
+ "trigger": "interaction"
39
+ }
40
+ ],
41
+ "lifecycle": {
42
+ "introduced": "1.0.0-draft"
43
+ }
44
+ }
@@ -0,0 +1,80 @@
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/in-field-progress-circle.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "in-field-progress-circle",
6
+ "displayName": "In field progress circle",
7
+ "description": "In field progress circles indicate progress for loading states within form fields and input areas.",
8
+ "meta": {
9
+ "category": "feedback",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/in-field-progress-circle/"
11
+ },
12
+ "options": {
13
+ "size": {
14
+ "type": "string",
15
+ "enum": ["s", "m", "l", "xl"],
16
+ "default": "m"
17
+ },
18
+ "staticColor": {
19
+ "type": "string",
20
+ "enum": ["white", "black"]
21
+ }
22
+ },
23
+ "lifecycle": {
24
+ "introduced": "1.0.0-draft"
25
+ },
26
+ "tokenBindings": [
27
+ {
28
+ "token": "in-field-progress-circle-size-75",
29
+ "context": "Height"
30
+ },
31
+ {
32
+ "token": "in-field-progress-circle-size-100",
33
+ "context": "Height"
34
+ },
35
+ {
36
+ "token": "in-field-progress-circle-size-200",
37
+ "context": "Height"
38
+ },
39
+ {
40
+ "token": "in-field-progress-circle-size-300",
41
+ "context": "Height"
42
+ },
43
+ {
44
+ "token": "gray-300",
45
+ "context": "Track and fill"
46
+ },
47
+ {
48
+ "token": "accent-content-color-default",
49
+ "context": "Track and fill"
50
+ },
51
+ {
52
+ "token": "transparent-white-300",
53
+ "context": "Track and fill (static white)"
54
+ },
55
+ {
56
+ "token": "transparent-white-900",
57
+ "context": "Track and fill (static white)"
58
+ },
59
+ {
60
+ "token": "transparent-black-300",
61
+ "context": "Track and fill (static black)"
62
+ },
63
+ {
64
+ "token": "transparent-black-900",
65
+ "context": "Track and fill (static black)"
66
+ },
67
+ {
68
+ "token": "progress-circle-thickness-small",
69
+ "context": "S1 Thickness"
70
+ },
71
+ {
72
+ "token": "progress-circle-thickness-medium",
73
+ "context": "S1 Thickness"
74
+ },
75
+ {
76
+ "token": "progress-circle-thickness-large",
77
+ "context": "S1 Thickness"
78
+ }
79
+ ]
80
+ }
@@ -0,0 +1,201 @@
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/in-line-alert.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "in-line-alert",
6
+ "displayName": "In-line alert",
7
+ "description": "In-line alerts display a non-modal message associated with objects in a view. These are often used in form validation, providing a place to aggregate feedback related to multiple fields.",
8
+ "meta": {
9
+ "category": "feedback",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/in-line-alert/"
11
+ },
12
+ "options": {
13
+ "variant": {
14
+ "type": "string",
15
+ "enum": [
16
+ "neutral",
17
+ "informative",
18
+ "positive",
19
+ "notice",
20
+ "negative",
21
+ "accent"
22
+ ],
23
+ "default": "neutral"
24
+ },
25
+ "style": {
26
+ "type": "string",
27
+ "enum": ["bold", "subtle", "outline"],
28
+ "default": "outline",
29
+ "description": "The visual style of the alert."
30
+ },
31
+ "href": {
32
+ "type": "string",
33
+ "description": "Optional URL within in-line alert content like a 'Learn more' link."
34
+ },
35
+ "heading": {
36
+ "type": "string",
37
+ "description": "Optional heading text displayed at the top of the alert."
38
+ },
39
+ "actionLabel": {
40
+ "type": "string",
41
+ "description": "If undefined, this button does not appear."
42
+ }
43
+ },
44
+ "lifecycle": {
45
+ "introduced": "1.0.0-draft"
46
+ },
47
+ "tokenBindings": [
48
+ {
49
+ "token": "border-width-200",
50
+ "context": "Border "
51
+ },
52
+ {
53
+ "token": "corner-radius-700",
54
+ "context": "Rounding"
55
+ },
56
+ {
57
+ "token": "workflow-icon-size-100",
58
+ "context": "Icon"
59
+ },
60
+ {
61
+ "token": "in-line-alert-minimum-width",
62
+ "context": "Minimum width"
63
+ },
64
+ {
65
+ "token": "spacing-300",
66
+ "context": "Spacing (Top/Bottom/Start/End edge to Content)"
67
+ },
68
+ {
69
+ "token": "spacing-100",
70
+ "context": "Spacing (Title to Description) "
71
+ },
72
+ {
73
+ "token": "spacing-200",
74
+ "context": "Spacing (Description to Link, Description to Button, Link to Button) "
75
+ },
76
+ {
77
+ "token": "component-height-50",
78
+ "context": "Minimum title area height"
79
+ },
80
+ {
81
+ "token": "heading-color",
82
+ "context": "Title and Description (Border fill)"
83
+ },
84
+ {
85
+ "token": "body-color",
86
+ "context": "Title and Description (Border fill)"
87
+ },
88
+ {
89
+ "token": "background-layer-2-color",
90
+ "context": "Background (Border fill)"
91
+ },
92
+ {
93
+ "token": "informative-visual-color",
94
+ "context": "Border and Icon (Border fill, Informative)"
95
+ },
96
+ {
97
+ "token": "positive-visual-color",
98
+ "context": "Border and Icon (Border fill, Positive)"
99
+ },
100
+ {
101
+ "token": "notice-visual-color",
102
+ "context": "Border and Icon (Border fill, Notice)"
103
+ },
104
+ {
105
+ "token": "negative-visual-color",
106
+ "context": "Border and Icon (Border fill, Negative)"
107
+ },
108
+ {
109
+ "token": "neutral-visual-color",
110
+ "context": "Border (Border fill, Neutral)"
111
+ },
112
+ {
113
+ "token": "informative-subtle-background-color-default",
114
+ "context": "Background and Icon (Subtle fill, Informative)"
115
+ },
116
+ {
117
+ "token": "positive-subtle-background-color-default",
118
+ "context": "Background and Icon (Subtle fill, Positive)"
119
+ },
120
+ {
121
+ "token": "notice-subtle-background-color-default",
122
+ "context": "Background and Icon (Subtle fill, Notice)"
123
+ },
124
+ {
125
+ "token": "negative-subtle-background-color-default",
126
+ "context": "Background and Icon (Subtle fill, Negative)"
127
+ },
128
+ {
129
+ "token": "neutral-subtle-background-color-default",
130
+ "context": "Background and Icon (Subtle fill, Neutral)"
131
+ },
132
+ {
133
+ "token": "white",
134
+ "context": "Title and Description (Bold fill)"
135
+ },
136
+ {
137
+ "token": "black",
138
+ "context": "Title and Description (Bold fill, Notice)"
139
+ },
140
+ {
141
+ "token": "informative-background-color-default",
142
+ "context": "Background (Bold fill, Informative)"
143
+ },
144
+ {
145
+ "token": "positive-background-color-default",
146
+ "context": "Background (Bold fill, Positive)"
147
+ },
148
+ {
149
+ "token": "notice-background-color-default",
150
+ "context": "Background (Bold fill, Notice)"
151
+ },
152
+ {
153
+ "token": "negative-background-color-default",
154
+ "context": "Background (Bold fill, Negative)"
155
+ },
156
+ {
157
+ "token": "neutral-subdued-background-color-default",
158
+ "context": "Background (Bold fill, Neutral)"
159
+ },
160
+ {
161
+ "token": "heading-sans-serif-font-family",
162
+ "context": "Title and Description"
163
+ },
164
+ {
165
+ "token": "heading-sans-serif-font-weight",
166
+ "context": "Title and Description"
167
+ },
168
+ {
169
+ "token": "heading-sans-serif-font-style",
170
+ "context": "Title and Description"
171
+ },
172
+ {
173
+ "token": "heading-size-xxs",
174
+ "context": "Title and Description"
175
+ },
176
+ {
177
+ "token": "heading-line-height",
178
+ "context": "Title and Description"
179
+ },
180
+ {
181
+ "token": "body-sans-serif-font-family",
182
+ "context": "Title and Description"
183
+ },
184
+ {
185
+ "token": "body-sans-serif-font-weight",
186
+ "context": "Title and Description"
187
+ },
188
+ {
189
+ "token": "body-sans-serif-font-style",
190
+ "context": "Title and Description"
191
+ },
192
+ {
193
+ "token": "body-size-s",
194
+ "context": "Title and Description"
195
+ },
196
+ {
197
+ "token": "body-line-height",
198
+ "context": "Title and Description"
199
+ }
200
+ ]
201
+ }
@@ -0,0 +1,135 @@
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/link.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "link",
6
+ "displayName": "Link",
7
+ "description": "Links allow users to navigate to a different location. They can be presented inside a paragraph or as standalone text.",
8
+ "meta": {
9
+ "category": "actions",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/link/"
11
+ },
12
+ "options": {
13
+ "variant": {
14
+ "type": "string",
15
+ "enum": ["primary", "secondary"],
16
+ "default": "primary"
17
+ },
18
+ "isQuiet": {
19
+ "type": "boolean",
20
+ "default": false
21
+ },
22
+ "staticColor": {
23
+ "type": "string",
24
+ "enum": ["white", "black"],
25
+ "description": "Static color must not be set for the default version of this component."
26
+ }
27
+ },
28
+ "states": [
29
+ {
30
+ "name": "hover",
31
+ "trigger": "interaction"
32
+ },
33
+ {
34
+ "name": "down",
35
+ "trigger": "interaction"
36
+ },
37
+ {
38
+ "name": "keyboard-focus",
39
+ "trigger": "interaction"
40
+ }
41
+ ],
42
+ "lifecycle": {
43
+ "introduced": "1.0.0-draft"
44
+ },
45
+ "tokenBindings": [
46
+ {
47
+ "token": "accent-content-color-default",
48
+ "context": "Text (primary)"
49
+ },
50
+ {
51
+ "token": "accent-content-color-hover",
52
+ "context": "Text (primary)"
53
+ },
54
+ {
55
+ "token": "accent-content-color-down",
56
+ "context": "Text (primary)"
57
+ },
58
+ {
59
+ "token": "accent-content-color-key-focus",
60
+ "context": "Text (primary)"
61
+ },
62
+ {
63
+ "token": "neutral-content-color-default",
64
+ "context": "Text (secondary)"
65
+ },
66
+ {
67
+ "token": "neutral-content-color-hover",
68
+ "context": "Text (secondary)"
69
+ },
70
+ {
71
+ "token": "neutral-content-color-down",
72
+ "context": "Text (secondary)"
73
+ },
74
+ {
75
+ "token": "neutral-content-color-key-focus",
76
+ "context": "Text (secondary)"
77
+ },
78
+ {
79
+ "token": "white",
80
+ "context": "Text (white)"
81
+ },
82
+ {
83
+ "token": "black",
84
+ "context": "Text (black)"
85
+ },
86
+ {
87
+ "token": "default-font-family",
88
+ "context": "Standalone variant, Default style"
89
+ },
90
+ {
91
+ "token": "medium-font-weight",
92
+ "context": "Standalone variant, Default style"
93
+ },
94
+ {
95
+ "token": "default-font-style",
96
+ "context": "Standalone variant, Default style"
97
+ },
98
+ {
99
+ "token": "font-size-100",
100
+ "context": "Standalone variant, Default style"
101
+ },
102
+ {
103
+ "token": "line-height-100",
104
+ "context": "Standalone variant, Default style"
105
+ },
106
+ {
107
+ "token": "cjk-line-height-100",
108
+ "context": "Standalone variant, Default style"
109
+ },
110
+ {
111
+ "token": "text-underline-gap",
112
+ "context": "Standalone variant, Default style"
113
+ },
114
+ {
115
+ "token": "text-underline-thickness",
116
+ "context": "Standalone variant, Default style"
117
+ },
118
+ {
119
+ "token": "regular-font-weight",
120
+ "context": "Inline variant, Default style"
121
+ },
122
+ {
123
+ "token": "focus-indicator-color",
124
+ "context": "Focus ring"
125
+ },
126
+ {
127
+ "token": "focus-indicator-thickness",
128
+ "context": "Focus ring"
129
+ },
130
+ {
131
+ "token": "focus-indicator-gap",
132
+ "context": "Focus ring"
133
+ }
134
+ ]
135
+ }