@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,522 @@
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/picker.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "picker",
6
+ "displayName": "Picker",
7
+ "description": "Pickers (sometimes known as \"dropdowns\" or \"selects\") allow users to choose from a list of options in a limited space. The list of options can change based on the context.",
8
+ "meta": {
9
+ "category": "inputs",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/picker/"
11
+ },
12
+ "options": {
13
+ "label": {
14
+ "type": "string"
15
+ },
16
+ "labelPosition": {
17
+ "type": "string",
18
+ "default": "top",
19
+ "enum": ["top", "side"]
20
+ },
21
+ "placeholder": {
22
+ "type": "string"
23
+ },
24
+ "value": {
25
+ "type": "string"
26
+ },
27
+ "width": {
28
+ "type": "number",
29
+ "description": "Not applicable to quiet picker."
30
+ },
31
+ "size": {
32
+ "type": "string",
33
+ "enum": ["s", "m", "l", "xl"],
34
+ "default": "m"
35
+ },
36
+ "isQuiet": {
37
+ "type": "boolean",
38
+ "default": false
39
+ },
40
+ "necessityIndicator": {
41
+ "type": "string",
42
+ "enum": ["text", "icon"],
43
+ "default": "icon"
44
+ },
45
+ "isRequired": {
46
+ "type": "boolean",
47
+ "default": false
48
+ },
49
+ "menuContainer": {
50
+ "type": "string",
51
+ "enum": ["popover", "tray"],
52
+ "default": "popover"
53
+ },
54
+ "isDisabled": {
55
+ "type": "boolean",
56
+ "default": false
57
+ },
58
+ "isError": {
59
+ "type": "boolean",
60
+ "default": false
61
+ },
62
+ "description": {
63
+ "type": "string",
64
+ "default": null
65
+ },
66
+ "errorMessage": {
67
+ "type": "string",
68
+ "default": null
69
+ }
70
+ },
71
+ "states": [
72
+ {
73
+ "name": "hover",
74
+ "trigger": "interaction"
75
+ },
76
+ {
77
+ "name": "focus-+-hover",
78
+ "trigger": "prop"
79
+ },
80
+ {
81
+ "name": "focus-+-not-hover",
82
+ "trigger": "prop"
83
+ },
84
+ {
85
+ "name": "keyboard-focus",
86
+ "trigger": "interaction"
87
+ }
88
+ ],
89
+ "lifecycle": {
90
+ "introduced": "1.0.0-draft"
91
+ },
92
+ "tokenBindings": [
93
+ {
94
+ "token": "field-default-width-small",
95
+ "context": "Width (default)"
96
+ },
97
+ {
98
+ "token": "field-default-width-medium",
99
+ "context": "Width (default)"
100
+ },
101
+ {
102
+ "token": "field-default-width-large",
103
+ "context": "Width (default)"
104
+ },
105
+ {
106
+ "token": "field-default-width-extra-large",
107
+ "context": "Width (default)"
108
+ },
109
+ {
110
+ "token": "picker-minimum-width-multiplier",
111
+ "context": "Width (minimum)"
112
+ },
113
+ {
114
+ "token": "component-height-75",
115
+ "context": "Height"
116
+ },
117
+ {
118
+ "token": "component-height-100",
119
+ "context": "Height"
120
+ },
121
+ {
122
+ "token": "component-height-200",
123
+ "context": "Height"
124
+ },
125
+ {
126
+ "token": "component-height-300",
127
+ "context": "Height"
128
+ },
129
+ {
130
+ "token": "corner-radius-medium-size-small",
131
+ "context": "Rounding"
132
+ },
133
+ {
134
+ "token": "corner-radius-medium-size-medium",
135
+ "context": "Rounding"
136
+ },
137
+ {
138
+ "token": "corner-radius-medium-size-large",
139
+ "context": "Rounding"
140
+ },
141
+ {
142
+ "token": "corner-radius-medium-size-extra-large",
143
+ "context": "Rounding"
144
+ },
145
+ {
146
+ "token": "component-edge-to-text-75",
147
+ "context": "Spacing (start/end edge to value)"
148
+ },
149
+ {
150
+ "token": "component-edge-to-text-100",
151
+ "context": "Spacing (start/end edge to value)"
152
+ },
153
+ {
154
+ "token": "component-edge-to-text-200",
155
+ "context": "Spacing (start/end edge to value)"
156
+ },
157
+ {
158
+ "token": "component-edge-to-text-300",
159
+ "context": "Spacing (start/end edge to value)"
160
+ },
161
+ {
162
+ "token": "field-edge-to-text-quiet",
163
+ "context": "Spacing (start/end edge to value)"
164
+ },
165
+ {
166
+ "token": "focus-indicator-thickness",
167
+ "context": "Focus indicator"
168
+ },
169
+ {
170
+ "token": "focus-indicator-gap",
171
+ "context": "Focus indicator"
172
+ },
173
+ {
174
+ "token": "component-size-difference-down",
175
+ "context": "Component size (down)"
176
+ },
177
+ {
178
+ "token": "component-size-width-ratio-down",
179
+ "context": "Component size (down)"
180
+ },
181
+ {
182
+ "token": "component-size-minimum-perspective-down",
183
+ "context": "Component size (down)"
184
+ },
185
+ {
186
+ "token": "workflow-icon-size-75",
187
+ "context": "Prefix min-width"
188
+ },
189
+ {
190
+ "token": "workflow-icon-size-100",
191
+ "context": "Prefix min-width"
192
+ },
193
+ {
194
+ "token": "workflow-icon-size-200",
195
+ "context": "Prefix min-width"
196
+ },
197
+ {
198
+ "token": "workflow-icon-size-300",
199
+ "context": "Prefix min-width"
200
+ },
201
+ {
202
+ "token": "picker-end-edge-to-disclosure-icon-quiet",
203
+ "context": "Spacing (start/end edge to prefix)"
204
+ },
205
+ {
206
+ "token": "text-to-visual-75",
207
+ "context": "Spacing (prefix to value/placeholder)"
208
+ },
209
+ {
210
+ "token": "text-to-visual-100",
211
+ "context": "Spacing (prefix to value/placeholder)"
212
+ },
213
+ {
214
+ "token": "text-to-visual-200",
215
+ "context": "Spacing (prefix to value/placeholder)"
216
+ },
217
+ {
218
+ "token": "text-to-visual-300",
219
+ "context": "Spacing (prefix to value/placeholder)"
220
+ },
221
+ {
222
+ "token": "chevron-icon-size-75",
223
+ "context": "Chevron/disclosure icon"
224
+ },
225
+ {
226
+ "token": "chevron-icon-size-100",
227
+ "context": "Chevron/disclosure icon"
228
+ },
229
+ {
230
+ "token": "chevron-icon-size-200",
231
+ "context": "Chevron/disclosure icon"
232
+ },
233
+ {
234
+ "token": "chevron-icon-size-300",
235
+ "context": "Chevron/disclosure icon"
236
+ },
237
+ {
238
+ "token": "field-top-to-disclosure-icon-75",
239
+ "context": "Spacing (top/bottom to disclosure icon)"
240
+ },
241
+ {
242
+ "token": "field-top-to-disclosure-icon-100",
243
+ "context": "Spacing (top/bottom to disclosure icon)"
244
+ },
245
+ {
246
+ "token": "field-top-to-disclosure-icon-200",
247
+ "context": "Spacing (top/bottom to disclosure icon)"
248
+ },
249
+ {
250
+ "token": "field-top-to-disclosure-icon-300",
251
+ "context": "Spacing (top/bottom to disclosure icon)"
252
+ },
253
+ {
254
+ "token": "field-edge-to-disclosure-icon-75",
255
+ "context": "Spacing (end edge to disclosure icon)"
256
+ },
257
+ {
258
+ "token": "field-edge-to-disclosure-icon-100",
259
+ "context": "Spacing (end edge to disclosure icon)"
260
+ },
261
+ {
262
+ "token": "field-edge-to-disclosure-icon-200",
263
+ "context": "Spacing (end edge to disclosure icon)"
264
+ },
265
+ {
266
+ "token": "field-edge-to-disclosure-icon-300",
267
+ "context": "Spacing (end edge to disclosure icon)"
268
+ },
269
+ {
270
+ "token": "field-edge-to-alert-icon-small",
271
+ "context": "Leading icon (leading icon to end edge)"
272
+ },
273
+ {
274
+ "token": "field-edge-to-alert-icon-medium",
275
+ "context": "Leading icon (leading icon to end edge)"
276
+ },
277
+ {
278
+ "token": "field-edge-to-alert-icon-large",
279
+ "context": "Leading icon (leading icon to end edge)"
280
+ },
281
+ {
282
+ "token": "field-edge-to-alert-icon-extra-large",
283
+ "context": "Leading icon (leading icon to end edge)"
284
+ },
285
+ {
286
+ "token": "component-top-to-workflow-icon-75",
287
+ "context": "Spacing (top/bottom edge to icon)"
288
+ },
289
+ {
290
+ "token": "component-top-to-workflow-icon-100",
291
+ "context": "Spacing (top/bottom edge to icon)"
292
+ },
293
+ {
294
+ "token": "component-top-to-workflow-icon-200",
295
+ "context": "Spacing (top/bottom edge to icon)"
296
+ },
297
+ {
298
+ "token": "component-top-to-workflow-icon-300",
299
+ "context": "Spacing (top/bottom edge to icon)"
300
+ },
301
+ {
302
+ "token": "picker-visual-to-disclosure-icon-small",
303
+ "context": "Spacing (alert icon to disclosure icon)"
304
+ },
305
+ {
306
+ "token": "picker-visual-to-disclosure-icon-medium",
307
+ "context": "Spacing (alert icon to disclosure icon)"
308
+ },
309
+ {
310
+ "token": "picker-visual-to-disclosure-icon-large",
311
+ "context": "Spacing (alert icon to disclosure icon)"
312
+ },
313
+ {
314
+ "token": "picker-visual-to-disclosure-icon-extra-large",
315
+ "context": "Spacing (alert icon to disclosure icon)"
316
+ },
317
+ {
318
+ "token": "field-label-to-component",
319
+ "context": "Spacing (field label to picker)"
320
+ },
321
+ {
322
+ "token": "field-label-to-component-quiet-small",
323
+ "context": "Spacing (field label to picker)"
324
+ },
325
+ {
326
+ "token": "field-label-to-component-quiet-medium",
327
+ "context": "Spacing (field label to picker)"
328
+ },
329
+ {
330
+ "token": "field-label-to-component-quiet-large",
331
+ "context": "Spacing (field label to picker)"
332
+ },
333
+ {
334
+ "token": "field-label-to-component-quiet-extra-large",
335
+ "context": "Spacing (field label to picker)"
336
+ },
337
+ {
338
+ "token": "component-to-menu-small",
339
+ "context": "Spacing (component to menu)"
340
+ },
341
+ {
342
+ "token": "component-to-menu-medium",
343
+ "context": "Spacing (component to menu)"
344
+ },
345
+ {
346
+ "token": "component-to-menu-large",
347
+ "context": "Spacing (component to menu)"
348
+ },
349
+ {
350
+ "token": "component-to-menu-extra-large",
351
+ "context": "Spacing (component to menu)"
352
+ },
353
+ {
354
+ "token": "help-text-to-component",
355
+ "context": "Spacing (text area to help text)"
356
+ },
357
+ {
358
+ "token": "field-top-to-progress-circle-small",
359
+ "context": "Spacing (top/bottom edge to progress circle icon)"
360
+ },
361
+ {
362
+ "token": "field-top-to-progress-circle-medium",
363
+ "context": "Spacing (top/bottom edge to progress circle icon)"
364
+ },
365
+ {
366
+ "token": "field-top-to-progress-circle-large",
367
+ "context": "Spacing (top/bottom edge to progress circle icon)"
368
+ },
369
+ {
370
+ "token": "field-top-to-progress-circle-extra-large",
371
+ "context": "Spacing (top/bottom edge to progress circle icon)"
372
+ },
373
+ {
374
+ "token": "gray-100",
375
+ "context": "Background"
376
+ },
377
+ {
378
+ "token": "gray-200",
379
+ "context": "Background"
380
+ },
381
+ {
382
+ "token": "negative-border-color-default",
383
+ "context": "Border (error)"
384
+ },
385
+ {
386
+ "token": "negative-border-color-hover",
387
+ "context": "Border (error)"
388
+ },
389
+ {
390
+ "token": "negative-border-color-down",
391
+ "context": "Border (error)"
392
+ },
393
+ {
394
+ "token": "negative-border-color-focus-hover",
395
+ "context": "Border (error)"
396
+ },
397
+ {
398
+ "token": "negative-border-color-focus",
399
+ "context": "Border (error)"
400
+ },
401
+ {
402
+ "token": "negative-border-color-key-focus",
403
+ "context": "Border (error)"
404
+ },
405
+ {
406
+ "token": "neutral-content-color-default",
407
+ "context": "Value"
408
+ },
409
+ {
410
+ "token": "neutral-content-color-hover",
411
+ "context": "Value"
412
+ },
413
+ {
414
+ "token": "neutral-content-color-down",
415
+ "context": "Value"
416
+ },
417
+ {
418
+ "token": "neutral-content-color-focus-hover",
419
+ "context": "Value"
420
+ },
421
+ {
422
+ "token": "neutral-content-color-focus",
423
+ "context": "Value"
424
+ },
425
+ {
426
+ "token": "neutral-content-color-key-focus",
427
+ "context": "Value"
428
+ },
429
+ {
430
+ "token": "neutral-subdued-content-color-default",
431
+ "context": "Label"
432
+ },
433
+ {
434
+ "token": "negative-visual-color",
435
+ "context": "Alert icon"
436
+ },
437
+ {
438
+ "token": "disabled-background-color",
439
+ "context": "Disabled"
440
+ },
441
+ {
442
+ "token": "disabled-content-color",
443
+ "context": "Disabled"
444
+ },
445
+ {
446
+ "token": "focus-indicator-color",
447
+ "context": "Focus ring"
448
+ },
449
+ {
450
+ "token": "gray-700",
451
+ "context": "Prefix"
452
+ },
453
+ {
454
+ "token": "default-font-family",
455
+ "context": "Value"
456
+ },
457
+ {
458
+ "token": "regular-font-weight",
459
+ "context": "Value"
460
+ },
461
+ {
462
+ "token": "default-font-style",
463
+ "context": "Value"
464
+ },
465
+ {
466
+ "token": "component-s-regular",
467
+ "context": "Value"
468
+ },
469
+ {
470
+ "token": "component-m-regular",
471
+ "context": "Value"
472
+ },
473
+ {
474
+ "token": "component-l-regular",
475
+ "context": "Value"
476
+ },
477
+ {
478
+ "token": "component-xl-regular",
479
+ "context": "Value"
480
+ },
481
+ {
482
+ "token": "line-height-font-size-75",
483
+ "context": "Value"
484
+ },
485
+ {
486
+ "token": "line-height-font-size-100",
487
+ "context": "Value"
488
+ },
489
+ {
490
+ "token": "line-height-font-size-200",
491
+ "context": "Value"
492
+ },
493
+ {
494
+ "token": "line-height-font-size-300",
495
+ "context": "Value"
496
+ },
497
+ {
498
+ "token": "cjk-line-height-100",
499
+ "context": "Value"
500
+ },
501
+ {
502
+ "token": "medium-font-weight",
503
+ "context": "Prefix"
504
+ },
505
+ {
506
+ "token": "component-s-medium",
507
+ "context": "Prefix"
508
+ },
509
+ {
510
+ "token": "component-m-medium",
511
+ "context": "Prefix"
512
+ },
513
+ {
514
+ "token": "component-l-medium",
515
+ "context": "Prefix"
516
+ },
517
+ {
518
+ "token": "component-xl-medium",
519
+ "context": "Prefix"
520
+ }
521
+ ]
522
+ }
@@ -0,0 +1,119 @@
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/popover.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "popover",
6
+ "displayName": "Popover",
7
+ "description": "Popovers are containers used to display transient content such as menus, options, additional actions, and more. They visually stand out through stroke and drop shadow and float on top of the interface.",
8
+ "meta": {
9
+ "category": "containers",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/popover/"
11
+ },
12
+ "options": {
13
+ "width": {
14
+ "type": "number"
15
+ },
16
+ "height": {
17
+ "type": "number"
18
+ },
19
+ "hideTip": {
20
+ "type": "boolean",
21
+ "default": false
22
+ },
23
+ "placement": {
24
+ "type": "string",
25
+ "enum": [
26
+ "top",
27
+ "top left",
28
+ "top right",
29
+ "top start",
30
+ "top end",
31
+ "bottom",
32
+ "bottom left",
33
+ "bottom right",
34
+ "bottom start",
35
+ "bottom end",
36
+ "left",
37
+ "left top",
38
+ "left bottom",
39
+ "start",
40
+ "start top",
41
+ "start bottom",
42
+ "right",
43
+ "right top",
44
+ "right bottom",
45
+ "end",
46
+ "end top",
47
+ "end bottom"
48
+ ],
49
+ "default": "top"
50
+ },
51
+ "offset": {
52
+ "type": "number",
53
+ "default": 8,
54
+ "description": "pixel measurement"
55
+ },
56
+ "crossOffset": {
57
+ "type": "number",
58
+ "default": 0
59
+ },
60
+ "containerPadding": {
61
+ "type": "number",
62
+ "default": 8,
63
+ "description": "pixel measurement"
64
+ }
65
+ },
66
+ "lifecycle": {
67
+ "introduced": "1.0.0-draft"
68
+ },
69
+ "tokenBindings": [
70
+ {
71
+ "token": "corner-radius-large-default",
72
+ "context": "Rounding"
73
+ },
74
+ {
75
+ "token": "popover-tip-width",
76
+ "context": "Tip"
77
+ },
78
+ {
79
+ "token": "popover-tip-height",
80
+ "context": "Tip"
81
+ },
82
+ {
83
+ "token": "popover-edge-to-content-area",
84
+ "context": "Spacing (left/right edge to content area)"
85
+ },
86
+ {
87
+ "token": "spacing-100",
88
+ "context": "Spacing (tip to source)"
89
+ },
90
+ {
91
+ "token": "border-width-100",
92
+ "context": "Border"
93
+ },
94
+ {
95
+ "token": "background-layer-2-color",
96
+ "context": "Background and border"
97
+ },
98
+ {
99
+ "token": "popover-border-color",
100
+ "context": "Background and border"
101
+ },
102
+ {
103
+ "token": "drop-shadow-elevated-color",
104
+ "context": "Drop shadow"
105
+ },
106
+ {
107
+ "token": "drop-shadow-elevated-x",
108
+ "context": "Drop shadow"
109
+ },
110
+ {
111
+ "token": "drop-shadow-elevated-y",
112
+ "context": "Drop shadow"
113
+ },
114
+ {
115
+ "token": "drop-shadow-elevated-blur",
116
+ "context": "Drop shadow"
117
+ }
118
+ ]
119
+ }