@adobe/spectrum-tokens 14.12.0 → 14.13.1

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,107 @@
1
1
  # [**@adobe/spectrum-tokens**](https://github.com/adobe/spectrum-design-data)
2
2
 
3
+ ## 14.13.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1185](https://github.com/adobe/spectrum-design-data/pull/1185) [`eac1cb3`](https://github.com/adobe/spectrum-design-data/commit/eac1cb3121eda40c929e333f1375c75895244882) Thanks [@GarthDB](https://github.com/GarthDB)! - Restore the `./src/*` subpath export for @adobe/spectrum-tokens.
8
+ - **packages/tokens/package.json**: re-add `./src/*` to `exports`; dropped when the
9
+ strict allowlist landed in #740, only `./dist/*` was restored in #747, breaking
10
+ `@adobe/spectrum-tokens/src/*.json` imports for raw-source-JSON consumers.
11
+
12
+ ## 14.13.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#1152](https://github.com/adobe/spectrum-design-data/pull/1152) [`2573230`](https://github.com/adobe/spectrum-design-data/commit/2573230d0ccd39214adae0fde0c4a52e997445ca) Thanks [@GarthDB](https://github.com/GarthDB)! - ## Token sync from Spectrum Tokens Studio
17
+
18
+ **Original implementer:** @NateBaldwinDesign
19
+
20
+ ### Design motivation
21
+
22
+ Updated `base-padding-horizontal` tokens to follow S2 Web 2.0 design team's recommendations. Original values looked irregular when applied to Buttons. New values work for Buttons and all other base components per their review.
23
+
24
+ ### Token changes
25
+
26
+ ## Tokens Changed (24)
27
+
28
+ **Original Branch:** `396f5f8b`
29
+ **New Branch:** `f84bce21`
30
+
31
+ <details open><summary><strong>Added (9)</strong></summary>
32
+ - `group-gap-extra-large-spacious`
33
+ - `group-gap-extra-small-spacious`
34
+ - `group-gap-large-spacious`
35
+ - `group-gap-medium-spacious`
36
+ - `group-gap-small-spacious`
37
+ - `form-item-gap-extra-large`
38
+ - `form-item-gap-large`
39
+ - `form-item-gap-medium`
40
+ - `form-item-gap-small`
41
+ </details>
42
+
43
+ ### Updated (15)
44
+
45
+ <details open><summary><strong>Added Properties (5)</strong></summary>
46
+ - `base-padding-horizontal-2x-large`
47
+ - `desktop.schema`: `dimension.json`
48
+ - `desktop.value`: `18px`
49
+ - `desktop.uuid`: `1a49e758-b070-4d85-97c5-0f9cc786999b`
50
+ - `mobile.schema`: `dimension.json`
51
+ - `mobile.value`: `14px`
52
+ - `mobile.uuid`: `4f4ff59b-d91a-46fa-9388-b5ae49445d6f`
53
+ - `base-padding-horizontal-extra-large`
54
+ - `desktop.schema`: `dimension.json`
55
+ - `desktop.value`: `16px`
56
+ - `desktop.uuid`: `b32fb20b-31a7-43da-ba38-b9a177d0cffa`
57
+ - `mobile.schema`: `dimension.json`
58
+ - `mobile.value`: `12px`
59
+ - `mobile.uuid`: `698fa3d4-32dc-4cd2-bb79-d320effd8674`
60
+ - `base-padding-horizontal-large`
61
+ - `desktop.schema`: `dimension.json`
62
+ - `desktop.value`: `14px`
63
+ - `desktop.uuid`: `ece70425-e509-45cc-8336-76fc8afdb921`
64
+ - `mobile.schema`: `dimension.json`
65
+ - `mobile.value`: `12px`
66
+ - `mobile.uuid`: `38e5af78-cb3e-4ff4-9849-28f9d4c56a38`
67
+ - `base-padding-horizontal-medium`
68
+ - `desktop.schema`: `dimension.json`
69
+ - `desktop.value`: `12px`
70
+ - `desktop.uuid`: `52a75511-eb1b-4de2-a1bb-959365d8dc1a`
71
+ - `mobile.schema`: `dimension.json`
72
+ - `mobile.value`: `10px`
73
+ - `mobile.uuid`: `71731484-e759-4a5f-89ed-9fe04ac19aed`
74
+ - `base-padding-horizontal-small` - `desktop.schema`: `dimension.json` - `desktop.value`: `10px` - `desktop.uuid`: `ba072414-2cdd-4773-86a5-11ca47c08e23` - `mobile.schema`: `dimension.json` - `mobile.value`: `8px` - `mobile.uuid`: `6b43633d-8f29-4c24-b26e-687d6f161bce`
75
+ </details>
76
+ <details open><summary><strong>Deleted Properties (5)</strong></summary>
77
+
78
+ - `base-padding-horizontal-2x-large`
79
+ - `value`: -> `14px`
80
+ - `base-padding-horizontal-extra-large`
81
+ - `value`: -> `12px`
82
+ - `base-padding-horizontal-large`
83
+ - `value`: -> `12px`
84
+ - `base-padding-horizontal-medium`
85
+ - `value`: -> `10px`
86
+ - `base-padding-horizontal-small` - `value`: -> `8px`
87
+ </details>
88
+ <details open><summary><strong>Updated Properties (5)</strong></summary>
89
+
90
+ - `base-padding-horizontal-2x-large`
91
+ - `schema`: `dimension.json` -> `scale-set.json`
92
+ - `base-padding-horizontal-extra-large`
93
+ - `schema`: `dimension.json` -> `scale-set.json`
94
+ - `base-padding-horizontal-large`
95
+ - `schema`: `dimension.json` -> `scale-set.json`
96
+ - `base-padding-horizontal-medium`
97
+ - `schema`: `dimension.json` -> `scale-set.json`
98
+ - `base-padding-horizontal-small` - `schema`: `dimension.json` -> `scale-set.json`
99
+ </details>
100
+
101
+ ### References
102
+ - Tokens Studio PR: https://github.com/adobe/spectrum-tokens-studio-data/pull/306
103
+ - Spectrum Tokens PR: https://github.com/adobe/spectrum-design-data/pull/1150
104
+
3
105
  ## 14.12.0
4
106
 
5
107
  ### Minor Changes
package/LICENSE CHANGED
@@ -186,7 +186,7 @@ file or class name and description of purpose be included on the
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
189
+ Copyright 2026 Adobe
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
@@ -1799,12 +1799,12 @@
1799
1799
  "base-gap-large": "6px",
1800
1800
  "base-gap-medium": "6px",
1801
1801
  "base-gap-small": "4px",
1802
- "base-padding-horizontal-2x-large": "14px",
1803
- "base-padding-horizontal-extra-large": "12px",
1802
+ "base-padding-horizontal-2x-large": "18px",
1803
+ "base-padding-horizontal-extra-large": "16px",
1804
1804
  "base-padding-horizontal-extra-small": "8px",
1805
- "base-padding-horizontal-large": "12px",
1806
- "base-padding-horizontal-medium": "10px",
1807
- "base-padding-horizontal-small": "8px",
1805
+ "base-padding-horizontal-large": "14px",
1806
+ "base-padding-horizontal-medium": "12px",
1807
+ "base-padding-horizontal-small": "10px",
1808
1808
  "base-padding-horizontal-uniform-2x-large": "15px",
1809
1809
  "base-padding-horizontal-uniform-2x-small": "2px",
1810
1810
  "base-padding-horizontal-uniform-extra-large": "13px",
@@ -2337,16 +2337,25 @@
2337
2337
  "font-size-75": "12px",
2338
2338
  "font-size-800": "32px",
2339
2339
  "font-size-900": "36px",
2340
+ "form-item-gap-extra-large": "6px",
2341
+ "form-item-gap-large": "6px",
2342
+ "form-item-gap-medium": "6px",
2343
+ "form-item-gap-small": "4px",
2340
2344
  "gradient-stop-2-avatar": 0.6666,
2341
2345
  "gradient-stop-2-genai": 0.3333,
2342
2346
  "gradient-stop-2-premium": 0.6666,
2343
2347
  "gripper-icon-size-100": "24px",
2344
2348
  "group-gap-compact": "2px",
2345
2349
  "group-gap-extra-large": "16px",
2350
+ "group-gap-extra-large-spacious": "24px",
2346
2351
  "group-gap-extra-small": "4px",
2352
+ "group-gap-extra-small-spacious": "8px",
2347
2353
  "group-gap-large": "12px",
2354
+ "group-gap-large-spacious": "20px",
2348
2355
  "group-gap-medium": "8px",
2356
+ "group-gap-medium-spacious": "16px",
2349
2357
  "group-gap-small": "6px",
2358
+ "group-gap-small-spacious": "12px",
2350
2359
  "heading-cjk-line-height": 1.5,
2351
2360
  "heading-cjk-size-l": "25px",
2352
2361
  "heading-cjk-size-m": "20px",
@@ -21155,6 +21155,26 @@
21155
21155
  "value": "4px",
21156
21156
  "uuid": "a4ddc1a6-1367-4153-bb7c-c217d16d10f4"
21157
21157
  },
21158
+ "form-item-gap-extra-large": {
21159
+ "ref": "{base-gap-extra-large}",
21160
+ "value": "6px",
21161
+ "uuid": "a70d4855-0c3f-4b59-9f63-16334cd06134"
21162
+ },
21163
+ "form-item-gap-large": {
21164
+ "ref": "{base-gap-large}",
21165
+ "value": "6px",
21166
+ "uuid": "61cc3354-d256-482f-91d7-e4361cc4da9d"
21167
+ },
21168
+ "form-item-gap-medium": {
21169
+ "ref": "{base-gap-medium}",
21170
+ "value": "6px",
21171
+ "uuid": "56c23cee-9c0b-4851-ae72-a7287151b2fb"
21172
+ },
21173
+ "form-item-gap-small": {
21174
+ "ref": "{base-gap-small}",
21175
+ "value": "4px",
21176
+ "uuid": "33bbbb47-23c6-4390-9577-42be709ceb98"
21177
+ },
21158
21178
  "gripper-icon-size-100": {
21159
21179
  "value": "24px",
21160
21180
  "uuid": "e6f95e88-636d-4d3a-8966-8c811dc697d6"
@@ -28234,28 +28254,68 @@
28234
28254
  "uuid": "1247c1ab-9e31-482a-832c-d32911a1e698"
28235
28255
  },
28236
28256
  "base-padding-horizontal-2x-large": {
28237
- "value": "14px",
28238
- "uuid": "3eb3e963-b4b8-462f-b4e2-a48c657e2fd2"
28257
+ "sets": {
28258
+ "desktop": {
28259
+ "value": "18px",
28260
+ "uuid": "1a49e758-b070-4d85-97c5-0f9cc786999b"
28261
+ },
28262
+ "mobile": {
28263
+ "value": "14px",
28264
+ "uuid": "4f4ff59b-d91a-46fa-9388-b5ae49445d6f"
28265
+ }
28266
+ }
28239
28267
  },
28240
28268
  "base-padding-horizontal-extra-large": {
28241
- "value": "12px",
28242
- "uuid": "26cedd5b-5c67-4da7-974f-806b20064a5b"
28269
+ "sets": {
28270
+ "desktop": {
28271
+ "value": "16px",
28272
+ "uuid": "b32fb20b-31a7-43da-ba38-b9a177d0cffa"
28273
+ },
28274
+ "mobile": {
28275
+ "value": "12px",
28276
+ "uuid": "698fa3d4-32dc-4cd2-bb79-d320effd8674"
28277
+ }
28278
+ }
28243
28279
  },
28244
28280
  "base-padding-horizontal-extra-small": {
28245
28281
  "value": "8px",
28246
28282
  "uuid": "e1030243-729a-4afe-a6d5-47b8e620e2ce"
28247
28283
  },
28248
28284
  "base-padding-horizontal-large": {
28249
- "value": "12px",
28250
- "uuid": "ef179042-3ad8-4db5-8e23-983134f5906c"
28285
+ "sets": {
28286
+ "desktop": {
28287
+ "value": "14px",
28288
+ "uuid": "ece70425-e509-45cc-8336-76fc8afdb921"
28289
+ },
28290
+ "mobile": {
28291
+ "value": "12px",
28292
+ "uuid": "38e5af78-cb3e-4ff4-9849-28f9d4c56a38"
28293
+ }
28294
+ }
28251
28295
  },
28252
28296
  "base-padding-horizontal-medium": {
28253
- "value": "10px",
28254
- "uuid": "4043f679-9ec2-4eef-b934-19f60d7e74f5"
28297
+ "sets": {
28298
+ "desktop": {
28299
+ "value": "12px",
28300
+ "uuid": "52a75511-eb1b-4de2-a1bb-959365d8dc1a"
28301
+ },
28302
+ "mobile": {
28303
+ "value": "10px",
28304
+ "uuid": "71731484-e759-4a5f-89ed-9fe04ac19aed"
28305
+ }
28306
+ }
28255
28307
  },
28256
28308
  "base-padding-horizontal-small": {
28257
- "value": "8px",
28258
- "uuid": "0732ae91-c85b-45ab-8a57-e21622768db3"
28309
+ "sets": {
28310
+ "desktop": {
28311
+ "value": "10px",
28312
+ "uuid": "ba072414-2cdd-4773-86a5-11ca47c08e23"
28313
+ },
28314
+ "mobile": {
28315
+ "value": "8px",
28316
+ "uuid": "6b43633d-8f29-4c24-b26e-687d6f161bce"
28317
+ }
28318
+ }
28259
28319
  },
28260
28320
  "base-padding-horizontal-uniform-2x-large": {
28261
28321
  "ref": "{base-padding-vertical-2x-large}",
@@ -30298,26 +30358,51 @@
30298
30358
  "value": "16px",
30299
30359
  "uuid": "89e74f93-9124-41a8-96b0-0fcc5ce9ab08"
30300
30360
  },
30361
+ "group-gap-extra-large-spacious": {
30362
+ "ref": "{spacing-400}",
30363
+ "value": "24px",
30364
+ "uuid": "44df5dc7-cd4a-455c-a662-640963b956be"
30365
+ },
30301
30366
  "group-gap-extra-small": {
30302
30367
  "ref": "{spacing-75}",
30303
30368
  "value": "4px",
30304
30369
  "uuid": "c3ada312-da94-4779-bbf0-0fde3beb8121"
30305
30370
  },
30371
+ "group-gap-extra-small-spacious": {
30372
+ "ref": "{spacing-100}",
30373
+ "value": "8px",
30374
+ "uuid": "6ef5ec39-cff9-4689-8603-d89a9f12d6a5"
30375
+ },
30306
30376
  "group-gap-large": {
30307
30377
  "ref": "{spacing-200}",
30308
30378
  "value": "12px",
30309
30379
  "uuid": "fd40a531-eee6-48b2-8212-a33d012a2173"
30310
30380
  },
30381
+ "group-gap-large-spacious": {
30382
+ "ref": "{spacing-350}",
30383
+ "value": "20px",
30384
+ "uuid": "74977a77-fecf-4840-99c0-a55cfad9c7e0"
30385
+ },
30311
30386
  "group-gap-medium": {
30312
30387
  "ref": "{spacing-100}",
30313
30388
  "value": "8px",
30314
30389
  "uuid": "6f2ccc0b-42ff-4f1a-a789-527427440d13"
30315
30390
  },
30391
+ "group-gap-medium-spacious": {
30392
+ "ref": "{spacing-300}",
30393
+ "value": "16px",
30394
+ "uuid": "ac8268b8-7975-4b8b-8043-33900765ae32"
30395
+ },
30316
30396
  "group-gap-small": {
30317
30397
  "ref": "{spacing-85}",
30318
30398
  "value": "6px",
30319
30399
  "uuid": "ce1865aa-9f33-492a-80c6-981fd503d70c"
30320
30400
  },
30401
+ "group-gap-small-spacious": {
30402
+ "ref": "{spacing-200}",
30403
+ "value": "12px",
30404
+ "uuid": "13e12260-c5e2-4579-8b28-db919f4d4612"
30405
+ },
30321
30406
  "label-to-description-0": {
30322
30407
  "value": "0px",
30323
30408
  "uuid": "4a00c810-c099-4de1-85b8-aaa7ed9538bb"
package/moon.yml CHANGED
@@ -24,7 +24,7 @@ tasks:
24
24
  - ./schemas
25
25
  - --exceptions-path
26
26
  - ./naming-exceptions.json
27
- platform: system
27
+ toolchain: "system"
28
28
  deps:
29
29
  - sdk:build
30
30
  inputs:
@@ -44,7 +44,7 @@ tasks:
44
44
  - ./schemas
45
45
  - --exceptions-path
46
46
  - ./naming-exceptions.json
47
- platform: system
47
+ toolchain: "system"
48
48
  deps:
49
49
  - sdk:build
50
50
  inputs:
@@ -60,7 +60,6 @@ tasks:
60
60
  command:
61
61
  - node
62
62
  - tasks/buildSpectrumTokens.js
63
- platform: node
64
63
  inputs:
65
64
  - "tasks/buildSpectrumTokens.js"
66
65
  - "@globs(sources)"
@@ -70,7 +69,6 @@ tasks:
70
69
  command:
71
70
  - node
72
71
  - tasks/buildManifest.js
73
- platform: node
74
72
  inputs:
75
73
  - "tasks/buildManifest.js"
76
74
  - "@globs(sources)"
@@ -81,15 +79,16 @@ tasks:
81
79
  - rm
82
80
  - -rf
83
81
  - dist
84
- local: true
85
- platform: system
82
+ toolchain: "system"
83
+ options:
84
+ runInCI: false
86
85
  verifyLegacyRoundtrip:
87
86
  command: ../../sdk/target/debug/design-data
88
87
  args:
89
88
  - migrate
90
89
  - roundtrip-verify
91
90
  - ./src
92
- platform: system
91
+ toolchain: "system"
93
92
  deps:
94
93
  - sdk:build
95
94
  inputs:
@@ -102,7 +101,7 @@ tasks:
102
101
  - ../design-data/tokens
103
102
  - --reference
104
103
  - ./src
105
- platform: system
104
+ toolchain: "system"
106
105
  deps:
107
106
  - sdk:build
108
107
  inputs:
@@ -122,10 +121,8 @@ tasks:
122
121
  - ~:verifyDesignDataSnapshot
123
122
  - ~:verifyLegacyRoundtrip
124
123
  - ~:verifyLegacyOutput
125
- platform: node
126
124
  test-watch:
127
125
  command:
128
126
  - ava
129
127
  - --watch
130
- local: true
131
- platform: node
128
+ preset: "server"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/spectrum-tokens",
3
- "version": "14.12.0",
3
+ "version": "14.13.1",
4
4
  "description": "Design tokens for Spectrum, Adobe's design system",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -24,6 +24,7 @@
24
24
  "exports": {
25
25
  ".": "./index.js",
26
26
  "./schemas/token-file.json": "./schemas/token-file.json",
27
+ "./src/*": "./src/*",
27
28
  "./dist/*": "./dist/*"
28
29
  },
29
30
  "devDependencies": {
@@ -4777,6 +4777,30 @@
4777
4777
  "value": "4px",
4778
4778
  "uuid": "a4ddc1a6-1367-4153-bb7c-c217d16d10f4"
4779
4779
  },
4780
+ "form-item-gap-extra-large": {
4781
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
4782
+ "component": "form-item",
4783
+ "value": "{base-gap-extra-large}",
4784
+ "uuid": "a70d4855-0c3f-4b59-9f63-16334cd06134"
4785
+ },
4786
+ "form-item-gap-large": {
4787
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
4788
+ "component": "form-item",
4789
+ "value": "{base-gap-large}",
4790
+ "uuid": "61cc3354-d256-482f-91d7-e4361cc4da9d"
4791
+ },
4792
+ "form-item-gap-medium": {
4793
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
4794
+ "component": "form-item",
4795
+ "value": "{base-gap-medium}",
4796
+ "uuid": "56c23cee-9c0b-4851-ae72-a7287151b2fb"
4797
+ },
4798
+ "form-item-gap-small": {
4799
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
4800
+ "component": "form-item",
4801
+ "value": "{base-gap-small}",
4802
+ "uuid": "33bbbb47-23c6-4390-9577-42be709ceb98"
4803
+ },
4780
4804
  "gripper-icon-size-100": {
4781
4805
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
4782
4806
  "component": "gripper-icon",
package/src/layout.json CHANGED
@@ -191,16 +191,38 @@
191
191
  "description": "Spacing between child elements for base UI elements at small size"
192
192
  },
193
193
  "base-padding-horizontal-2x-large": {
194
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
195
- "value": "14px",
194
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/scale-set.json",
196
195
  "uuid": "3eb3e963-b4b8-462f-b4e2-a48c657e2fd2",
197
- "description": "Horizontal internal spacing for base UI elements at 2x-large size"
196
+ "description": "Horizontal internal spacing for base UI elements at 2x-large size",
197
+ "sets": {
198
+ "desktop": {
199
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
200
+ "value": "18px",
201
+ "uuid": "1a49e758-b070-4d85-97c5-0f9cc786999b"
202
+ },
203
+ "mobile": {
204
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
205
+ "value": "14px",
206
+ "uuid": "4f4ff59b-d91a-46fa-9388-b5ae49445d6f"
207
+ }
208
+ }
198
209
  },
199
210
  "base-padding-horizontal-extra-large": {
200
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
201
- "value": "12px",
211
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/scale-set.json",
202
212
  "uuid": "26cedd5b-5c67-4da7-974f-806b20064a5b",
203
- "description": "Horizontal internal spacing for base UI elements at extra-large size"
213
+ "description": "Horizontal internal spacing for base UI elements at extra-large size",
214
+ "sets": {
215
+ "desktop": {
216
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
217
+ "value": "16px",
218
+ "uuid": "b32fb20b-31a7-43da-ba38-b9a177d0cffa"
219
+ },
220
+ "mobile": {
221
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
222
+ "value": "12px",
223
+ "uuid": "698fa3d4-32dc-4cd2-bb79-d320effd8674"
224
+ }
225
+ }
204
226
  },
205
227
  "base-padding-horizontal-extra-small": {
206
228
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
@@ -209,22 +231,55 @@
209
231
  "description": "Horizontal internal spacing for base UI elements at extra-small size"
210
232
  },
211
233
  "base-padding-horizontal-large": {
212
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
213
- "value": "12px",
234
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/scale-set.json",
214
235
  "uuid": "ef179042-3ad8-4db5-8e23-983134f5906c",
215
- "description": "Horizontal internal spacing for base UI elements at large size"
236
+ "description": "Horizontal internal spacing for base UI elements at large size",
237
+ "sets": {
238
+ "desktop": {
239
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
240
+ "value": "14px",
241
+ "uuid": "ece70425-e509-45cc-8336-76fc8afdb921"
242
+ },
243
+ "mobile": {
244
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
245
+ "value": "12px",
246
+ "uuid": "38e5af78-cb3e-4ff4-9849-28f9d4c56a38"
247
+ }
248
+ }
216
249
  },
217
250
  "base-padding-horizontal-medium": {
218
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
219
- "value": "10px",
251
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/scale-set.json",
220
252
  "uuid": "4043f679-9ec2-4eef-b934-19f60d7e74f5",
221
- "description": "Horizontal internal spacing for base UI elements at medium size"
253
+ "description": "Horizontal internal spacing for base UI elements at medium size",
254
+ "sets": {
255
+ "desktop": {
256
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
257
+ "value": "12px",
258
+ "uuid": "52a75511-eb1b-4de2-a1bb-959365d8dc1a"
259
+ },
260
+ "mobile": {
261
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
262
+ "value": "10px",
263
+ "uuid": "71731484-e759-4a5f-89ed-9fe04ac19aed"
264
+ }
265
+ }
222
266
  },
223
267
  "base-padding-horizontal-small": {
224
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
225
- "value": "8px",
268
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/scale-set.json",
226
269
  "uuid": "0732ae91-c85b-45ab-8a57-e21622768db3",
227
- "description": "Horizontal internal spacing for base UI elements at small size"
270
+ "description": "Horizontal internal spacing for base UI elements at small size",
271
+ "sets": {
272
+ "desktop": {
273
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
274
+ "value": "10px",
275
+ "uuid": "ba072414-2cdd-4773-86a5-11ca47c08e23"
276
+ },
277
+ "mobile": {
278
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
279
+ "value": "8px",
280
+ "uuid": "6b43633d-8f29-4c24-b26e-687d6f161bce"
281
+ }
282
+ }
228
283
  },
229
284
  "base-padding-horizontal-uniform-2x-large": {
230
285
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
@@ -3142,30 +3197,55 @@
3142
3197
  "uuid": "89e74f93-9124-41a8-96b0-0fcc5ce9ab08",
3143
3198
  "description": "Spacing between child elements at extra-large size"
3144
3199
  },
3200
+ "group-gap-extra-large-spacious": {
3201
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3202
+ "value": "{spacing-400}",
3203
+ "uuid": "44df5dc7-cd4a-455c-a662-640963b956be"
3204
+ },
3145
3205
  "group-gap-extra-small": {
3146
3206
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3147
3207
  "value": "{spacing-75}",
3148
3208
  "uuid": "c3ada312-da94-4779-bbf0-0fde3beb8121",
3149
3209
  "description": "Spacing between child elements at extra-small size"
3150
3210
  },
3211
+ "group-gap-extra-small-spacious": {
3212
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3213
+ "value": "{spacing-100}",
3214
+ "uuid": "6ef5ec39-cff9-4689-8603-d89a9f12d6a5"
3215
+ },
3151
3216
  "group-gap-large": {
3152
3217
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3153
3218
  "value": "{spacing-200}",
3154
3219
  "uuid": "fd40a531-eee6-48b2-8212-a33d012a2173",
3155
3220
  "description": "Spacing between child elements at large size"
3156
3221
  },
3222
+ "group-gap-large-spacious": {
3223
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3224
+ "value": "{spacing-350}",
3225
+ "uuid": "74977a77-fecf-4840-99c0-a55cfad9c7e0"
3226
+ },
3157
3227
  "group-gap-medium": {
3158
3228
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3159
3229
  "value": "{spacing-100}",
3160
3230
  "uuid": "6f2ccc0b-42ff-4f1a-a789-527427440d13",
3161
3231
  "description": "Spacing between child elements at medium size"
3162
3232
  },
3233
+ "group-gap-medium-spacious": {
3234
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3235
+ "value": "{spacing-300}",
3236
+ "uuid": "ac8268b8-7975-4b8b-8043-33900765ae32"
3237
+ },
3163
3238
  "group-gap-small": {
3164
3239
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3165
3240
  "value": "{spacing-85}",
3166
3241
  "uuid": "ce1865aa-9f33-492a-80c6-981fd503d70c",
3167
3242
  "description": "Spacing between child elements at small size"
3168
3243
  },
3244
+ "group-gap-small-spacious": {
3245
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/alias.json",
3246
+ "value": "{spacing-200}",
3247
+ "uuid": "13e12260-c5e2-4579-8b28-db919f4d4612"
3248
+ },
3169
3249
  "label-to-description-0": {
3170
3250
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/token-types/dimension.json",
3171
3251
  "value": "0px",
@@ -0,0 +1,146 @@
1
+ /*
2
+ Copyright 2026 Adobe. All rights reserved.
3
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License. You may obtain a copy
5
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+
7
+ Unless required by applicable law or agreed to in writing, software distributed under
8
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ OF ANY KIND, either express or implied. See the License for the specific language
10
+ governing permissions and limitations under the License.
11
+ */
12
+
13
+ /**
14
+ * Asserts that the pnpm-published tarball for @adobe/spectrum-tokens contains every
15
+ * file that consumers depend on. Uses `pnpm pack --json` rather than plain
16
+ * filesystem checks so the test honours `files`, `.npmignore`, and npm defaults —
17
+ * the same rules that govern what actually gets published.
18
+ *
19
+ * pnpm is used (not npm) per the project's pnpm-only mandate. pnpm 10 supports
20
+ * --json on pack and produces the same file-list structure. Note: pnpm has no
21
+ * --dry-run flag but does write a tarball to disk; the tarball is cleaned up after.
22
+ */
23
+
24
+ import test from "ava";
25
+ import { execFileSync } from "child_process";
26
+ import { readFile, rm } from "fs/promises";
27
+ import { fileURLToPath } from "url";
28
+ import path from "path";
29
+
30
+ const pkgDir = path.dirname(
31
+ fileURLToPath(new URL("../package.json", import.meta.url)),
32
+ );
33
+
34
+ /**
35
+ * Run `pnpm pack --json` and return the Set of packed file paths.
36
+ * Cleans up the written tarball afterward. Result is shared across all tests
37
+ * in this module via a module-level Promise.
38
+ */
39
+ const packedFilesPromise = (async () => {
40
+ const raw = execFileSync("pnpm", ["pack", "--json"], {
41
+ cwd: pkgDir,
42
+ encoding: "utf8",
43
+ stdio: ["ignore", "pipe", "ignore"],
44
+ });
45
+ const result = JSON.parse(raw);
46
+ // Clean up the tarball pnpm wrote to disk.
47
+ if (result.filename) {
48
+ await rm(path.join(pkgDir, result.filename), { force: true });
49
+ }
50
+ const files = result.files.map((f) => f.path);
51
+ return new Set(files);
52
+ })();
53
+
54
+ // ---------------------------------------------------------------------------
55
+ // Explicit required files
56
+ // ---------------------------------------------------------------------------
57
+
58
+ const requiredFiles = [
59
+ "index.js",
60
+ "package.json",
61
+ "manifest.json",
62
+ "dist/json/variables.json",
63
+ "schemas/token-file.json",
64
+ "README.md",
65
+ "LICENSE",
66
+ ];
67
+
68
+ test("packed tarball includes all explicitly required files", async (t) => {
69
+ const packed = await packedFilesPromise;
70
+ const missing = requiredFiles.filter((f) => !packed.has(f));
71
+ t.deepEqual(
72
+ missing,
73
+ [],
74
+ `Missing from published tarball: ${missing.join(", ")}`,
75
+ );
76
+ });
77
+
78
+ // ---------------------------------------------------------------------------
79
+ // All src/ token files (derived from manifest.json, not hardcoded)
80
+ // ---------------------------------------------------------------------------
81
+
82
+ test("packed tarball includes every src/ token file listed in manifest.json", async (t) => {
83
+ const [packed, manifest] = await Promise.all([
84
+ packedFilesPromise,
85
+ readFile(path.join(pkgDir, "manifest.json"), "utf8").then(JSON.parse),
86
+ ]);
87
+
88
+ // manifest.json entries look like "src/color-palette.json"
89
+ const missing = manifest.filter((f) => !packed.has(f));
90
+ t.deepEqual(
91
+ missing,
92
+ [],
93
+ `src/ files in manifest.json missing from tarball: ${missing.join(", ")}`,
94
+ );
95
+ });
96
+
97
+ // ---------------------------------------------------------------------------
98
+ // Self-maintaining: every exports / main / tokens target must be packed
99
+ // ---------------------------------------------------------------------------
100
+
101
+ test("packed tarball satisfies every exports, main, and tokens target in package.json", async (t) => {
102
+ const [packed, pkg] = await Promise.all([
103
+ packedFilesPromise,
104
+ readFile(path.join(pkgDir, "package.json"), "utf8").then(JSON.parse),
105
+ ]);
106
+
107
+ const failures = [];
108
+
109
+ // Strip leading "./" and check or prefix-match against packed paths.
110
+ const toRelative = (target) => target.replace(/^\.\//, "");
111
+
112
+ const checkTarget = (fieldName, target) => {
113
+ const rel = toRelative(target);
114
+ if (rel.endsWith("*")) {
115
+ // Wildcard: at least one packed file must share the prefix.
116
+ const prefix = rel.slice(0, -1); // e.g. "src/" or "dist/"
117
+ if (![...packed].some((p) => p.startsWith(prefix))) {
118
+ failures.push(`${fieldName}: no packed files match prefix "${prefix}"`);
119
+ }
120
+ } else {
121
+ if (!packed.has(rel)) {
122
+ failures.push(`${fieldName}: "${rel}" not in packed tarball`);
123
+ }
124
+ }
125
+ };
126
+
127
+ // exports map
128
+ if (pkg.exports) {
129
+ for (const [subpath, target] of Object.entries(pkg.exports)) {
130
+ checkTarget(`exports["${subpath}"]`, target);
131
+ }
132
+ }
133
+
134
+ // main (e.g. "./index.js")
135
+ if (pkg.main) {
136
+ checkTarget("main", pkg.main);
137
+ }
138
+
139
+ // tokens (e.g. "dist/json/variables.json")
140
+ if (pkg.tokens) {
141
+ const target = pkg.tokens.startsWith("./") ? pkg.tokens : `./${pkg.tokens}`;
142
+ checkTarget("tokens", target);
143
+ }
144
+
145
+ t.deepEqual(failures, [], failures.join("\n"));
146
+ });
@@ -48,6 +48,19 @@ test("package.json exports preserve backward-compatible entry points", async (t)
48
48
  "./dist/*",
49
49
  "dist wildcard export required for @adobe/spectrum-tokens/dist/json/variables.json",
50
50
  );
51
+ t.is(
52
+ exports["./src/*"],
53
+ "./src/*",
54
+ "src wildcard export required for @adobe/spectrum-tokens/src/*.json",
55
+ );
56
+ });
57
+
58
+ test("src/color-palette.json maps through ./src/* export and exists", async (t) => {
59
+ const absolutePath = path.join(pkgDir, "src/color-palette.json");
60
+ await t.notThrowsAsync(
61
+ async () => access(absolutePath),
62
+ "src/color-palette.json must exist in the package",
63
+ );
51
64
  });
52
65
 
53
66
  test("dist/json/variables.json maps through ./dist/* export and exists after build", async (t) => {