@adobe/spectrum-component-api-schemas 1.0.2 → 3.0.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/CHANGELOG.md CHANGED
@@ -1,5 +1,86 @@
1
1
  # @adobe/spectrum-component-api-schemas
2
2
 
3
+ ## 3.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#610](https://github.com/adobe/spectrum-tokens/pull/610) [`13d9202`](https://github.com/adobe/spectrum-tokens/commit/13d920273c02c78d3748522de6a7c7ee39b39814) Thanks [@GarthDB](https://github.com/GarthDB)! - Component schema improvements for Batch 1 components
8
+
9
+ Quality control pass on the Design API table for v0, ensuring schema consistency and completeness across S2 components.
10
+
11
+ ## Component Schemas Changed (0 added, 0 deleted, 11 updated)
12
+
13
+ **Original Branch:** `main`
14
+ **New Branch:** `component-schema-batch1-fixes`
15
+
16
+ ### 🚨 Breaking Changes Detected (5)
17
+
18
+ This release introduces **5 breaking change(s)** to component schemas. Please review carefully and ensure proper versioning.
19
+
20
+ <details open><summary><strong>💥 Breaking Updates</strong></summary>
21
+
22
+ **popover**
23
+ - Added: `hideTip` (boolean, default: false) - replaces removed `showTip`
24
+
25
+ **rating**
26
+ - Added: `value.minimum` (0), `value.maximum` (5), `value.multipleOf` (0.5)
27
+ - Updated: `value.description` - "From 0 to 5, can be a decimal to represent half stars"
28
+
29
+ **select-box**
30
+ - Added: `hideIllustration` (boolean, default: false) - replaces removed `showIllustration`
31
+ - Added: `isDisabled` (boolean, default: false)
32
+ - Added: `multiple` (boolean, default: false) - "Set to true to allow multiple selections"
33
+ - Updated: `orientation.default` changed to "vertical"
34
+
35
+ **status-light**
36
+ - Added: Colors to `variant.enum`: "gray", "red", "orange", "green", "cyan"
37
+ - Added: `required` - ["label"] - label is now required
38
+ - Removed: `isDisabled` property
39
+
40
+ **tooltip**
41
+ - Removed: "positive" from `variant.enum`
42
+ - Updated: `hasIcon.description` - "If the neutral variant, there is never an icon"
43
+
44
+ </details>
45
+
46
+ ### ✅ Non-Breaking Updates (6)
47
+
48
+ <details><summary><strong>🔄 Compatible Changes</strong></summary>
49
+
50
+ **help-text**
51
+ - Added: "negative" to `variant.enum`
52
+ - Added: `isDisabled.description` - "Help text cannot be both disabled and negative variant"
53
+
54
+ **meter**
55
+ - Added: `hideLabel` (boolean, default: false)
56
+
57
+ **progress-bar**
58
+ - Added: `staticColor` (string, enum: ["white"]) - "Static color can only be white, otherwise it is default"
59
+ - Added: `labelPosition` (string, enum: ["top", "side"], default: "top")
60
+ - Added: `hideLabel` (boolean, default: false)
61
+
62
+ **search-field**
63
+ - Added: `hideLabel` (boolean, default: false)
64
+ - Added: `icon` ($ref: workflow-icon.json) - "Icon must be present if the label is not defined"
65
+
66
+ **text-area**
67
+ - Added: `hideLabel` (boolean, default: false)
68
+
69
+ **text-field**
70
+ - Added: `hideLabel` (boolean, default: false)
71
+
72
+ </details>
73
+
74
+ ## 2.0.0
75
+
76
+ ### Major Changes
77
+
78
+ - [#581](https://github.com/adobe/spectrum-tokens/pull/581) [`163fe7c`](https://github.com/adobe/spectrum-tokens/commit/163fe7c13bb00c639d202195a398126b6c25b58f) Thanks [@GarthDB](https://github.com/GarthDB)! - feat(component-schemas): add S2 Batch 2 components with breaking changes
79
+ - Add 6 new component schemas (coach-indicator, in-field-progress-button, etc.)
80
+ - Update avatar, badge, and checkbox components with breaking changes
81
+ - Expand size options and add new interaction states
82
+ - Major version bump required due to breaking schema changes
83
+
3
84
  ## 1.0.2
4
85
 
5
86
  ### Patch Changes
package/moon.yml CHANGED
@@ -8,7 +8,7 @@
8
8
  # OF ANY KIND, either express or implied. See the License for the specific language
9
9
  # governing permissions and limitations under the License.
10
10
  $schema: "https://moonrepo.dev/schemas/project.json"
11
- type: library
11
+ layer: library
12
12
  fileGroups:
13
13
  schemas:
14
14
  - "schemas/**/*.{yaml,yml,json}"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/spectrum-component-api-schemas",
3
- "version": "1.0.2",
3
+ "version": "3.0.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -11,21 +11,34 @@
11
11
  "properties": {
12
12
  "size": {
13
13
  "type": "number",
14
- "enum": [50, 75, 100, 200, 300, 400, 500, 600, 700],
15
- "default": 100
14
+ "enum": [
15
+ 50, 75, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200,
16
+ 1300, 1400, 1500
17
+ ],
18
+ "default": 500
16
19
  },
17
20
  "image": {
18
21
  "type": "string",
19
- "enum": ["text", "image"],
20
- "default": "image"
22
+ "enum": [
23
+ "user image",
24
+ "gradient image",
25
+ "gradient",
26
+ "guest image",
27
+ "initials"
28
+ ],
29
+ "default": "user image"
21
30
  },
22
31
  "isDisabled": {
23
32
  "type": "boolean",
24
33
  "default": false
25
34
  },
35
+ "showStroke": {
36
+ "type": "boolean",
37
+ "default": false
38
+ },
26
39
  "state": {
27
40
  "type": "string",
28
- "enum": ["default", "hover", "down", "keyboard focus"],
41
+ "enum": ["default", "down", "keyboard focus"],
29
42
  "default": "default"
30
43
  }
31
44
  }
@@ -28,9 +28,28 @@
28
28
  "magenta",
29
29
  "fuchsia",
30
30
  "purple",
31
- "seafoam"
31
+ "seafoam",
32
+ "accent",
33
+ "notice",
34
+ "gray",
35
+ "red",
36
+ "orange",
37
+ "chartreuse",
38
+ "celery",
39
+ "green",
40
+ "cyan",
41
+ "blue",
42
+ "pink",
43
+ "turquoise",
44
+ "brown",
45
+ "cinnamon",
46
+ "silver"
32
47
  ]
33
48
  },
49
+ "style": {
50
+ "type": "string",
51
+ "enum": ["bold", "subtle", "outline"]
52
+ },
34
53
  "fixed": {
35
54
  "type": "string",
36
55
  "enum": ["none", "top", "right", "bottom", "left"],
@@ -39,10 +39,7 @@
39
39
  "type": "boolean",
40
40
  "default": false
41
41
  },
42
- "isReadOnly": {
43
- "type": "boolean",
44
- "default": false
45
- },
42
+
46
43
  "state": {
47
44
  "type": "string",
48
45
  "enum": ["default", "hover", "down", "keyboard focus"],
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/coach-indicator.json",
4
+ "title": "Coach indicator",
5
+ "description": "Coach indicators help guide users through interfaces by highlighting important areas or features during onboarding and feature discovery.",
6
+ "meta": {
7
+ "category": "feedback",
8
+ "documentationUrl": "https://spectrum.adobe.com/page/coach-indicator/"
9
+ },
10
+ "type": "object",
11
+ "properties": {
12
+ "cornerRounding": {
13
+ "type": "string",
14
+ "enum": [
15
+ "none",
16
+ "corner-radius-75",
17
+ "corner-radius-100",
18
+ "corner-radius-200",
19
+ "corner-radius-300",
20
+ "corner-radius-400",
21
+ "corner-radius-500",
22
+ "corner-radius-600",
23
+ "corner-radius-700",
24
+ "corner-radius-800",
25
+ "full"
26
+ ]
27
+ },
28
+ "staticColor": {
29
+ "type": "string",
30
+ "enum": ["white"],
31
+ "description": "If not set to white, the coach indicator uses the default color."
32
+ }
33
+ }
34
+ }
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "variant": {
16
16
  "type": "string",
17
- "enum": ["neutral"],
17
+ "enum": ["neutral", "negative"],
18
18
  "default": "neutral"
19
19
  },
20
20
  "hideIcon": {
@@ -29,7 +29,8 @@
29
29
  },
30
30
  "isDisabled": {
31
31
  "type": "boolean",
32
- "default": false
32
+ "default": false,
33
+ "description": "Help text cannot be both disabled and negative variant."
33
34
  }
34
35
  }
35
36
  }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/in-field-progress-button.json",
4
+ "title": "In field progress button",
5
+ "description": "In field progress buttons provide interactive controls within form fields for actions like clearing, adding, or disclosing additional content.",
6
+ "meta": {
7
+ "category": "actions",
8
+ "documentationUrl": "https://spectrum.adobe.com/page/in-field-progress-button/"
9
+ },
10
+ "type": "object",
11
+ "properties": {
12
+ "size": {
13
+ "type": "string",
14
+ "enum": ["s", "m", "l", "xl"],
15
+ "default": "m"
16
+ },
17
+ "state": {
18
+ "type": "string",
19
+ "enum": ["default", "hover", "down", "keyboard focus"],
20
+ "default": "default"
21
+ },
22
+ "style": {
23
+ "type": "string",
24
+ "enum": ["disclosure", "clear", "dash", "add"]
25
+ },
26
+ "isQuiet": {
27
+ "type": "boolean",
28
+ "default": false
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/in-field-progress-circle.json",
4
+ "title": "In field progress circle",
5
+ "description": "In field progress circles indicate progress for loading states within form fields and input areas.",
6
+ "meta": {
7
+ "category": "feedback",
8
+ "documentationUrl": "https://spectrum.adobe.com/page/in-field-progress-circle/"
9
+ },
10
+ "type": "object",
11
+ "properties": {
12
+ "size": {
13
+ "type": "string",
14
+ "enum": ["s", "m", "l", "xl"],
15
+ "default": "m"
16
+ },
17
+ "staticColor": {
18
+ "type": "string",
19
+ "enum": ["white", "black"]
20
+ }
21
+ }
22
+ }
@@ -17,6 +17,10 @@
17
17
  "label": {
18
18
  "type": "string"
19
19
  },
20
+ "hideLabel": {
21
+ "type": "boolean",
22
+ "default": false
23
+ },
20
24
  "valueLabel": {
21
25
  "type": "string"
22
26
  },
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/opacity-checkerboard.json",
4
+ "title": "Opacity Checkerboard",
5
+ "description": "Opacity checkerboards provide a visual pattern background used in color swatches and UI elements to indicate transparency or when no color is selected.",
6
+ "meta": {
7
+ "category": "status",
8
+ "documentationUrl": "https://spectrum.adobe.com/page/opacity-checkerboard/"
9
+ },
10
+ "type": "object",
11
+ "properties": {
12
+ "verticalSize": {
13
+ "type": "number",
14
+ "enum": [16, 32, 64, 128, 256]
15
+ },
16
+ "horizontalSize": {
17
+ "type": "number",
18
+ "enum": [24, 40]
19
+ }
20
+ }
21
+ }
@@ -15,9 +15,9 @@
15
15
  "height": {
16
16
  "type": "number"
17
17
  },
18
- "showTip": {
18
+ "hideTip": {
19
19
  "type": "boolean",
20
- "default": true
20
+ "default": false
21
21
  },
22
22
  "placement": {
23
23
  "type": "string",
@@ -14,9 +14,23 @@
14
14
  "enum": ["default", "over background"],
15
15
  "default": "default"
16
16
  },
17
+ "staticColor": {
18
+ "type": "string",
19
+ "enum": ["white"],
20
+ "description": "Static color can only be white, otherwise it is default."
21
+ },
17
22
  "label": {
18
23
  "type": "string"
19
24
  },
25
+ "labelPosition": {
26
+ "type": "string",
27
+ "enum": ["top", "side"],
28
+ "default": "top"
29
+ },
30
+ "hideLabel": {
31
+ "type": "boolean",
32
+ "default": false
33
+ },
20
34
  "value": {
21
35
  "type": "number",
22
36
  "description": "Not applicable when indeterminate."
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/radio-button.json",
4
+ "title": "Radio button",
5
+ "description": "Radio buttons allow users to select a single option from a list of mutually exclusive options.",
6
+ "meta": {
7
+ "category": "inputs",
8
+ "documentationUrl": "https://spectrum.adobe.com/page/radio-button/"
9
+ },
10
+ "type": "object",
11
+ "properties": {
12
+ "state": {
13
+ "type": "string",
14
+ "enum": ["default", "hover", "down", "keyboard focus"],
15
+ "default": "default"
16
+ },
17
+ "isSelected": {
18
+ "type": "boolean",
19
+ "default": false
20
+ },
21
+ "isEmphasized": {
22
+ "type": "boolean",
23
+ "default": false
24
+ },
25
+ "label": {
26
+ "type": "boolean",
27
+ "default": true
28
+ }
29
+ }
30
+ }
@@ -11,9 +11,11 @@
11
11
  "properties": {
12
12
  "value": {
13
13
  "type": "number",
14
- "enum": [0, 1, 2, 3, 4, 5],
14
+ "minimum": 0,
15
+ "maximum": 5,
15
16
  "default": 0,
16
- "description": "From 0 to 5"
17
+ "multipleOf": 0.5,
18
+ "description": "From 0 to 5, can be a decimal to represent half stars"
17
19
  },
18
20
  "isEmphasized": {
19
21
  "type": "boolean",
@@ -12,6 +12,14 @@
12
12
  "label": {
13
13
  "type": "string"
14
14
  },
15
+ "hideLabel": {
16
+ "type": "boolean",
17
+ "default": false
18
+ },
19
+ "icon": {
20
+ "$ref": "https://opensource.adobe.com/spectrum-tokens/schemas/types/workflow-icon.json",
21
+ "description": "Icon must be present if the label is not defined."
22
+ },
15
23
  "value": {
16
24
  "type": "string"
17
25
  },
@@ -15,7 +15,7 @@
15
15
  "orientation": {
16
16
  "type": "string",
17
17
  "enum": ["horizontal", "vertical"],
18
- "default": "horizontal"
18
+ "default": "vertical"
19
19
  },
20
20
  "body": {
21
21
  "type": "string"
@@ -24,7 +24,7 @@
24
24
  "type": "boolean",
25
25
  "default": false
26
26
  },
27
- "showIllustration": {
27
+ "hideIllustration": {
28
28
  "type": "boolean",
29
29
  "default": false
30
30
  },
@@ -32,10 +32,19 @@
32
32
  "type": "boolean",
33
33
  "default": false
34
34
  },
35
+ "isDisabled": {
36
+ "type": "boolean",
37
+ "default": false
38
+ },
35
39
  "state": {
36
40
  "type": "string",
37
41
  "enum": ["default", "down", "hover", "keyboard focus"],
38
42
  "default": "default"
43
+ },
44
+ "multiple": {
45
+ "type": "boolean",
46
+ "default": false,
47
+ "description": "Set to true to allow multiple selections."
39
48
  }
40
49
  }
41
50
  }
@@ -32,7 +32,12 @@
32
32
  "turquoise",
33
33
  "cinnamon",
34
34
  "brown",
35
- "silver"
35
+ "silver",
36
+ "gray",
37
+ "red",
38
+ "orange",
39
+ "green",
40
+ "cyan"
36
41
  ],
37
42
  "default": "informative"
38
43
  },
@@ -40,10 +45,7 @@
40
45
  "type": "string",
41
46
  "enum": ["s", "m", "l", "xl"],
42
47
  "default": "m"
43
- },
44
- "isDisabled": {
45
- "type": "boolean",
46
- "default": false
47
48
  }
48
- }
49
+ },
50
+ "required": ["label"]
49
51
  }
@@ -17,6 +17,10 @@
17
17
  "default": "top",
18
18
  "enum": ["top", "side"]
19
19
  },
20
+ "hideLabel": {
21
+ "type": "boolean",
22
+ "default": false
23
+ },
20
24
  "value": {
21
25
  "type": "string",
22
26
  "description": "from minValue to maxValue"
@@ -17,6 +17,10 @@
17
17
  "default": "top",
18
18
  "enum": ["top", "side"]
19
19
  },
20
+ "hideLabel": {
21
+ "type": "boolean",
22
+ "default": false
23
+ },
20
24
  "value": {
21
25
  "type": "string",
22
26
  "description": "from minValue to maxValue"
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/thumbnail.json",
4
+ "title": "Thumbnail",
5
+ "description": "Thumbnails are small representations of images or content used for previews and navigation in galleries, lists, and media collections.",
6
+ "meta": {
7
+ "category": "navigation",
8
+ "documentationUrl": "https://spectrum.adobe.com/page/thumbnail/"
9
+ },
10
+ "type": "object",
11
+ "properties": {
12
+ "size": {
13
+ "type": "number",
14
+ "enum": [50, 75, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000]
15
+ },
16
+ "state": {
17
+ "type": "string",
18
+ "enum": ["default", "disabled"],
19
+ "default": "default"
20
+ }
21
+ }
22
+ }
@@ -14,12 +14,12 @@
14
14
  },
15
15
  "variant": {
16
16
  "type": "string",
17
- "enum": ["neutral", "informative", "positive", "negative"],
17
+ "enum": ["neutral", "informative", "negative"],
18
18
  "default": "neutral"
19
19
  },
20
20
  "hasIcon": {
21
21
  "type": "boolean",
22
- "description": "If the neutral variant, there’s never an icon.",
22
+ "description": "If the neutral variant, there is never an icon.",
23
23
  "default": false
24
24
  },
25
25
  "maxWidth": {
@@ -63,10 +63,10 @@ test("getSchemaFile should complete within reasonable time", async (t) => {
63
63
  const end = performance.now();
64
64
  const duration = end - start;
65
65
 
66
- // Should complete within 50ms
66
+ // Should complete within 200ms (increased for CI environment stability)
67
67
  t.true(
68
- duration < 75,
69
- `getSchemaFile took ${duration.toFixed(2)}ms, expected < 75ms`,
68
+ duration < 200,
69
+ `getSchemaFile took ${duration.toFixed(2)}ms, expected < 200ms`,
70
70
  );
71
71
  t.truthy(schema);
72
72
  });