@vellira-ui/tokens 2.98.6 → 2.99.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/dist/css/tokens.css +171 -213
- package/dist/dark/components/contextMenu.d.ts +13 -3
- package/dist/dark/components/contextMenu.d.ts.map +1 -1
- package/dist/dark/components/contextMenu.js +0 -2
- package/dist/dark/components/dropdown.d.ts +20 -10
- package/dist/dark/components/dropdown.d.ts.map +1 -1
- package/dist/dark/components/dropdown.js +6 -5
- package/dist/dark/components/input.d.ts +1 -1
- package/dist/dark/components/input.js +4 -4
- package/dist/dark/components/modal.d.ts +16 -7
- package/dist/dark/components/modal.d.ts.map +1 -1
- package/dist/dark/components/modal.js +1 -3
- package/dist/dark/components/popover.d.ts +5 -25
- package/dist/dark/components/popover.d.ts.map +1 -1
- package/dist/dark/components/popover.js +0 -4
- package/dist/dark/components/radio.js +1 -1
- package/dist/dark/components/select.d.ts +9 -2
- package/dist/dark/components/select.d.ts.map +1 -1
- package/dist/dark/components/select.js +5 -5
- package/dist/dark/components/tooltip.d.ts.map +1 -1
- package/dist/dark/components/tooltip.js +0 -2
- package/dist/dark/semantic/action.d.ts +2 -2
- package/dist/dark/semantic/action.js +2 -2
- package/dist/dark/semantic/border.d.ts +1 -1
- package/dist/dark/semantic/border.js +1 -1
- package/dist/dark/semantic/control.js +1 -1
- package/dist/dark/semantic/focus.d.ts +1 -1
- package/dist/dark/semantic/focus.js +1 -1
- package/dist/dark/semantic/icons.d.ts +2 -2
- package/dist/dark/semantic/icons.js +2 -2
- package/dist/dark/semantic/index.d.ts +0 -1
- package/dist/dark/semantic/index.d.ts.map +1 -1
- package/dist/dark/semantic/index.js +0 -1
- package/dist/dark/semantic/overlay.d.ts +2 -2
- package/dist/dark/semantic/overlay.js +2 -2
- package/dist/dark/semantic/status.d.ts +6 -6
- package/dist/dark/semantic/status.js +6 -6
- package/dist/dark/semantic/surface.d.ts +1 -1
- package/dist/dark/semantic/surface.js +1 -1
- package/dist/dark/semantic/text.d.ts +2 -2
- package/dist/dark/semantic/text.js +2 -2
- package/dist/factories/componentFocusRing.d.ts +15 -0
- package/dist/factories/componentFocusRing.d.ts.map +1 -0
- package/dist/factories/componentFocusRing.js +7 -0
- package/dist/factories/createContextMenuTokens.d.ts +50 -18
- package/dist/factories/createContextMenuTokens.d.ts.map +1 -1
- package/dist/factories/createContextMenuTokens.js +6 -5
- package/dist/factories/createModalTokens.d.ts +41 -21
- package/dist/factories/createModalTokens.d.ts.map +1 -1
- package/dist/factories/createModalTokens.js +8 -9
- package/dist/factories/createPopoverTokens.d.ts +12 -20
- package/dist/factories/createPopoverTokens.d.ts.map +1 -1
- package/dist/factories/createPopoverTokens.js +5 -9
- package/dist/factories/createTooltipTokens.d.ts +4 -7
- package/dist/factories/createTooltipTokens.d.ts.map +1 -1
- package/dist/factories/createTooltipTokens.js +4 -4
- package/dist/generated/token-types.d.ts +7 -6
- package/dist/generated/token-types.d.ts.map +1 -1
- package/dist/generated/token-types.js +176 -248
- package/dist/highContrast/components/contextMenu.d.ts +13 -3
- package/dist/highContrast/components/contextMenu.d.ts.map +1 -1
- package/dist/highContrast/components/contextMenu.js +0 -2
- package/dist/highContrast/components/dropdown.d.ts +19 -9
- package/dist/highContrast/components/dropdown.d.ts.map +1 -1
- package/dist/highContrast/components/dropdown.js +6 -5
- package/dist/highContrast/components/input.d.ts +4 -4
- package/dist/highContrast/components/input.js +4 -4
- package/dist/highContrast/components/modal.d.ts +16 -7
- package/dist/highContrast/components/modal.d.ts.map +1 -1
- package/dist/highContrast/components/modal.js +0 -2
- package/dist/highContrast/components/popover.d.ts +5 -25
- package/dist/highContrast/components/popover.d.ts.map +1 -1
- package/dist/highContrast/components/popover.js +0 -4
- package/dist/highContrast/components/radio.js +1 -1
- package/dist/highContrast/components/select.d.ts +10 -3
- package/dist/highContrast/components/select.d.ts.map +1 -1
- package/dist/highContrast/components/select.js +5 -5
- package/dist/highContrast/components/tooltip.d.ts.map +1 -1
- package/dist/highContrast/components/tooltip.js +0 -2
- package/dist/highContrast/semantic/action.d.ts +2 -2
- package/dist/highContrast/semantic/action.js +2 -2
- package/dist/highContrast/semantic/border.d.ts +1 -1
- package/dist/highContrast/semantic/border.js +1 -1
- package/dist/highContrast/semantic/focus.d.ts +1 -1
- package/dist/highContrast/semantic/focus.js +1 -1
- package/dist/highContrast/semantic/icons.d.ts +4 -4
- package/dist/highContrast/semantic/icons.js +4 -4
- package/dist/highContrast/semantic/index.d.ts +0 -1
- package/dist/highContrast/semantic/index.d.ts.map +1 -1
- package/dist/highContrast/semantic/index.js +0 -1
- package/dist/highContrast/semantic/overlay.d.ts +2 -2
- package/dist/highContrast/semantic/overlay.js +2 -2
- package/dist/highContrast/semantic/status.d.ts +4 -4
- package/dist/highContrast/semantic/status.js +4 -4
- package/dist/highContrast/semantic/surface.d.ts +1 -1
- package/dist/highContrast/semantic/surface.js +1 -1
- package/dist/light/components/contextMenu.d.ts +13 -3
- package/dist/light/components/contextMenu.d.ts.map +1 -1
- package/dist/light/components/contextMenu.js +0 -2
- package/dist/light/components/dropdown.d.ts +19 -9
- package/dist/light/components/dropdown.d.ts.map +1 -1
- package/dist/light/components/dropdown.js +6 -5
- package/dist/light/components/input.js +4 -4
- package/dist/light/components/modal.d.ts +16 -7
- package/dist/light/components/modal.d.ts.map +1 -1
- package/dist/light/components/modal.js +0 -2
- package/dist/light/components/popover.d.ts +5 -25
- package/dist/light/components/popover.d.ts.map +1 -1
- package/dist/light/components/popover.js +0 -4
- package/dist/light/components/radio.js +1 -1
- package/dist/light/components/select.d.ts +9 -2
- package/dist/light/components/select.d.ts.map +1 -1
- package/dist/light/components/select.js +5 -5
- package/dist/light/components/tooltip.d.ts.map +1 -1
- package/dist/light/components/tooltip.js +0 -2
- package/dist/light/semantic/action.d.ts +2 -2
- package/dist/light/semantic/action.js +2 -2
- package/dist/light/semantic/border.d.ts +1 -1
- package/dist/light/semantic/border.js +1 -1
- package/dist/light/semantic/focus.d.ts +1 -1
- package/dist/light/semantic/focus.js +1 -1
- package/dist/light/semantic/icons.d.ts +2 -2
- package/dist/light/semantic/icons.js +2 -2
- package/dist/light/semantic/index.d.ts +0 -1
- package/dist/light/semantic/index.d.ts.map +1 -1
- package/dist/light/semantic/index.js +0 -1
- package/dist/light/semantic/menu.js +1 -1
- package/dist/light/semantic/overlay.d.ts +2 -2
- package/dist/light/semantic/overlay.js +2 -2
- package/dist/light/semantic/status.d.ts +4 -4
- package/dist/light/semantic/status.js +4 -4
- package/dist/light/semantic/surface.d.ts +1 -1
- package/dist/light/semantic/surface.js +1 -1
- package/dist/platform-output/component-token-intents.d.ts +71 -0
- package/dist/platform-output/component-token-intents.d.ts.map +1 -0
- package/dist/platform-output/component-token-intents.js +110 -0
- package/dist/platform-output/component-token-web-compatibility.d.ts +32 -0
- package/dist/platform-output/component-token-web-compatibility.d.ts.map +1 -0
- package/dist/platform-output/component-token-web-compatibility.js +40 -0
- package/dist/preservation/token-migrations.d.ts +208 -13
- package/dist/preservation/token-migrations.d.ts.map +1 -1
- package/dist/preservation/token-migrations.js +332 -30
- package/dist/token-architecture.d.ts +56 -10
- package/dist/token-architecture.d.ts.map +1 -1
- package/dist/token-architecture.js +129 -20
- package/package.json +1 -1
- package/dist/dark/semantic/navigation.d.ts +0 -34
- package/dist/dark/semantic/navigation.d.ts.map +0 -1
- package/dist/dark/semantic/navigation.js +0 -37
- package/dist/highContrast/semantic/navigation.d.ts +0 -34
- package/dist/highContrast/semantic/navigation.d.ts.map +0 -1
- package/dist/highContrast/semantic/navigation.js +0 -36
- package/dist/light/semantic/navigation.d.ts +0 -34
- package/dist/light/semantic/navigation.d.ts.map +0 -1
- package/dist/light/semantic/navigation.js +0 -37
|
@@ -15,6 +15,7 @@ export const tokenMigrationThemeNames = [
|
|
|
15
15
|
export const tokenMigrationPlatforms = ['web', 'react-native'];
|
|
16
16
|
const valueKindWebFixApproval = '#881 explicitly requires correcting invalid unitless CSS serialization; targeted serializer regressions and the pinned Linux visual suite are the approval evidence.';
|
|
17
17
|
const stateVocabularyVisualApproval = '#879/#882 explicitly authorizes removal of pressed/active semantic conflation; the change stays inside the existing Vellira palette and requires pinned Linux visual regression.';
|
|
18
|
+
const semanticVocabularyVisualApproval = '#879/#883 explicitly authorizes Semantic Vocabulary V1 normalization and the narrowly scoped hierarchy/status corrections inside existing Vellira palettes; token preservation plus pinned Linux visual regression are required evidence.';
|
|
18
19
|
const stateVocabularyRenamePairsV1 = [
|
|
19
20
|
[
|
|
20
21
|
'control-active-bg',
|
|
@@ -61,36 +62,6 @@ const stateVocabularyRenamePairsV1 = [
|
|
|
61
62
|
'semantic.action.primary.active.border',
|
|
62
63
|
'semantic.action.primary.pressed.border',
|
|
63
64
|
],
|
|
64
|
-
[
|
|
65
|
-
'action-secondary-active-bg',
|
|
66
|
-
'semantic.action.secondary.active.bg',
|
|
67
|
-
'semantic.action.secondary.pressed.bg',
|
|
68
|
-
],
|
|
69
|
-
[
|
|
70
|
-
'action-secondary-active-fg',
|
|
71
|
-
'semantic.action.secondary.active.fg',
|
|
72
|
-
'semantic.action.secondary.pressed.fg',
|
|
73
|
-
],
|
|
74
|
-
[
|
|
75
|
-
'action-secondary-active-border',
|
|
76
|
-
'semantic.action.secondary.active.border',
|
|
77
|
-
'semantic.action.secondary.pressed.border',
|
|
78
|
-
],
|
|
79
|
-
[
|
|
80
|
-
'action-close-active-bg',
|
|
81
|
-
'semantic.action.close.active.bg',
|
|
82
|
-
'semantic.action.close.pressed.bg',
|
|
83
|
-
],
|
|
84
|
-
[
|
|
85
|
-
'action-close-active-fg',
|
|
86
|
-
'semantic.action.close.active.fg',
|
|
87
|
-
'semantic.action.close.pressed.fg',
|
|
88
|
-
],
|
|
89
|
-
[
|
|
90
|
-
'action-close-active-border',
|
|
91
|
-
'semantic.action.close.active.border',
|
|
92
|
-
'semantic.action.close.pressed.border',
|
|
93
|
-
],
|
|
94
65
|
[
|
|
95
66
|
'action-danger-active-bg',
|
|
96
67
|
'semantic.action.danger.active.bg',
|
|
@@ -135,6 +106,176 @@ const stateVocabularyRenameMigrationsV1 = stateVocabularyRenamePairsV1.flatMap((
|
|
|
135
106
|
evidence: 'Token preservation validates the canonical/RN value-preserving rename; generated CSS checks and pinned Linux visual regression validate Web output.',
|
|
136
107
|
},
|
|
137
108
|
]);
|
|
109
|
+
const semanticActionRoleRenamePairsV1 = [
|
|
110
|
+
['secondary', 'accent'],
|
|
111
|
+
['close', 'neutral'],
|
|
112
|
+
].flatMap(([fromRole, toRole]) => ['default', 'hover', 'active', 'muted', 'subtle'].flatMap((fromState) => ['bg', 'fg', 'border'].map((field) => {
|
|
113
|
+
const toState = fromState === 'active' ? 'pressed' : fromState;
|
|
114
|
+
return [
|
|
115
|
+
`action-${fromRole}-${fromState}-${field}`,
|
|
116
|
+
`semantic.action.${fromRole}.${fromState}.${field}`,
|
|
117
|
+
`semantic.action.${toRole}.${toState}.${field}`,
|
|
118
|
+
];
|
|
119
|
+
})));
|
|
120
|
+
const semanticStatusEmphasisRenamePairsV1 = ['success', 'error', 'warning', 'info'].map((status) => [
|
|
121
|
+
`status-${status}-strong`,
|
|
122
|
+
`semantic.status.${status}.strong`,
|
|
123
|
+
`semantic.status.${status}.emphasisFg`,
|
|
124
|
+
]);
|
|
125
|
+
const semanticVocabularySimpleRenamePairsV1 = [
|
|
126
|
+
['icons-primary', 'semantic.icons.primary', 'semantic.icons.interactive'],
|
|
127
|
+
['icons-hover', 'semantic.icons.hover', 'semantic.icons.interactiveHover'],
|
|
128
|
+
['border-focus', 'semantic.border.focus', 'semantic.border.interactive'],
|
|
129
|
+
[
|
|
130
|
+
'focus-ring-offset',
|
|
131
|
+
'semantic.focus.ring.offset',
|
|
132
|
+
'semantic.focus.ring.offsetColor',
|
|
133
|
+
],
|
|
134
|
+
[
|
|
135
|
+
'overlay-popover-bg',
|
|
136
|
+
'semantic.overlay.popover.bg',
|
|
137
|
+
'semantic.overlay.floating.bg',
|
|
138
|
+
],
|
|
139
|
+
[
|
|
140
|
+
'overlay-popover-border',
|
|
141
|
+
'semantic.overlay.popover.border',
|
|
142
|
+
'semantic.overlay.floating.border',
|
|
143
|
+
],
|
|
144
|
+
[
|
|
145
|
+
'overlay-modal-bg',
|
|
146
|
+
'semantic.overlay.modal.bg',
|
|
147
|
+
'semantic.overlay.dialog.bg',
|
|
148
|
+
],
|
|
149
|
+
[
|
|
150
|
+
'overlay-modal-border',
|
|
151
|
+
'semantic.overlay.modal.border',
|
|
152
|
+
'semantic.overlay.dialog.border',
|
|
153
|
+
],
|
|
154
|
+
];
|
|
155
|
+
const semanticVocabularyRenamePairsV1 = [
|
|
156
|
+
...semanticActionRoleRenamePairsV1,
|
|
157
|
+
...semanticStatusEmphasisRenamePairsV1,
|
|
158
|
+
...semanticVocabularySimpleRenamePairsV1,
|
|
159
|
+
];
|
|
160
|
+
const semanticVocabularyRenameMigrationsV1 = semanticVocabularyRenamePairsV1.flatMap(([id, from, to]) => [
|
|
161
|
+
{
|
|
162
|
+
id: `883-${id}-rename`,
|
|
163
|
+
kind: 'rename',
|
|
164
|
+
issue: '#883',
|
|
165
|
+
reason: 'Rename a public semantic role to Semantic Vocabulary V1 while preserving its resolved design value.',
|
|
166
|
+
platforms: ['react-native'],
|
|
167
|
+
from,
|
|
168
|
+
to,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: `883-${id}-web-identity`,
|
|
172
|
+
kind: 'representation-change',
|
|
173
|
+
layer: 'platform-output',
|
|
174
|
+
issue: '#883',
|
|
175
|
+
reason: 'Align the public Web CSS variable identity with the normalized Semantic Vocabulary V1 role.',
|
|
176
|
+
platforms: ['web'],
|
|
177
|
+
from,
|
|
178
|
+
to,
|
|
179
|
+
equivalence: 'The paired canonical #883 rename preserves the resolved design value; only the public Web CSS variable identity changes.',
|
|
180
|
+
evidence: 'Token preservation validates the canonical/RN rename; generated CSS and pinned Linux visual regression validate Web output identity.',
|
|
181
|
+
},
|
|
182
|
+
]);
|
|
183
|
+
const semanticVocabularyRemovalPathsV1 = [
|
|
184
|
+
'semantic.surface.background',
|
|
185
|
+
'semantic.navigation.hover.bg',
|
|
186
|
+
'semantic.navigation.hover.fg',
|
|
187
|
+
'semantic.navigation.active.bg',
|
|
188
|
+
'semantic.navigation.active.fg',
|
|
189
|
+
'semantic.navigation.brandHover.bg',
|
|
190
|
+
'semantic.navigation.brandHover.fg',
|
|
191
|
+
'semantic.navigation.tabHover.fg',
|
|
192
|
+
'semantic.navigation.tabFocus.ring',
|
|
193
|
+
'semantic.navigation.optionHover.bg',
|
|
194
|
+
'semantic.navigation.optionHover.fg',
|
|
195
|
+
'semantic.navigation.optionActive.bg',
|
|
196
|
+
'semantic.navigation.optionActive.fg',
|
|
197
|
+
'semantic.navigation.triggerHover.bg',
|
|
198
|
+
'semantic.navigation.triggerHover.fg',
|
|
199
|
+
'semantic.navigation.border',
|
|
200
|
+
];
|
|
201
|
+
const semanticVocabularyRemovalMigrationsV1 = semanticVocabularyRemovalPathsV1.map((from) => ({
|
|
202
|
+
id: `883-remove-${from.replaceAll('.', '-')}`,
|
|
203
|
+
kind: 'remove',
|
|
204
|
+
issue: '#883',
|
|
205
|
+
reason: from === 'semantic.surface.background'
|
|
206
|
+
? 'Remove ambiguous surface.background after consumers are split by purpose: application roots use surface.canvas and bounded neutral containers use the explicit surface.panel role introduced by #912.'
|
|
207
|
+
: 'Remove the unused legacy semantic.navigation namespace instead of preserving a duplicate component-history vocabulary.',
|
|
208
|
+
from,
|
|
209
|
+
}));
|
|
210
|
+
const semanticPanelAdditionV1 = {
|
|
211
|
+
id: '912-surface-panel-addition',
|
|
212
|
+
kind: 'addition',
|
|
213
|
+
issue: '#912',
|
|
214
|
+
reason: 'Add an explicit bounded neutral panel/chrome role after the #883 audit missed authored CSS consumers of the removed surface.background variable; panel preserves those historical bounded-container values without changing canvas or elevated semantics.',
|
|
215
|
+
to: 'semantic.surface.panel',
|
|
216
|
+
};
|
|
217
|
+
const semanticVocabularyVisualMigrationsV1 = [
|
|
218
|
+
{
|
|
219
|
+
id: '883-dark-text-muted-hierarchy',
|
|
220
|
+
kind: 'visual-change',
|
|
221
|
+
issue: '#883',
|
|
222
|
+
themes: ['dark'],
|
|
223
|
+
reason: 'Correct the Dark text hierarchy so muted remains stronger than subtle using only existing Vellira palette values.',
|
|
224
|
+
from: 'semantic.text.muted',
|
|
225
|
+
approved: true,
|
|
226
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
id: '883-dark-text-subtle-hierarchy',
|
|
230
|
+
kind: 'visual-change',
|
|
231
|
+
issue: '#883',
|
|
232
|
+
themes: ['dark'],
|
|
233
|
+
reason: 'Correct the Dark text hierarchy so subtle remains below muted using only existing Vellira palette values.',
|
|
234
|
+
from: 'semantic.text.subtle',
|
|
235
|
+
approved: true,
|
|
236
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
id: '883-high-contrast-icons-muted-hierarchy',
|
|
240
|
+
kind: 'visual-change',
|
|
241
|
+
issue: '#883',
|
|
242
|
+
themes: ['high-contrast'],
|
|
243
|
+
reason: 'Correct the High Contrast icon hierarchy so muted remains stronger than subtle using the existing gray scale.',
|
|
244
|
+
from: 'semantic.icons.muted',
|
|
245
|
+
approved: true,
|
|
246
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
id: '883-high-contrast-icons-subtle-hierarchy',
|
|
250
|
+
kind: 'visual-change',
|
|
251
|
+
issue: '#883',
|
|
252
|
+
themes: ['high-contrast'],
|
|
253
|
+
reason: 'Correct the High Contrast icon hierarchy so subtle remains below muted using the existing gray scale.',
|
|
254
|
+
from: 'semantic.icons.subtle',
|
|
255
|
+
approved: true,
|
|
256
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
id: '883-dark-warning-ring-own-palette',
|
|
260
|
+
kind: 'visual-change',
|
|
261
|
+
issue: '#883',
|
|
262
|
+
themes: ['dark'],
|
|
263
|
+
reason: 'Correct warning.ring to use the existing warning palette instead of the unrelated error palette.',
|
|
264
|
+
from: 'semantic.status.warning.ring',
|
|
265
|
+
approved: true,
|
|
266
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: '883-dark-info-ring-own-palette',
|
|
270
|
+
kind: 'visual-change',
|
|
271
|
+
issue: '#883',
|
|
272
|
+
themes: ['dark'],
|
|
273
|
+
reason: 'Correct info.ring to use the existing info palette instead of the unrelated error palette.',
|
|
274
|
+
from: 'semantic.status.info.ring',
|
|
275
|
+
approved: true,
|
|
276
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
277
|
+
},
|
|
278
|
+
];
|
|
138
279
|
/**
|
|
139
280
|
* Migration/test metadata only. This is not a runtime token registry.
|
|
140
281
|
*
|
|
@@ -142,8 +283,169 @@ const stateVocabularyRenameMigrationsV1 = stateVocabularyRenamePairsV1.flatMap((
|
|
|
142
283
|
* change, or intentionally approved visual change must be recorded here before
|
|
143
284
|
* the preservation baseline is allowed to accept it.
|
|
144
285
|
*/
|
|
286
|
+
const semanticVocabularyDownstreamVisualMigrationsV1 = [
|
|
287
|
+
{
|
|
288
|
+
id: '883-dark-dropdown-separator-muted-hierarchy',
|
|
289
|
+
kind: 'visual-change',
|
|
290
|
+
issue: '#883',
|
|
291
|
+
themes: ['dark'],
|
|
292
|
+
reason: 'Dropdown separator follows the corrected Dark muted text hierarchy without introducing a new palette value.',
|
|
293
|
+
from: 'components.dropdown.separator.fg',
|
|
294
|
+
approved: true,
|
|
295
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
id: '883-dark-form-field-helper-muted-hierarchy',
|
|
299
|
+
kind: 'visual-change',
|
|
300
|
+
issue: '#883',
|
|
301
|
+
themes: ['dark'],
|
|
302
|
+
reason: 'FormField helper text follows the corrected Dark muted text hierarchy without introducing a new palette value.',
|
|
303
|
+
from: 'components.formField.helperText.default.fg',
|
|
304
|
+
approved: true,
|
|
305
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
id: '883-dark-input-readonly-placeholder-muted-hierarchy',
|
|
309
|
+
kind: 'visual-change',
|
|
310
|
+
issue: '#883',
|
|
311
|
+
themes: ['dark'],
|
|
312
|
+
reason: 'Input read-only placeholder follows the corrected Dark muted text hierarchy without introducing a new palette value.',
|
|
313
|
+
from: 'components.input.readOnly.placeholder',
|
|
314
|
+
approved: true,
|
|
315
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
id: '883-dark-modal-close-button-pressed-state',
|
|
319
|
+
kind: 'visual-change',
|
|
320
|
+
issue: '#883',
|
|
321
|
+
themes: ['dark'],
|
|
322
|
+
reason: 'Modal close-button physical press now consumes the canonical surface.pressed state instead of the persistent surface.active state.',
|
|
323
|
+
from: 'components.modal.closeButton.pressed.bg',
|
|
324
|
+
approved: true,
|
|
325
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
id: '883-high-contrast-input-clear-button-icon-hierarchy',
|
|
329
|
+
kind: 'visual-change',
|
|
330
|
+
issue: '#883',
|
|
331
|
+
themes: ['high-contrast'],
|
|
332
|
+
reason: 'Input clear-button foreground follows the corrected High Contrast muted icon hierarchy.',
|
|
333
|
+
from: 'components.input.clearButton.fg',
|
|
334
|
+
approved: true,
|
|
335
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
id: '883-high-contrast-input-muted-icon-hierarchy',
|
|
339
|
+
kind: 'visual-change',
|
|
340
|
+
issue: '#883',
|
|
341
|
+
themes: ['high-contrast'],
|
|
342
|
+
reason: 'Input muted icon follows the corrected High Contrast muted/subtle icon hierarchy.',
|
|
343
|
+
from: 'components.input.icon.muted',
|
|
344
|
+
approved: true,
|
|
345
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
id: '883-high-contrast-input-readonly-icon-hierarchy',
|
|
349
|
+
kind: 'visual-change',
|
|
350
|
+
issue: '#883',
|
|
351
|
+
themes: ['high-contrast'],
|
|
352
|
+
reason: 'Input read-only icon follows the corrected High Contrast muted icon hierarchy.',
|
|
353
|
+
from: 'components.input.readOnly.icon',
|
|
354
|
+
approved: true,
|
|
355
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
id: '883-high-contrast-input-spinner-icon-hierarchy',
|
|
359
|
+
kind: 'visual-change',
|
|
360
|
+
issue: '#883',
|
|
361
|
+
themes: ['high-contrast'],
|
|
362
|
+
reason: 'Input spinner foreground follows the corrected High Contrast muted icon hierarchy.',
|
|
363
|
+
from: 'components.input.spinner.fg',
|
|
364
|
+
approved: true,
|
|
365
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
id: '883-high-contrast-select-clear-button-icon-hierarchy',
|
|
369
|
+
kind: 'visual-change',
|
|
370
|
+
issue: '#883',
|
|
371
|
+
themes: ['high-contrast'],
|
|
372
|
+
reason: 'Select clear-button foreground follows the corrected High Contrast muted icon hierarchy.',
|
|
373
|
+
from: 'components.select.clearButton.fg',
|
|
374
|
+
approved: true,
|
|
375
|
+
approvalEvidence: semanticVocabularyVisualApproval,
|
|
376
|
+
},
|
|
377
|
+
];
|
|
378
|
+
const platformNeutralComponentRepresentationPathsV1 = [
|
|
379
|
+
'components.contextMenu.content.shadow',
|
|
380
|
+
'components.contextMenu.item.focus.ring.shadow',
|
|
381
|
+
'components.contextMenu.trigger.focus.ring.shadow',
|
|
382
|
+
'components.dropdown.content.shadow',
|
|
383
|
+
'components.dropdown.item.focus.ring.shadow',
|
|
384
|
+
'components.dropdown.trigger.focus.ring.shadow',
|
|
385
|
+
'components.modal.closeButton.focus.ring.shadow',
|
|
386
|
+
'components.modal.content.maxHeight',
|
|
387
|
+
'components.modal.content.shadow',
|
|
388
|
+
'components.select.dropdown.shadow',
|
|
389
|
+
'components.select.option.selected.shadow',
|
|
390
|
+
'components.tooltip.content.shadow',
|
|
391
|
+
];
|
|
392
|
+
const platformNeutralComponentRepresentationMigrationsV1 = platformNeutralComponentRepresentationPathsV1.map((from) => ({
|
|
393
|
+
id: `884-representation-${from.replaceAll('.', '-')}`,
|
|
394
|
+
kind: 'representation-change',
|
|
395
|
+
layer: 'canonical',
|
|
396
|
+
issue: '#884',
|
|
397
|
+
reason: 'Replace renderer-shaped canonical component storage with a renderer-neutral intent at the same logical token path.',
|
|
398
|
+
from,
|
|
399
|
+
equivalence: 'The canonical representation changes only; Web resolves the intent to the pre-#884 CSS value and React Native resolves consumed elevation/layout intents to the pre-#884 native presentation output.',
|
|
400
|
+
evidence: '#880 preservation locks serialized Web output while component-token-output-equivalence regressions cover Web and React Native adapters for Light, Dark, and High Contrast themes.',
|
|
401
|
+
}));
|
|
402
|
+
const platformNeutralLegacyCanonicalRemovalsV1 = [
|
|
403
|
+
'components.modal.content.nativeMaxHeight',
|
|
404
|
+
'components.popover.content.shadow.native.x',
|
|
405
|
+
'components.popover.content.shadow.native.y',
|
|
406
|
+
'components.popover.content.shadow.native.blur',
|
|
407
|
+
'components.popover.content.shadow.native.color',
|
|
408
|
+
'components.popover.content.shadow.native.opacity',
|
|
409
|
+
'components.popover.content.shadow.native.elevation',
|
|
410
|
+
];
|
|
411
|
+
const platformNeutralLegacyCanonicalRemovalMigrationsV1 = platformNeutralLegacyCanonicalRemovalsV1.map((from) => ({
|
|
412
|
+
id: `884-remove-${from.replaceAll('.', '-')}`,
|
|
413
|
+
kind: 'remove',
|
|
414
|
+
issue: '#884',
|
|
415
|
+
reason: 'Remove renderer-specific canonical storage after the same renderer output moved behind the platform-output adapter; the Web identity remains a compatibility alias until #889.',
|
|
416
|
+
platforms: ['react-native'],
|
|
417
|
+
from,
|
|
418
|
+
}));
|
|
419
|
+
const platformNeutralPopoverShadowMigrationV1 = {
|
|
420
|
+
id: '884-popover-shadow-web-to-canonical-intent',
|
|
421
|
+
kind: 'representation-change',
|
|
422
|
+
layer: 'canonical',
|
|
423
|
+
issue: '#884',
|
|
424
|
+
reason: 'Collapse the old Popover shadow.web branch into one renderer-neutral canonical shadow intent.',
|
|
425
|
+
from: 'components.popover.content.shadow.web',
|
|
426
|
+
to: 'components.popover.content.shadow',
|
|
427
|
+
equivalence: 'The new canonical lg elevation intent resolves to the same semantic lg Web shadow and the same structured native lg shadow used before #884.',
|
|
428
|
+
evidence: '#880 preservation retains the legacy Web output identity and component-token-output-equivalence regressions lock the Web/RN adapter results for all three themes.',
|
|
429
|
+
};
|
|
430
|
+
const platformNeutralPopoverWebAdditionV1 = {
|
|
431
|
+
id: '884-popover-normalized-web-shadow-output',
|
|
432
|
+
kind: 'addition',
|
|
433
|
+
issue: '#884',
|
|
434
|
+
reason: 'Expose the normalized Popover shadow path in Web platform output while retaining the old renderer-shaped CSS identities as compatibility aliases until #889.',
|
|
435
|
+
platforms: ['web'],
|
|
436
|
+
to: 'components.popover.content.shadow',
|
|
437
|
+
};
|
|
145
438
|
export const tokenMigrationManifestV1 = [
|
|
146
439
|
...stateVocabularyRenameMigrationsV1,
|
|
440
|
+
...platformNeutralComponentRepresentationMigrationsV1,
|
|
441
|
+
...platformNeutralLegacyCanonicalRemovalMigrationsV1,
|
|
442
|
+
platformNeutralPopoverShadowMigrationV1,
|
|
443
|
+
platformNeutralPopoverWebAdditionV1,
|
|
444
|
+
...semanticVocabularyRenameMigrationsV1,
|
|
445
|
+
...semanticVocabularyRemovalMigrationsV1,
|
|
446
|
+
semanticPanelAdditionV1,
|
|
447
|
+
...semanticVocabularyVisualMigrationsV1,
|
|
448
|
+
...semanticVocabularyDownstreamVisualMigrationsV1,
|
|
147
449
|
{
|
|
148
450
|
id: '882-radio-active-scale-remove',
|
|
149
451
|
kind: 'remove',
|
|
@@ -128,12 +128,6 @@ export declare const legitimatePersistentActiveStateDomainsV1: readonly [{
|
|
|
128
128
|
}, {
|
|
129
129
|
readonly pattern: "semantic.menu.item.danger.active";
|
|
130
130
|
readonly meaning: "Current/highlighted danger menu item.";
|
|
131
|
-
}, {
|
|
132
|
-
readonly pattern: "semantic.navigation.active";
|
|
133
|
-
readonly meaning: "Current navigation destination.";
|
|
134
|
-
}, {
|
|
135
|
-
readonly pattern: "semantic.navigation.optionActive";
|
|
136
|
-
readonly meaning: "Current/highlighted navigation option.";
|
|
137
131
|
}, {
|
|
138
132
|
readonly pattern: "components.contextMenu.item.active";
|
|
139
133
|
readonly meaning: "Current/highlighted context-menu item.";
|
|
@@ -147,15 +141,67 @@ export declare const legitimatePersistentActiveStateDomainsV1: readonly [{
|
|
|
147
141
|
readonly pattern: "components.tabs.*.*.active";
|
|
148
142
|
readonly meaning: "Current active tab presentation; physical press is a separate interaction.";
|
|
149
143
|
}];
|
|
144
|
+
export declare const semanticVocabularyV1: {
|
|
145
|
+
readonly surface: {
|
|
146
|
+
readonly purpose: "Layer and interaction backgrounds with explicit root, bounded-panel, and elevated ownership.";
|
|
147
|
+
readonly roles: readonly ["canvas", "default", "panel", "subtle", "muted", "elevated", "hover", "active", "pressed", "disabled", "danger", "inverse"];
|
|
148
|
+
};
|
|
149
|
+
readonly text: {
|
|
150
|
+
readonly purpose: "Text foreground hierarchy and text interaction roles.";
|
|
151
|
+
readonly roles: readonly ["primary", "secondary", "muted", "subtle", "disabled", "brand", "interactive", "interactiveHover", "interactivePressed", "inverse"];
|
|
152
|
+
};
|
|
153
|
+
readonly icons: {
|
|
154
|
+
readonly purpose: "Icon foreground hierarchy; interactive roles are distinct from brand identity.";
|
|
155
|
+
readonly roles: readonly ["default", "secondary", "muted", "subtle", "disabled", "interactive", "brand", "interactiveHover", "success", "danger", "inverse"];
|
|
156
|
+
};
|
|
157
|
+
readonly border: {
|
|
158
|
+
readonly purpose: "Structural border strength plus generic interactive border emphasis.";
|
|
159
|
+
readonly roles: readonly ["subtle", "muted", "default", "strong", "elevated", "disabled", "interactive"];
|
|
160
|
+
};
|
|
161
|
+
readonly divider: {
|
|
162
|
+
readonly purpose: "Non-interactive separators.";
|
|
163
|
+
readonly roles: readonly ["muted", "default", "strong"];
|
|
164
|
+
};
|
|
165
|
+
readonly focus: {
|
|
166
|
+
readonly purpose: "Input-focus indication only; independent from hover and pressed states.";
|
|
167
|
+
readonly roles: readonly ["ring.color", "ring.width", "ring.shadow", "ring.offsetColor"];
|
|
168
|
+
};
|
|
169
|
+
readonly status: {
|
|
170
|
+
readonly purpose: "Status intent paint using explicit consumption roles.";
|
|
171
|
+
readonly intents: readonly ["success", "error", "warning", "info"];
|
|
172
|
+
readonly roles: readonly ["fg", "bg", "border", "ring", "emphasisFg"];
|
|
173
|
+
};
|
|
174
|
+
readonly action: {
|
|
175
|
+
readonly purpose: "Action intent palettes; accent is the cyan secondary-brand hue, neutral is non-brand action chrome.";
|
|
176
|
+
readonly roles: readonly ["primary", "accent", "neutral", "danger"];
|
|
177
|
+
readonly states: readonly ["default", "hover", "pressed", "muted", "subtle"];
|
|
178
|
+
};
|
|
179
|
+
readonly control: {
|
|
180
|
+
readonly purpose: "Generic form-control state paint; pressed is physical press and selected is persistent choice.";
|
|
181
|
+
readonly roles: readonly ["default", "hover", "pressed", "selected", "disabled", "focus"];
|
|
182
|
+
};
|
|
183
|
+
readonly menu: {
|
|
184
|
+
readonly purpose: "Menu-item roles where active/current is a legitimate domain state.";
|
|
185
|
+
readonly roles: readonly ["item", "item.danger"];
|
|
186
|
+
};
|
|
187
|
+
readonly overlay: {
|
|
188
|
+
readonly purpose: "Reusable overlay surfaces named by presentation purpose, not component history.";
|
|
189
|
+
readonly roles: readonly ["backdrop", "tooltip", "floating", "dialog"];
|
|
190
|
+
};
|
|
191
|
+
readonly shadow: {
|
|
192
|
+
readonly purpose: "Semantic elevation references; renderer ownership is normalized separately.";
|
|
193
|
+
readonly roles: readonly ["sm", "md", "lg", "xl"];
|
|
194
|
+
};
|
|
195
|
+
};
|
|
150
196
|
export declare const canonicalTokenVocabulary: {
|
|
151
|
-
readonly surface: readonly ["canvas", "default", "subtle", "muted", "elevated", "hover", "active", "pressed", "disabled", "danger", "inverse"];
|
|
197
|
+
readonly surface: readonly ["canvas", "default", "panel", "subtle", "muted", "elevated", "hover", "active", "pressed", "disabled", "danger", "inverse"];
|
|
152
198
|
readonly state: readonly ["default", "hover", "pressed", "active", "selected", "disabled", "focus"];
|
|
153
199
|
readonly foreground: readonly ["primary", "secondary", "muted", "subtle", "disabled", "brand", "interactive", "interactiveHover", "interactivePressed", "inverse"];
|
|
154
|
-
readonly border: readonly ["subtle", "muted", "default", "strong", "elevated", "disabled"];
|
|
155
|
-
readonly intent: readonly ["primary", "neutral", "success", "warning", "danger"];
|
|
200
|
+
readonly border: readonly ["subtle", "muted", "default", "strong", "elevated", "disabled", "interactive"];
|
|
201
|
+
readonly intent: readonly ["primary", "accent", "neutral", "success", "warning", "danger"];
|
|
156
202
|
readonly status: readonly ["success", "error", "warning", "info"];
|
|
157
203
|
};
|
|
158
|
-
export declare const canonicalSemanticRolePaths: readonly ["surface.canvas", "surface.default", "surface.subtle", "surface.muted", "surface.elevated", "surface.hover", "surface.active", "surface.pressed", "surface.disabled", "surface.danger", "surface.inverse", "text.primary", "text.secondary", "text.muted", "text.subtle", "text.disabled", "text.brand", "text.interactive", "text.interactiveHover", "text.interactivePressed", "text.inverse", "border.subtle", "border.muted", "border.default", "border.strong", "border.elevated", "border.disabled", "border.
|
|
204
|
+
export declare const canonicalSemanticRolePaths: readonly ["surface.canvas", "surface.default", "surface.panel", "surface.subtle", "surface.muted", "surface.elevated", "surface.hover", "surface.active", "surface.pressed", "surface.disabled", "surface.danger", "surface.inverse", "text.primary", "text.secondary", "text.muted", "text.subtle", "text.disabled", "text.brand", "text.interactive", "text.interactiveHover", "text.interactivePressed", "text.inverse", "icons.default", "icons.secondary", "icons.muted", "icons.subtle", "icons.disabled", "icons.interactive", "icons.brand", "icons.interactiveHover", "icons.success", "icons.danger", "icons.inverse", "border.subtle", "border.muted", "border.default", "border.strong", "border.elevated", "border.disabled", "border.interactive", "divider.muted", "divider.default", "divider.strong", "focus.ring.color", "focus.ring.width", "focus.ring.shadow", "focus.ring.offsetColor", "status.success.fg", "status.success.bg", "status.success.border", "status.success.ring", "status.success.emphasisFg", "status.error.fg", "status.error.bg", "status.error.border", "status.error.ring", "status.error.emphasisFg", "status.warning.fg", "status.warning.bg", "status.warning.border", "status.warning.ring", "status.warning.emphasisFg", "status.info.fg", "status.info.bg", "status.info.border", "status.info.ring", "status.info.emphasisFg", "overlay.backdrop", "overlay.tooltip.bg", "overlay.tooltip.fg", "overlay.tooltip.border", "overlay.floating.bg", "overlay.floating.border", "overlay.dialog.bg", "overlay.dialog.border"];
|
|
159
205
|
export declare const componentTokenFactoryModel: {
|
|
160
206
|
readonly canonicalName: "create<Component>Tokens";
|
|
161
207
|
readonly legacyPaletteName: "create<Component>Palette is retained when the component exposes intent palettes.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-architecture.d.ts","sourceRoot":"","sources":["../src/token-architecture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,uBAAuB,qGAO1B,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAChC,wFAAiG,CAAC;AAEpG,eAAO,MAAM,eAAe,wLAelB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qCAAqC;;;;;;;;;;CA2BqB,CAAC;AAsHxE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,cAAc,GAAG,IAAI,CAwCvB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,cAAc,CAQhB;AAED,eAAO,MAAM,0BAA0B,qFAQ7B,CAAC;AAEX,MAAM,MAAM,yBAAyB,GACnC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC/B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wCAAwC
|
|
1
|
+
{"version":3,"file":"token-architecture.d.ts","sourceRoot":"","sources":["../src/token-architecture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,uBAAuB,qGAO1B,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAChC,wFAAiG,CAAC;AAEpG,eAAO,MAAM,eAAe,wLAelB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qCAAqC;;;;;;;;;;CA2BqB,CAAC;AAsHxE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,cAAc,GAAG,IAAI,CAwCvB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,cAAc,CAQhB;AAED,eAAO,MAAM,0BAA0B,qFAQ7B,CAAC;AAEX,MAAM,MAAM,yBAAyB,GACnC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC/B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;EAiC3C,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGvB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;;CA+C3B,CAAC;AAEX,eAAO,MAAM,0BAA0B,4+CA4E7B,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;;;;CAS7B,CAAC;AAEX,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqG/B,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;EA+BjC,CAAC"}
|