@aloudata/aloudata-design 3.0.19 → 3.0.21
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/README.md +145 -59
- package/dist/Alert/index.js +1 -1
- package/dist/Alert/index.js.map +1 -1
- package/dist/Avatar/component/Avatar/index.js +2 -2
- package/dist/Avatar/component/Avatar/index.js.map +1 -1
- package/dist/Avatar/component/Avatar/type.js +3 -3
- package/dist/Avatar/component/Avatar/type.js.map +1 -1
- package/dist/Badge/index.js +5 -5
- package/dist/Badge/index.js.map +1 -1
- package/dist/Breadcrumb/index.js +4 -4
- package/dist/Breadcrumb/index.js.map +1 -1
- package/dist/Button/index.js +8 -8
- package/dist/Button/index.js.map +1 -1
- package/dist/Card/index.js +2 -2
- package/dist/Card/index.js.map +1 -1
- package/dist/Checkbox/index.js +3 -3
- package/dist/Checkbox/index.js.map +1 -1
- package/dist/Collapse/index.js +1 -1
- package/dist/Collapse/index.js.map +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js.map +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js.map +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js.map +1 -1
- package/dist/ColorPicker/ComplexColorPicker/index.js +2 -2
- package/dist/ColorPicker/ComplexColorPicker/index.js.map +1 -1
- package/dist/ColorPicker/index.js +11 -11
- package/dist/ColorPicker/index.js.map +1 -1
- package/dist/ColorPicker/util.d.ts +1 -1
- package/dist/ColorPicker/util.js.map +1 -1
- package/dist/DataPreviewTable/components/Body/Cell.js +2 -2
- package/dist/DataPreviewTable/components/Body/Cell.js.map +1 -1
- package/dist/DataPreviewTable/components/Body/index.js +1 -1
- package/dist/DataPreviewTable/components/Body/index.js.map +1 -1
- package/dist/DataPreviewTable/components/DragBar/index.js +1 -1
- package/dist/DataPreviewTable/components/DragBar/index.js.map +1 -1
- package/dist/DataPreviewTable/components/Header/index.js +3 -3
- package/dist/DataPreviewTable/components/Header/index.js.map +1 -1
- package/dist/DataPreviewTable/index.js +1 -1
- package/dist/DataPreviewTable/index.js.map +1 -1
- package/dist/Divider/index.js +1 -1
- package/dist/Divider/index.js.map +1 -1
- package/dist/Drawer/index.js +3 -3
- package/dist/Drawer/index.js.map +1 -1
- package/dist/Dropdown/index.d.ts +5 -0
- package/dist/Dropdown/index.js +3 -1
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/Empty/image/Data.js +16 -16
- package/dist/Empty/image/Data.js.map +1 -1
- package/dist/Empty/image/User.js +16 -16
- package/dist/Empty/image/User.js.map +1 -1
- package/dist/Empty/image/WorkBook.js +17 -17
- package/dist/Empty/image/WorkBook.js.map +1 -1
- package/dist/Form/index.js +3 -3
- package/dist/Form/index.js.map +1 -1
- package/dist/Icon/components/SortAscendingOrderColor.js +1 -1
- package/dist/Icon/components/SortAscendingOrderColor.js.map +1 -1
- package/dist/Icon/components/SortDescendingOrderColor.js +1 -1
- package/dist/Icon/components/SortDescendingOrderColor.js.map +1 -1
- package/dist/Icon/components/User.js +2 -2
- package/dist/Icon/components/User.js.map +1 -1
- package/dist/Icon/components/UserGroup.js +2 -2
- package/dist/Icon/components/UserGroup.js.map +1 -1
- package/dist/Input/components/Input/index.js +3 -4
- package/dist/Input/components/Input/index.js.map +1 -1
- package/dist/Input/components/TextArea/index.js +3 -3
- package/dist/Input/components/TextArea/index.js.map +1 -1
- package/dist/InputNumber/index.js +4 -4
- package/dist/InputNumber/index.js.map +1 -1
- package/dist/LogicTree/components/LogicItem/index.js +2 -2
- package/dist/LogicTree/components/LogicItem/index.js.map +1 -1
- package/dist/MemberPicker/components/SelectedMemberTags.js +1 -1
- package/dist/MemberPicker/components/SelectedMemberTags.js.map +1 -1
- package/dist/Modal/index.js +8 -8
- package/dist/Modal/index.js.map +1 -1
- package/dist/Popconfirm/index.js +1 -1
- package/dist/Popconfirm/index.js.map +1 -1
- package/dist/Popover/index.js +2 -2
- package/dist/Popover/index.js.map +1 -1
- package/dist/Progress/index.js +1 -1
- package/dist/Progress/index.js.map +1 -1
- package/dist/RenameInput/index.js +4 -4
- package/dist/RenameInput/index.js.map +1 -1
- package/dist/Result/index.js +4 -4
- package/dist/Result/index.js.map +1 -1
- package/dist/Select/components/Suffix.js +3 -3
- package/dist/Select/components/Suffix.js.map +1 -1
- package/dist/Slider/index.js +4 -4
- package/dist/Slider/index.js.map +1 -1
- package/dist/Spin/CustomIcon/index.js +2 -2
- package/dist/Spin/CustomIcon/index.js.map +1 -1
- package/dist/StatusLight/index.js +15 -15
- package/dist/StatusLight/index.js.map +1 -1
- package/dist/Steps/index.js +6 -6
- package/dist/Steps/index.js.map +1 -1
- package/dist/Switch/index.js +3 -3
- package/dist/Switch/index.js.map +1 -1
- package/dist/Table/components/Header.js +3 -3
- package/dist/Table/components/Header.js.map +1 -1
- package/dist/Tabs/index.js +9 -9
- package/dist/Tabs/index.js.map +1 -1
- package/dist/Tag/index.js +11 -11
- package/dist/Tag/index.js.map +1 -1
- package/dist/TextLink/index.js +2 -2
- package/dist/TextLink/index.js.map +1 -1
- package/dist/Tooltip/index.js +3 -3
- package/dist/Tooltip/index.js.map +1 -1
- package/dist/Tour/index.js +1 -1
- package/dist/Tour/index.js.map +1 -1
- package/dist/Tree/Tree2.js +2 -2
- package/dist/Tree/Tree2.js.map +1 -1
- package/dist/Typography/index.js +1 -1
- package/dist/Typography/index.js.map +1 -1
- package/dist/User/index.js +1 -1
- package/dist/User/index.js.map +1 -1
- package/dist/Watermark/index.js +2 -1
- package/dist/Watermark/index.js.map +1 -1
- package/dist/aloudata-design.css +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -5
- package/dist/message/index.js +1 -1
- package/dist/message/index.js.map +1 -1
- package/dist/notification/index.js +5 -5
- package/dist/notification/index.js.map +1 -1
- package/dist/theme/contract/shadowGeneratorSpecification.d.ts +37 -0
- package/dist/theme/contract/tokenCssBridge.d.ts +60 -0
- package/dist/theme/contract/tokenCssBridge.js +2 -0
- package/dist/theme/contract/tokenOutputContract.d.ts +35 -0
- package/dist/theme/contract/tokenOutputContract.js +198 -0
- package/dist/theme/contract/tokenOutputContract.js.map +1 -0
- package/dist/theme/generator/acceptedColorValues.d.ts +97 -0
- package/dist/theme/generator/acceptedColorValues.js +2 -0
- package/dist/theme/generator/cssArtifactEmitter.d.ts +62 -0
- package/dist/theme/generator/cssArtifactEmitter.js +2 -0
- package/dist/theme/generator/generator.d.ts +41 -0
- package/dist/theme/generator/generator.js +2 -0
- package/dist/theme/generator/generatorDiff.d.ts +53 -0
- package/dist/theme/generator/generatorDiff.js +2 -0
- package/dist/theme/generator/generatorEmitter.d.ts +73 -0
- package/dist/theme/generator/generatorEmitter.js +2 -0
- package/dist/theme/generator/generatorMappingStrategy.d.ts +43 -0
- package/dist/theme/generator/generatorMappingStrategy.js +2 -0
- package/dist/theme/generator/generatorOutputSchema.d.ts +80 -0
- package/dist/theme/generator/generatorOutputSchema.js +2 -0
- package/dist/theme/generator/minimalAcceptedColorValues.d.ts +27 -0
- package/dist/theme/generator/minimalAcceptedColorValues.js +2 -0
- package/dist/theme/generator/valueResolver.d.ts +64 -0
- package/dist/theme/generator/valueResolver.js +2 -0
- package/dist/theme/governance/migrationMappingRegistry.d.ts +22 -0
- package/dist/theme/governance/migrationMappingRegistry.js +459 -0
- package/dist/theme/governance/migrationMappingRegistry.js.map +1 -0
- package/dist/theme/governance/reviewGate.d.ts +33 -0
- package/dist/theme/governance/reviewGate.js +116 -0
- package/dist/theme/governance/reviewGate.js.map +1 -0
- package/dist/theme/governance/validateMigrationMapping.d.ts +50 -0
- package/dist/theme/governance/validateMigrationMapping.js +157 -0
- package/dist/theme/governance/validateMigrationMapping.js.map +1 -0
- package/dist/theme/index.d.ts +16 -5
- package/dist/theme/index.js +10 -4
- package/dist/theme/runtime/colorValueMode/index.d.ts +5 -0
- package/dist/theme/runtime/colorValueMode/index.js +49 -0
- package/dist/theme/runtime/colorValueMode/index.js.map +1 -0
- package/dist/theme/runtime/colorValueMode/registry.d.ts +29 -0
- package/dist/theme/runtime/colorValueMode/registry.js +39 -0
- package/dist/theme/runtime/colorValueMode/registry.js.map +1 -0
- package/dist/theme/runtime/colorValueMode/v3.d.ts +98 -0
- package/dist/theme/runtime/colorValueMode/v3.js +230 -0
- package/dist/theme/runtime/colorValueMode/v3.js.map +1 -0
- package/dist/theme/runtime/colorValueMode.d.ts +2 -0
- package/dist/theme/{createTheme.js → runtime/createTheme.js} +1 -1
- package/dist/theme/runtime/createTheme.js.map +1 -0
- package/dist/theme/{defaultTheme.js → runtime/defaultTheme.js} +1 -1
- package/dist/theme/runtime/defaultTheme.js.map +1 -0
- package/dist/theme/{initAldTheme.js → runtime/initAldTheme.js} +1 -1
- package/dist/theme/runtime/initAldTheme.js.map +1 -0
- package/dist/theme/runtime/integrationController.d.ts +26 -0
- package/dist/theme/runtime/integrationController.js +2 -0
- package/dist/theme/runtime/runtimeAdapter.d.ts +31 -0
- package/dist/theme/runtime/runtimeAdapter.js +2 -0
- package/dist/theme/{themeToCssVars.js → runtime/themeToCssVars.js} +1 -1
- package/dist/theme/runtime/themeToCssVars.js.map +1 -0
- package/dist/theme/{tokenMap.js → runtime/tokenMap.js} +1 -1
- package/dist/theme/runtime/tokenMap.js.map +1 -0
- package/dist/theme/runtime/types.js +2 -0
- package/package.json +15 -1
- package/dist/theme/createTheme.js.map +0 -1
- package/dist/theme/defaultTheme.js.map +0 -1
- package/dist/theme/initAldTheme.js.map +0 -1
- package/dist/theme/themeToCssVars.js.map +0 -1
- package/dist/theme/tokenMap.js.map +0 -1
- /package/dist/theme/{types.js → contract/shadowGeneratorSpecification.js} +0 -0
- /package/dist/theme/{createTheme.d.ts → runtime/createTheme.d.ts} +0 -0
- /package/dist/theme/{defaultTheme.d.ts → runtime/defaultTheme.d.ts} +0 -0
- /package/dist/theme/{initAldTheme.d.ts → runtime/initAldTheme.d.ts} +0 -0
- /package/dist/theme/{themeToCssVars.d.ts → runtime/themeToCssVars.d.ts} +0 -0
- /package/dist/theme/{tokenMap.d.ts → runtime/tokenMap.d.ts} +0 -0
- /package/dist/theme/{types.d.ts → runtime/types.d.ts} +0 -0
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
//#region src/theme/governance/migrationMappingRegistry.ts
|
|
2
|
+
var legacyPrefixes = [
|
|
3
|
+
"--alias-",
|
|
4
|
+
"--interaction-",
|
|
5
|
+
"--non-semantic-"
|
|
6
|
+
];
|
|
7
|
+
var dimensionByLegacyStep = {
|
|
8
|
+
"0": "--dimension-0",
|
|
9
|
+
"25": "--dimension-0-5",
|
|
10
|
+
"50": "--dimension-1",
|
|
11
|
+
"75": "--dimension-1-5",
|
|
12
|
+
"100": "--dimension-2",
|
|
13
|
+
"150": "--dimension-3",
|
|
14
|
+
"200": "--dimension-4",
|
|
15
|
+
"250": "--dimension-5",
|
|
16
|
+
"300": "--dimension-6",
|
|
17
|
+
"400": "--dimension-8",
|
|
18
|
+
"500": "--dimension-10",
|
|
19
|
+
"600": "--dimension-12",
|
|
20
|
+
"700": "--dimension-14",
|
|
21
|
+
"800": "--dimension-16",
|
|
22
|
+
"900": "--dimension-18",
|
|
23
|
+
"1000": "--dimension-20"
|
|
24
|
+
};
|
|
25
|
+
var feedbackFamilyTargets = {
|
|
26
|
+
blue: "informative",
|
|
27
|
+
green: "positive",
|
|
28
|
+
orange: "warning",
|
|
29
|
+
red: "negative"
|
|
30
|
+
};
|
|
31
|
+
var unsupportedChromaticFamilies = [
|
|
32
|
+
"aquamarine",
|
|
33
|
+
"cerulean",
|
|
34
|
+
"coral",
|
|
35
|
+
"cyan",
|
|
36
|
+
"emerald",
|
|
37
|
+
"grape",
|
|
38
|
+
"magenta",
|
|
39
|
+
"purple",
|
|
40
|
+
"raspberry",
|
|
41
|
+
"tangerine",
|
|
42
|
+
"teal",
|
|
43
|
+
"violet"
|
|
44
|
+
];
|
|
45
|
+
function createEntry({ source, target, type, lifecycle, strategy, note }) {
|
|
46
|
+
return {
|
|
47
|
+
source,
|
|
48
|
+
target,
|
|
49
|
+
type,
|
|
50
|
+
lifecycle: lifecycle ?? (target ? "published" : "blocked"),
|
|
51
|
+
strategy: strategy ?? (target ? "semantic-equivalent" : "governance-review-required"),
|
|
52
|
+
...note ? { note } : {}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function alias(source, target, options = {}) {
|
|
56
|
+
return createEntry({
|
|
57
|
+
source,
|
|
58
|
+
target,
|
|
59
|
+
type: "alias",
|
|
60
|
+
...options
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function interaction(source, target, options = {}) {
|
|
64
|
+
return createEntry({
|
|
65
|
+
source,
|
|
66
|
+
target,
|
|
67
|
+
type: "interaction",
|
|
68
|
+
...options
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function nonSemantic(source, target, options = {}) {
|
|
72
|
+
return createEntry({
|
|
73
|
+
source,
|
|
74
|
+
target,
|
|
75
|
+
type: "non-semantic",
|
|
76
|
+
...options
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function createDimensionAliasEntries(prefix, steps) {
|
|
80
|
+
const entries = [];
|
|
81
|
+
for (const step of steps) {
|
|
82
|
+
entries.push(alias(`--alias-${prefix}-${step}`, dimensionByLegacyStep[step], { strategy: "direct-token-output" }));
|
|
83
|
+
if (prefix === "padding") entries.push(alias(`--alias-padding-${step}-minus-1`, null, { note: "No accepted Token Output Contract target exists for minus-one legacy padding." }));
|
|
84
|
+
}
|
|
85
|
+
return entries;
|
|
86
|
+
}
|
|
87
|
+
function createBlockedAliasEntries(prefix, names) {
|
|
88
|
+
return names.map((name) => alias(`--alias-${prefix}-${name}`, null, { note: `No accepted ${prefix} Token Output Contract target exists in this registry scope.` }));
|
|
89
|
+
}
|
|
90
|
+
function createActionStateEntries(sourcePrefix, targetPrefix, states = [
|
|
91
|
+
"normal",
|
|
92
|
+
"hover",
|
|
93
|
+
"active",
|
|
94
|
+
"selected"
|
|
95
|
+
]) {
|
|
96
|
+
return states.map((state) => interaction(`--interaction-${sourcePrefix}-${state}`, `--action-${targetPrefix}-${state}`, { strategy: "direct-token-output" }));
|
|
97
|
+
}
|
|
98
|
+
function createNonSemanticFeedbackEntries(family) {
|
|
99
|
+
const target = feedbackFamilyTargets[family];
|
|
100
|
+
return [
|
|
101
|
+
nonSemantic(`--non-semantic-content-${family}-primary`, `--content-${target}-primary`),
|
|
102
|
+
nonSemantic(`--non-semantic-content-${family}-secondary`, `--content-${target}-secondary`),
|
|
103
|
+
nonSemantic(`--non-semantic-border-${family}-default`, `--border-${target}-subtle`),
|
|
104
|
+
nonSemantic(`--non-semantic-border-${family}-strong`, `--border-${target}-strong`),
|
|
105
|
+
nonSemantic(`--non-semantic-border-${family}-subtle`, `--border-${target}-subtle`),
|
|
106
|
+
nonSemantic(`--non-semantic-background-${family}-strong`, `--background-${target}-strong`),
|
|
107
|
+
nonSemantic(`--non-semantic-background-${family}-muted`, `--background-${target}-muted`),
|
|
108
|
+
nonSemantic(`--non-semantic-background-${family}-on-subtle`, `--background-${target}-on-subtle`),
|
|
109
|
+
nonSemantic(`--non-semantic-background-${family}-subtle`, `--background-${target}-subtle`),
|
|
110
|
+
nonSemantic(`--non-semantic-background-${family}-surface`, `--background-${target}-surface`)
|
|
111
|
+
];
|
|
112
|
+
}
|
|
113
|
+
function createBlockedNonSemanticFamilyEntries(family) {
|
|
114
|
+
const note = "No accepted semantic or component token target exists for this legacy chromatic family.";
|
|
115
|
+
return [
|
|
116
|
+
nonSemantic(`--non-semantic-content-${family}-primary`, null, { note }),
|
|
117
|
+
nonSemantic(`--non-semantic-content-${family}-secondary`, null, { note }),
|
|
118
|
+
nonSemantic(`--non-semantic-border-${family}-default`, null, { note }),
|
|
119
|
+
nonSemantic(`--non-semantic-border-${family}-strong`, null, { note }),
|
|
120
|
+
nonSemantic(`--non-semantic-border-${family}-subtle`, null, { note }),
|
|
121
|
+
nonSemantic(`--non-semantic-background-${family}-strong`, null, { note }),
|
|
122
|
+
nonSemantic(`--non-semantic-background-${family}-muted`, null, { note }),
|
|
123
|
+
nonSemantic(`--non-semantic-background-${family}-on-subtle`, null, { note }),
|
|
124
|
+
nonSemantic(`--non-semantic-background-${family}-subtle`, null, { note }),
|
|
125
|
+
nonSemantic(`--non-semantic-background-${family}-surface`, null, { note })
|
|
126
|
+
];
|
|
127
|
+
}
|
|
128
|
+
var aliasColorEntries = [
|
|
129
|
+
alias("--alias-colors-text-strong", "--content-primary"),
|
|
130
|
+
alias("--alias-colors-text-default", "--content-primary"),
|
|
131
|
+
alias("--alias-colors-text-secondary", "--content-secondary"),
|
|
132
|
+
alias("--alias-colors-text-subtle", "--content-secondary"),
|
|
133
|
+
alias("--alias-colors-text-subtlest", "--content-tertiary"),
|
|
134
|
+
alias("--alias-colors-text-disabled", "--content-disabled"),
|
|
135
|
+
alias("--alias-colors-text-selected", "--content-brand-primary"),
|
|
136
|
+
alias("--alias-colors-text-brand", "--content-brand-secondary"),
|
|
137
|
+
alias("--alias-colors-text-danger", "--content-negative-secondary"),
|
|
138
|
+
alias("--alias-colors-text-warning", "--content-warning-secondary"),
|
|
139
|
+
alias("--alias-colors-text-success", "--content-positive-secondary"),
|
|
140
|
+
alias("--alias-colors-text-information", "--content-informative-secondary"),
|
|
141
|
+
alias("--alias-colors-text-inverse-strong", "--content-inverted-primary"),
|
|
142
|
+
alias("--alias-colors-text-inverse-default", "--content-inverted-primary"),
|
|
143
|
+
alias("--alias-colors-text-inverse-subtle", "--content-inverted-secondary"),
|
|
144
|
+
alias("--alias-colors-text-inverse-subtlest", "--content-inverted-tertiary"),
|
|
145
|
+
alias("--alias-colors-text-inverse-disabled", "--content-inverted-disabled"),
|
|
146
|
+
alias("--alias-colors-text-accent-gray-strong", "--content-primary"),
|
|
147
|
+
alias("--alias-colors-text-accent-gray-default", "--content-secondary"),
|
|
148
|
+
alias("--alias-colors-text-accent-blue-strong", "--content-informative-primary"),
|
|
149
|
+
alias("--alias-colors-text-accent-blue-default", "--content-informative-secondary"),
|
|
150
|
+
alias("--alias-colors-text-accent-red-strong", "--content-negative-primary"),
|
|
151
|
+
alias("--alias-colors-text-accent-red-default", "--content-negative-secondary"),
|
|
152
|
+
alias("--alias-colors-text-accent-orange-strong", "--content-warning-primary"),
|
|
153
|
+
alias("--alias-colors-text-accent-orange-default", "--content-warning-secondary"),
|
|
154
|
+
alias("--alias-colors-text-accent-yellow-strong", "--content-warning-primary"),
|
|
155
|
+
alias("--alias-colors-text-accent-yellow-default", "--content-warning-secondary"),
|
|
156
|
+
alias("--alias-colors-text-accent-green-strong", "--content-positive-primary"),
|
|
157
|
+
alias("--alias-colors-text-accent-green-default", "--content-positive-secondary"),
|
|
158
|
+
alias("--alias-colors-text-accent-teal-strong", null, { note: "No accepted semantic target exists for teal accent text." }),
|
|
159
|
+
alias("--alias-colors-text-accent-teal-default", null, { note: "No accepted semantic target exists for teal accent text." }),
|
|
160
|
+
alias("--alias-colors-text-accent-purple-strong", null, { note: "No accepted semantic target exists for purple accent text." }),
|
|
161
|
+
alias("--alias-colors-text-accent-purple-default", null, { note: "No accepted semantic target exists for purple accent text." }),
|
|
162
|
+
alias("--alias-colors-text-accent-pink-strong", null, { note: "No accepted semantic target exists for pink accent text." }),
|
|
163
|
+
alias("--alias-colors-text-accent-pink-default", null, { note: "No accepted semantic target exists for pink accent text." }),
|
|
164
|
+
alias("--alias-colors-link-default", null, { note: "No accepted Link Token Output target exists yet." }),
|
|
165
|
+
alias("--alias-colors-link-hover", null, { note: "No accepted Link Token Output target exists yet." }),
|
|
166
|
+
alias("--alias-colors-icon-default", "--content-primary"),
|
|
167
|
+
alias("--alias-colors-icon-subtle", "--content-secondary"),
|
|
168
|
+
alias("--alias-colors-icon-subtler", "--content-tertiary"),
|
|
169
|
+
alias("--alias-colors-icon-disabled", "--content-disabled"),
|
|
170
|
+
alias("--alias-colors-icon-selected", "--content-brand-secondary"),
|
|
171
|
+
alias("--alias-colors-icon-brand", "--content-brand-secondary"),
|
|
172
|
+
alias("--alias-colors-icon-danger", "--content-negative-secondary"),
|
|
173
|
+
alias("--alias-colors-icon-warning", "--content-warning-secondary"),
|
|
174
|
+
alias("--alias-colors-icon-success", "--content-positive-secondary"),
|
|
175
|
+
alias("--alias-colors-icon-information", "--content-informative-secondary"),
|
|
176
|
+
alias("--alias-colors-icon-inverse-default", "--content-inverted-primary"),
|
|
177
|
+
alias("--alias-colors-icon-inverse-subtle", "--content-inverted-secondary"),
|
|
178
|
+
alias("--alias-colors-icon-inverse-subtler", "--content-inverted-tertiary"),
|
|
179
|
+
alias("--alias-colors-icon-inverse-disabled", "--content-inverted-disabled"),
|
|
180
|
+
alias("--alias-colors-icon-transp", null, { note: "Transparent icon value requires component-level review." }),
|
|
181
|
+
alias("--alias-colors-icon-accent-gray", "--content-secondary"),
|
|
182
|
+
alias("--alias-colors-icon-accent-blue", "--content-informative-secondary"),
|
|
183
|
+
alias("--alias-colors-icon-accent-red", "--content-negative-secondary"),
|
|
184
|
+
alias("--alias-colors-icon-accent-orange", "--content-warning-secondary"),
|
|
185
|
+
alias("--alias-colors-icon-accent-yellow", "--content-warning-secondary"),
|
|
186
|
+
alias("--alias-colors-icon-accent-green", "--content-positive-secondary"),
|
|
187
|
+
alias("--alias-colors-icon-accent-teal", null, { note: "No accepted semantic target exists for teal accent icon." }),
|
|
188
|
+
alias("--alias-colors-icon-accent-purple", null, { note: "No accepted semantic target exists for purple accent icon." }),
|
|
189
|
+
alias("--alias-colors-icon-accent-pink", null, { note: "No accepted semantic target exists for pink accent icon." }),
|
|
190
|
+
alias("--alias-colors-border-subtle", "--border-neutral-subtle"),
|
|
191
|
+
alias("--alias-colors-border-default", "--border-default"),
|
|
192
|
+
alias("--alias-colors-border-strong", "--border-neutral-strong"),
|
|
193
|
+
alias("--alias-colors-border-disabled", "--border-default-alpha"),
|
|
194
|
+
alias("--alias-colors-border-selected", "--border-brand-strong"),
|
|
195
|
+
alias("--alias-colors-border-brand", "--border-brand-strong"),
|
|
196
|
+
alias("--alias-colors-border-danger", "--border-negative-strong"),
|
|
197
|
+
alias("--alias-colors-border-warning", "--border-warning-strong"),
|
|
198
|
+
alias("--alias-colors-border-success", "--border-positive-strong"),
|
|
199
|
+
alias("--alias-colors-border-information", "--border-informative-strong"),
|
|
200
|
+
alias("--alias-colors-border-inverse-subtle", "--border-inverted"),
|
|
201
|
+
alias("--alias-colors-border-inverse-default", "--border-inverted"),
|
|
202
|
+
alias("--alias-colors-border-inverse-strong", "--border-inverted"),
|
|
203
|
+
alias("--alias-colors-border-transp", null, { note: "Transparent border value requires component-level review." }),
|
|
204
|
+
alias("--alias-colors-border-accent-gray-default", "--border-neutral-subtle"),
|
|
205
|
+
alias("--alias-colors-border-accent-gray-strong", "--border-neutral-strong"),
|
|
206
|
+
alias("--alias-colors-border-accent-blue-default", "--border-informative-subtle"),
|
|
207
|
+
alias("--alias-colors-border-accent-blue-strong", "--border-informative-strong"),
|
|
208
|
+
alias("--alias-colors-border-accent-green-default", "--border-positive-subtle"),
|
|
209
|
+
alias("--alias-colors-border-accent-green-strong", "--border-positive-strong"),
|
|
210
|
+
alias("--alias-colors-border-accent-yellow-default", "--border-warning-subtle"),
|
|
211
|
+
alias("--alias-colors-border-accent-yellow-strong", "--border-warning-strong"),
|
|
212
|
+
alias("--alias-colors-border-accent-orange-default", "--border-warning-subtle"),
|
|
213
|
+
alias("--alias-colors-border-accent-orange-strong", "--border-warning-strong"),
|
|
214
|
+
alias("--alias-colors-border-accent-red-default", "--border-negative-subtle"),
|
|
215
|
+
alias("--alias-colors-border-accent-red-strong", "--border-negative-strong"),
|
|
216
|
+
alias("--alias-colors-border-accent-purple-default", null, { note: "No accepted semantic target exists for purple accent border." }),
|
|
217
|
+
alias("--alias-colors-border-accent-purple-strong", null, { note: "No accepted semantic target exists for purple accent border." }),
|
|
218
|
+
alias("--alias-colors-border-accent-pink-default", null, { note: "No accepted semantic target exists for pink accent border." }),
|
|
219
|
+
alias("--alias-colors-border-accent-pink-strong", null, { note: "No accepted semantic target exists for pink accent border." }),
|
|
220
|
+
alias("--alias-colors-bg-skeleton-subtler", "--background-default"),
|
|
221
|
+
alias("--alias-colors-bg-skeleton-subtle", "--background-neutral-surface"),
|
|
222
|
+
alias("--alias-colors-bg-skeleton-strong", "--background-neutral-subtle"),
|
|
223
|
+
alias("--alias-colors-bg-skeleton-stronger", "--background-neutral-on-subtle"),
|
|
224
|
+
alias("--alias-colors-bg-skeleton-strongest", "--background-neutral-muted"),
|
|
225
|
+
alias("--alias-colors-bg-skeleton-inverse-subtler", "--background-inverted"),
|
|
226
|
+
alias("--alias-colors-bg-skeleton-inverse-subtle", "--background-inverted"),
|
|
227
|
+
alias("--alias-colors-bg-skeleton-inverse-strong", "--background-inverted"),
|
|
228
|
+
alias("--alias-colors-bg-skeleton-inverse-stronger", "--background-inverted"),
|
|
229
|
+
alias("--alias-colors-bg-skeleton-inverse-strongest", "--background-inverted"),
|
|
230
|
+
alias("--alias-colors-bg-disabled", "--background-neutral-on-subtle"),
|
|
231
|
+
alias("--alias-colors-bg-inverse-disabled", "--background-inverted"),
|
|
232
|
+
alias("--alias-colors-bg-transp", null, { note: "Transparent background value requires component-level review." }),
|
|
233
|
+
alias("--alias-colors-bg-blanker-default", "--background-inverted"),
|
|
234
|
+
alias("--alias-colors-bg-tooltip", "--background-inverted"),
|
|
235
|
+
alias("--alias-colors-bg-interaction-hover", "--action-ghost-hover"),
|
|
236
|
+
alias("--alias-colors-bg-interaction-press", "--action-ghost-active"),
|
|
237
|
+
alias("--alias-colors-bg-interaction-inverse-hover", "--action-ghost-inverted-hover"),
|
|
238
|
+
alias("--alias-colors-bg-interaction-inverse-press", "--action-ghost-inverted-active"),
|
|
239
|
+
alias("--alias-colors-bg-selected-default", "--background-brand-muted"),
|
|
240
|
+
alias("--alias-colors-bg-selected-hover", "--background-brand-muted"),
|
|
241
|
+
alias("--alias-colors-bg-selected-press", "--background-brand-on-subtle"),
|
|
242
|
+
alias("--alias-colors-bg-selected-inverse-default", "--background-brand-strong"),
|
|
243
|
+
alias("--alias-colors-bg-selected-inverse-hover", "--background-brand-strong"),
|
|
244
|
+
alias("--alias-colors-bg-selected-inverse-press", "--background-brand-strong"),
|
|
245
|
+
alias("--alias-colors-bg-selected-strong-default", "--background-brand-strong"),
|
|
246
|
+
alias("--alias-colors-bg-selected-strong-hover", "--background-brand-strong"),
|
|
247
|
+
alias("--alias-colors-bg-selected-strong-press", "--background-brand-strong"),
|
|
248
|
+
alias("--alias-colors-bg-selected-inverse-strong-default", "--background-brand-strong"),
|
|
249
|
+
alias("--alias-colors-bg-selected-inverse-strong-hover", "--background-brand-strong"),
|
|
250
|
+
alias("--alias-colors-bg-selected-inverse-strong-press", "--background-brand-strong"),
|
|
251
|
+
alias("--alias-colors-bg-accent-gray-default", "--background-neutral-subtle"),
|
|
252
|
+
alias("--alias-colors-bg-accent-gray-strong", "--background-neutral-strong"),
|
|
253
|
+
alias("--alias-colors-bg-accent-blue-default", "--background-informative-muted"),
|
|
254
|
+
alias("--alias-colors-bg-accent-blue-strong", "--background-informative-strong"),
|
|
255
|
+
alias("--alias-colors-bg-accent-red-default", "--background-negative-muted"),
|
|
256
|
+
alias("--alias-colors-bg-accent-red-strong", "--background-negative-strong"),
|
|
257
|
+
alias("--alias-colors-bg-accent-orange-default", "--background-warning-muted"),
|
|
258
|
+
alias("--alias-colors-bg-accent-orange-strong", "--background-warning-strong"),
|
|
259
|
+
alias("--alias-colors-bg-accent-yellow-default", "--background-warning-muted"),
|
|
260
|
+
alias("--alias-colors-bg-accent-yellow-strong", "--background-warning-strong"),
|
|
261
|
+
alias("--alias-colors-bg-accent-green-default", "--background-positive-muted"),
|
|
262
|
+
alias("--alias-colors-bg-accent-green-strong", "--background-positive-strong"),
|
|
263
|
+
alias("--alias-colors-bg-accent-teal-default", null, { note: "No accepted semantic target exists for teal accent background." }),
|
|
264
|
+
alias("--alias-colors-bg-accent-teal-strong", null, { note: "No accepted semantic target exists for teal accent background." }),
|
|
265
|
+
alias("--alias-colors-bg-accent-purple-default", null, { note: "No accepted semantic target exists for purple accent background." }),
|
|
266
|
+
alias("--alias-colors-bg-accent-purple-strong", null, { note: "No accepted semantic target exists for purple accent background." }),
|
|
267
|
+
alias("--alias-colors-bg-accent-pink-default", null, { note: "No accepted semantic target exists for pink accent background." }),
|
|
268
|
+
alias("--alias-colors-bg-accent-pink-strong", null, { note: "No accepted semantic target exists for pink accent background." }),
|
|
269
|
+
...[
|
|
270
|
+
"gray",
|
|
271
|
+
"blue",
|
|
272
|
+
"auburn",
|
|
273
|
+
"orange",
|
|
274
|
+
"yellow",
|
|
275
|
+
"green",
|
|
276
|
+
"teal",
|
|
277
|
+
"purple",
|
|
278
|
+
"pink",
|
|
279
|
+
"red"
|
|
280
|
+
].map((family) => alias(`--alias-colors-data-${family}`, null, { note: "No accepted Data Token Output target exists yet." }))
|
|
281
|
+
];
|
|
282
|
+
var interactionEntries = [
|
|
283
|
+
...createActionStateEntries("default", "primary"),
|
|
284
|
+
...createActionStateEntries("default-subtle", "primary-subtle"),
|
|
285
|
+
...createActionStateEntries("neutral", "neutral"),
|
|
286
|
+
...createActionStateEntries("neutral-subtle", "neutral-subtle"),
|
|
287
|
+
...createActionStateEntries("alert", "destructive"),
|
|
288
|
+
...createActionStateEntries("alert-subtle", "destructive-subtle"),
|
|
289
|
+
...createActionStateEntries("ghost", "ghost", [
|
|
290
|
+
"normal",
|
|
291
|
+
"hover",
|
|
292
|
+
"active",
|
|
293
|
+
"selected"
|
|
294
|
+
]),
|
|
295
|
+
...createActionStateEntries("ghost-inverted", "ghost-inverted", [
|
|
296
|
+
"hover",
|
|
297
|
+
"active",
|
|
298
|
+
"selected"
|
|
299
|
+
]),
|
|
300
|
+
...createActionStateEntries("ghost-destructive", "ghost-destructive", [
|
|
301
|
+
"hover",
|
|
302
|
+
"active",
|
|
303
|
+
"selected"
|
|
304
|
+
]),
|
|
305
|
+
...createActionStateEntries("inverted", "inverted"),
|
|
306
|
+
interaction("--interaction-disabled-normal", null, { note: "No accepted disabled action Token Output target exists." }),
|
|
307
|
+
interaction("--interaction-disabled-hover", null, { note: "No accepted disabled action Token Output target exists." }),
|
|
308
|
+
interaction("--interaction-disabled-active", null, { note: "No accepted disabled action Token Output target exists." }),
|
|
309
|
+
interaction("--interaction-disabled-subtle-normal", "--background-neutral-on-subtle"),
|
|
310
|
+
interaction("--interaction-disabled-subtle-hover", "--background-neutral-muted"),
|
|
311
|
+
interaction("--interaction-disabled-subtle-active", "--background-neutral-muted"),
|
|
312
|
+
interaction("--interaction-border-normal", "--border-brand-subtle"),
|
|
313
|
+
interaction("--interaction-border-hover", "--border-brand-strong"),
|
|
314
|
+
interaction("--interaction-border-active", "--border-brand-strong"),
|
|
315
|
+
interaction("--interaction-border-selected", "--border-brand-strong"),
|
|
316
|
+
interaction("--interaction-border-neutral-normal", "--border-neutral-subtle"),
|
|
317
|
+
interaction("--interaction-border-neutral-hover", "--border-default"),
|
|
318
|
+
interaction("--interaction-border-neutral-active", "--border-neutral-strong"),
|
|
319
|
+
interaction("--interaction-border-neutral-selected", "--border-default"),
|
|
320
|
+
interaction("--interaction-border-alert", "--border-negative-strong"),
|
|
321
|
+
interaction("--interaction-background-modal", "--background-default"),
|
|
322
|
+
interaction("--interaction-background-modeless", "--background-default"),
|
|
323
|
+
interaction("--interaction-background-inverted-modeless", "--background-inverted"),
|
|
324
|
+
interaction("--interaction-background-sidepanel", "--background-default"),
|
|
325
|
+
interaction("--interaction-background-sidebar-nav", "--background-default"),
|
|
326
|
+
interaction("--interaction-background-top-nav", "--background-default"),
|
|
327
|
+
interaction("--interaction-background-form-field", "--background-default"),
|
|
328
|
+
interaction("--interaction-background-default-dimmer", "--background-inverted"),
|
|
329
|
+
interaction("--interaction-focus-default", null, { note: "No accepted Focus Token Output target exists yet." })
|
|
330
|
+
];
|
|
331
|
+
var nonSemanticEntries = [
|
|
332
|
+
nonSemantic("--non-semantic-content-grey-primary", "--content-primary"),
|
|
333
|
+
nonSemantic("--non-semantic-content-grey-secondary", "--content-secondary"),
|
|
334
|
+
nonSemantic("--non-semantic-border-grey-default", "--border-default"),
|
|
335
|
+
nonSemantic("--non-semantic-border-grey-strong", "--border-neutral-strong"),
|
|
336
|
+
nonSemantic("--non-semantic-border-grey-subtle", "--border-neutral-subtle"),
|
|
337
|
+
nonSemantic("--non-semantic-background-grey-strong", "--background-neutral-strong"),
|
|
338
|
+
nonSemantic("--non-semantic-background-grey-muted", "--background-neutral-muted"),
|
|
339
|
+
nonSemantic("--non-semantic-background-grey-on-subtle", "--background-neutral-on-subtle"),
|
|
340
|
+
nonSemantic("--non-semantic-background-grey-subtle", "--background-neutral-subtle"),
|
|
341
|
+
nonSemantic("--non-semantic-background-grey-surface", "--background-neutral-surface"),
|
|
342
|
+
nonSemantic("--non-semantic-background-grey-hard", "--background-neutral-hard"),
|
|
343
|
+
nonSemantic("--non-semantic-content-white-primary", "--content-inverted-primary"),
|
|
344
|
+
nonSemantic("--non-semantic-content-white-secondary", "--content-inverted-secondary"),
|
|
345
|
+
nonSemantic("--non-semantic-border-white-default", "--border-inverted"),
|
|
346
|
+
nonSemantic("--non-semantic-border-white-strong", "--border-inverted"),
|
|
347
|
+
nonSemantic("--non-semantic-border-white-subtle", "--border-inverted"),
|
|
348
|
+
nonSemantic("--non-semantic-background-white-strong", "--background-default"),
|
|
349
|
+
nonSemantic("--non-semantic-background-white-muted", "--background-default"),
|
|
350
|
+
nonSemantic("--non-semantic-background-white-on-subtle", "--background-default"),
|
|
351
|
+
nonSemantic("--non-semantic-background-white-subtle", "--background-default"),
|
|
352
|
+
nonSemantic("--non-semantic-background-white-surface", "--background-default"),
|
|
353
|
+
...createNonSemanticFeedbackEntries("blue"),
|
|
354
|
+
...createNonSemanticFeedbackEntries("green"),
|
|
355
|
+
...createNonSemanticFeedbackEntries("orange"),
|
|
356
|
+
...createNonSemanticFeedbackEntries("red"),
|
|
357
|
+
...unsupportedChromaticFamilies.flatMap((family) => createBlockedNonSemanticFamilyEntries(family))
|
|
358
|
+
];
|
|
359
|
+
var migrationMappingRegistry = [
|
|
360
|
+
...aliasColorEntries,
|
|
361
|
+
...createDimensionAliasEntries("spacing", [
|
|
362
|
+
"0",
|
|
363
|
+
"25",
|
|
364
|
+
"50",
|
|
365
|
+
"75",
|
|
366
|
+
"100",
|
|
367
|
+
"150",
|
|
368
|
+
"200",
|
|
369
|
+
"250",
|
|
370
|
+
"300",
|
|
371
|
+
"400",
|
|
372
|
+
"500",
|
|
373
|
+
"600",
|
|
374
|
+
"800",
|
|
375
|
+
"1000"
|
|
376
|
+
]),
|
|
377
|
+
...createDimensionAliasEntries("padding", [
|
|
378
|
+
"0",
|
|
379
|
+
"25",
|
|
380
|
+
"50",
|
|
381
|
+
"75",
|
|
382
|
+
"100",
|
|
383
|
+
"150",
|
|
384
|
+
"200",
|
|
385
|
+
"250",
|
|
386
|
+
"300",
|
|
387
|
+
"400",
|
|
388
|
+
"500",
|
|
389
|
+
"600",
|
|
390
|
+
"700",
|
|
391
|
+
"800",
|
|
392
|
+
"900",
|
|
393
|
+
"1000"
|
|
394
|
+
]),
|
|
395
|
+
...createBlockedAliasEntries("radius", [
|
|
396
|
+
"0",
|
|
397
|
+
"25",
|
|
398
|
+
"50",
|
|
399
|
+
"75",
|
|
400
|
+
"100",
|
|
401
|
+
"150",
|
|
402
|
+
"full"
|
|
403
|
+
]),
|
|
404
|
+
...createBlockedAliasEntries("stroke", [
|
|
405
|
+
"sm",
|
|
406
|
+
"md",
|
|
407
|
+
"lg",
|
|
408
|
+
"xl"
|
|
409
|
+
]),
|
|
410
|
+
...createBlockedAliasEntries("opacity", [
|
|
411
|
+
"0",
|
|
412
|
+
"25",
|
|
413
|
+
"50",
|
|
414
|
+
"75",
|
|
415
|
+
"100",
|
|
416
|
+
"150",
|
|
417
|
+
"200",
|
|
418
|
+
"250",
|
|
419
|
+
"300",
|
|
420
|
+
"400",
|
|
421
|
+
"500",
|
|
422
|
+
"600",
|
|
423
|
+
"700",
|
|
424
|
+
"800",
|
|
425
|
+
"900",
|
|
426
|
+
"1000",
|
|
427
|
+
"full"
|
|
428
|
+
]),
|
|
429
|
+
...interactionEntries,
|
|
430
|
+
...nonSemanticEntries
|
|
431
|
+
];
|
|
432
|
+
var migrationMappingTableByType = migrationMappingRegistry.reduce((table, entry) => {
|
|
433
|
+
table[entry.type].push(entry);
|
|
434
|
+
return table;
|
|
435
|
+
}, {
|
|
436
|
+
alias: [],
|
|
437
|
+
interaction: [],
|
|
438
|
+
"non-semantic": []
|
|
439
|
+
});
|
|
440
|
+
function getMigrationMapping(source) {
|
|
441
|
+
return migrationMappingRegistry.find((entry) => entry.source === source);
|
|
442
|
+
}
|
|
443
|
+
function getPublishedMigrationMappings() {
|
|
444
|
+
return migrationMappingRegistry.filter((entry) => entry.lifecycle === "published" && entry.target);
|
|
445
|
+
}
|
|
446
|
+
function assertOneWayMigrationMapping() {
|
|
447
|
+
const sources = /* @__PURE__ */ new Set();
|
|
448
|
+
for (const entry of migrationMappingRegistry) {
|
|
449
|
+
if (sources.has(entry.source)) throw new Error(`Duplicate migration source: ${entry.source}`);
|
|
450
|
+
sources.add(entry.source);
|
|
451
|
+
if (!entry.target) continue;
|
|
452
|
+
if (entry.target === entry.source) throw new Error(`Migration source cannot target itself: ${entry.source}`);
|
|
453
|
+
if (legacyPrefixes.some((prefix) => entry.target?.startsWith(prefix))) throw new Error(`Migration target must not point to a legacy variable: ${entry.source} -> ${entry.target}`);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
//#endregion
|
|
457
|
+
export { assertOneWayMigrationMapping, getMigrationMapping, getPublishedMigrationMappings, migrationMappingRegistry, migrationMappingTableByType };
|
|
458
|
+
|
|
459
|
+
//# sourceMappingURL=migrationMappingRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrationMappingRegistry.js","names":[],"sources":["../../../src/theme/governance/migrationMappingRegistry.ts"],"sourcesContent":["export type MigrationMappingType = 'alias' | 'interaction' | 'non-semantic';\n\nexport type MigrationMappingLifecycle =\n | 'proposed'\n | 'accepted'\n | 'published'\n | 'deprecated'\n | 'removed'\n | 'blocked';\n\nexport type MigrationMappingStrategy =\n | 'direct-token-output'\n | 'semantic-equivalent'\n | 'component-token-output'\n | 'compatibility-output'\n | 'governance-review-required';\n\nexport type LegacyCssVariableName =\n | `--alias-${string}`\n | `--interaction-${string}`\n | `--non-semantic-${string}`;\n\nexport type TokenOutputVariableName = `--${string}`;\n\nexport interface MigrationMappingEntry {\n source: LegacyCssVariableName;\n target: TokenOutputVariableName | null;\n type: MigrationMappingType;\n lifecycle: MigrationMappingLifecycle;\n strategy: MigrationMappingStrategy;\n note?: string;\n}\n\ntype MappingInput = Omit<MigrationMappingEntry, 'lifecycle' | 'strategy'> &\n Partial<Pick<MigrationMappingEntry, 'lifecycle' | 'strategy'>>;\n\nconst legacyPrefixes = [\n '--alias-',\n '--interaction-',\n '--non-semantic-',\n] as const;\n\nconst dimensionByLegacyStep = {\n '0': '--dimension-0',\n '25': '--dimension-0-5',\n '50': '--dimension-1',\n '75': '--dimension-1-5',\n '100': '--dimension-2',\n '150': '--dimension-3',\n '200': '--dimension-4',\n '250': '--dimension-5',\n '300': '--dimension-6',\n '400': '--dimension-8',\n '500': '--dimension-10',\n '600': '--dimension-12',\n '700': '--dimension-14',\n '800': '--dimension-16',\n '900': '--dimension-18',\n '1000': '--dimension-20',\n} as const satisfies Record<string, TokenOutputVariableName>;\n\nconst feedbackFamilyTargets = {\n blue: 'informative',\n green: 'positive',\n orange: 'warning',\n red: 'negative',\n} as const;\n\nconst unsupportedChromaticFamilies = [\n 'aquamarine',\n 'cerulean',\n 'coral',\n 'cyan',\n 'emerald',\n 'grape',\n 'magenta',\n 'purple',\n 'raspberry',\n 'tangerine',\n 'teal',\n 'violet',\n] as const;\n\nfunction createEntry({\n source,\n target,\n type,\n lifecycle,\n strategy,\n note,\n}: MappingInput): MigrationMappingEntry {\n return {\n source,\n target,\n type,\n lifecycle: lifecycle ?? (target ? 'published' : 'blocked'),\n strategy:\n strategy ??\n (target ? 'semantic-equivalent' : 'governance-review-required'),\n ...(note ? { note } : {}),\n };\n}\n\nfunction alias(\n source: `--alias-${string}`,\n target: TokenOutputVariableName | null,\n options: Partial<\n Pick<MigrationMappingEntry, 'strategy' | 'lifecycle' | 'note'>\n > = {},\n): MigrationMappingEntry {\n return createEntry({\n source,\n target,\n type: 'alias',\n ...options,\n });\n}\n\nfunction interaction(\n source: `--interaction-${string}`,\n target: TokenOutputVariableName | null,\n options: Partial<\n Pick<MigrationMappingEntry, 'strategy' | 'lifecycle' | 'note'>\n > = {},\n): MigrationMappingEntry {\n return createEntry({\n source,\n target,\n type: 'interaction',\n ...options,\n });\n}\n\nfunction nonSemantic(\n source: `--non-semantic-${string}`,\n target: TokenOutputVariableName | null,\n options: Partial<\n Pick<MigrationMappingEntry, 'strategy' | 'lifecycle' | 'note'>\n > = {},\n): MigrationMappingEntry {\n return createEntry({\n source,\n target,\n type: 'non-semantic',\n ...options,\n });\n}\n\nfunction createDimensionAliasEntries(\n prefix: 'spacing' | 'padding',\n steps: readonly (keyof typeof dimensionByLegacyStep)[],\n): MigrationMappingEntry[] {\n const entries: MigrationMappingEntry[] = [];\n\n for (const step of steps) {\n entries.push(\n alias(`--alias-${prefix}-${step}`, dimensionByLegacyStep[step], {\n strategy: 'direct-token-output',\n }),\n );\n\n if (prefix === 'padding') {\n entries.push(\n alias(`--alias-padding-${step}-minus-1`, null, {\n note: 'No accepted Token Output Contract target exists for minus-one legacy padding.',\n }),\n );\n }\n }\n\n return entries;\n}\n\nfunction createBlockedAliasEntries(\n prefix: 'radius' | 'stroke' | 'opacity',\n names: readonly string[],\n): MigrationMappingEntry[] {\n return names.map((name) =>\n alias(`--alias-${prefix}-${name}`, null, {\n note: `No accepted ${prefix} Token Output Contract target exists in this registry scope.`,\n }),\n );\n}\n\nfunction createActionStateEntries(\n sourcePrefix: string,\n targetPrefix: string,\n states: readonly string[] = ['normal', 'hover', 'active', 'selected'],\n): MigrationMappingEntry[] {\n return states.map((state) =>\n interaction(\n `--interaction-${sourcePrefix}-${state}`,\n `--action-${targetPrefix}-${state}`,\n {\n strategy: 'direct-token-output',\n },\n ),\n );\n}\n\nfunction createNonSemanticFeedbackEntries(\n family: keyof typeof feedbackFamilyTargets,\n): MigrationMappingEntry[] {\n const target = feedbackFamilyTargets[family];\n\n return [\n nonSemantic(\n `--non-semantic-content-${family}-primary`,\n `--content-${target}-primary`,\n ),\n nonSemantic(\n `--non-semantic-content-${family}-secondary`,\n `--content-${target}-secondary`,\n ),\n nonSemantic(\n `--non-semantic-border-${family}-default`,\n `--border-${target}-subtle`,\n ),\n nonSemantic(\n `--non-semantic-border-${family}-strong`,\n `--border-${target}-strong`,\n ),\n nonSemantic(\n `--non-semantic-border-${family}-subtle`,\n `--border-${target}-subtle`,\n ),\n nonSemantic(\n `--non-semantic-background-${family}-strong`,\n `--background-${target}-strong`,\n ),\n nonSemantic(\n `--non-semantic-background-${family}-muted`,\n `--background-${target}-muted`,\n ),\n nonSemantic(\n `--non-semantic-background-${family}-on-subtle`,\n `--background-${target}-on-subtle`,\n ),\n nonSemantic(\n `--non-semantic-background-${family}-subtle`,\n `--background-${target}-subtle`,\n ),\n nonSemantic(\n `--non-semantic-background-${family}-surface`,\n `--background-${target}-surface`,\n ),\n ];\n}\n\nfunction createBlockedNonSemanticFamilyEntries(\n family: (typeof unsupportedChromaticFamilies)[number],\n): MigrationMappingEntry[] {\n const note =\n 'No accepted semantic or component token target exists for this legacy chromatic family.';\n\n return [\n nonSemantic(`--non-semantic-content-${family}-primary`, null, { note }),\n nonSemantic(`--non-semantic-content-${family}-secondary`, null, { note }),\n nonSemantic(`--non-semantic-border-${family}-default`, null, { note }),\n nonSemantic(`--non-semantic-border-${family}-strong`, null, { note }),\n nonSemantic(`--non-semantic-border-${family}-subtle`, null, { note }),\n nonSemantic(`--non-semantic-background-${family}-strong`, null, { note }),\n nonSemantic(`--non-semantic-background-${family}-muted`, null, { note }),\n nonSemantic(`--non-semantic-background-${family}-on-subtle`, null, {\n note,\n }),\n nonSemantic(`--non-semantic-background-${family}-subtle`, null, { note }),\n nonSemantic(`--non-semantic-background-${family}-surface`, null, { note }),\n ];\n}\n\nconst aliasColorEntries: MigrationMappingEntry[] = [\n alias('--alias-colors-text-strong', '--content-primary'),\n alias('--alias-colors-text-default', '--content-primary'),\n alias('--alias-colors-text-secondary', '--content-secondary'),\n alias('--alias-colors-text-subtle', '--content-secondary'),\n alias('--alias-colors-text-subtlest', '--content-tertiary'),\n alias('--alias-colors-text-disabled', '--content-disabled'),\n alias('--alias-colors-text-selected', '--content-brand-primary'),\n alias('--alias-colors-text-brand', '--content-brand-secondary'),\n alias('--alias-colors-text-danger', '--content-negative-secondary'),\n alias('--alias-colors-text-warning', '--content-warning-secondary'),\n alias('--alias-colors-text-success', '--content-positive-secondary'),\n alias('--alias-colors-text-information', '--content-informative-secondary'),\n alias('--alias-colors-text-inverse-strong', '--content-inverted-primary'),\n alias('--alias-colors-text-inverse-default', '--content-inverted-primary'),\n alias('--alias-colors-text-inverse-subtle', '--content-inverted-secondary'),\n alias('--alias-colors-text-inverse-subtlest', '--content-inverted-tertiary'),\n alias('--alias-colors-text-inverse-disabled', '--content-inverted-disabled'),\n alias('--alias-colors-text-accent-gray-strong', '--content-primary'),\n alias('--alias-colors-text-accent-gray-default', '--content-secondary'),\n alias(\n '--alias-colors-text-accent-blue-strong',\n '--content-informative-primary',\n ),\n alias(\n '--alias-colors-text-accent-blue-default',\n '--content-informative-secondary',\n ),\n alias('--alias-colors-text-accent-red-strong', '--content-negative-primary'),\n alias(\n '--alias-colors-text-accent-red-default',\n '--content-negative-secondary',\n ),\n alias(\n '--alias-colors-text-accent-orange-strong',\n '--content-warning-primary',\n ),\n alias(\n '--alias-colors-text-accent-orange-default',\n '--content-warning-secondary',\n ),\n alias(\n '--alias-colors-text-accent-yellow-strong',\n '--content-warning-primary',\n ),\n alias(\n '--alias-colors-text-accent-yellow-default',\n '--content-warning-secondary',\n ),\n alias(\n '--alias-colors-text-accent-green-strong',\n '--content-positive-primary',\n ),\n alias(\n '--alias-colors-text-accent-green-default',\n '--content-positive-secondary',\n ),\n alias('--alias-colors-text-accent-teal-strong', null, {\n note: 'No accepted semantic target exists for teal accent text.',\n }),\n alias('--alias-colors-text-accent-teal-default', null, {\n note: 'No accepted semantic target exists for teal accent text.',\n }),\n alias('--alias-colors-text-accent-purple-strong', null, {\n note: 'No accepted semantic target exists for purple accent text.',\n }),\n alias('--alias-colors-text-accent-purple-default', null, {\n note: 'No accepted semantic target exists for purple accent text.',\n }),\n alias('--alias-colors-text-accent-pink-strong', null, {\n note: 'No accepted semantic target exists for pink accent text.',\n }),\n alias('--alias-colors-text-accent-pink-default', null, {\n note: 'No accepted semantic target exists for pink accent text.',\n }),\n alias('--alias-colors-link-default', null, {\n note: 'No accepted Link Token Output target exists yet.',\n }),\n alias('--alias-colors-link-hover', null, {\n note: 'No accepted Link Token Output target exists yet.',\n }),\n alias('--alias-colors-icon-default', '--content-primary'),\n alias('--alias-colors-icon-subtle', '--content-secondary'),\n alias('--alias-colors-icon-subtler', '--content-tertiary'),\n alias('--alias-colors-icon-disabled', '--content-disabled'),\n alias('--alias-colors-icon-selected', '--content-brand-secondary'),\n alias('--alias-colors-icon-brand', '--content-brand-secondary'),\n alias('--alias-colors-icon-danger', '--content-negative-secondary'),\n alias('--alias-colors-icon-warning', '--content-warning-secondary'),\n alias('--alias-colors-icon-success', '--content-positive-secondary'),\n alias('--alias-colors-icon-information', '--content-informative-secondary'),\n alias('--alias-colors-icon-inverse-default', '--content-inverted-primary'),\n alias('--alias-colors-icon-inverse-subtle', '--content-inverted-secondary'),\n alias('--alias-colors-icon-inverse-subtler', '--content-inverted-tertiary'),\n alias('--alias-colors-icon-inverse-disabled', '--content-inverted-disabled'),\n alias('--alias-colors-icon-transp', null, {\n note: 'Transparent icon value requires component-level review.',\n }),\n alias('--alias-colors-icon-accent-gray', '--content-secondary'),\n alias('--alias-colors-icon-accent-blue', '--content-informative-secondary'),\n alias('--alias-colors-icon-accent-red', '--content-negative-secondary'),\n alias('--alias-colors-icon-accent-orange', '--content-warning-secondary'),\n alias('--alias-colors-icon-accent-yellow', '--content-warning-secondary'),\n alias('--alias-colors-icon-accent-green', '--content-positive-secondary'),\n alias('--alias-colors-icon-accent-teal', null, {\n note: 'No accepted semantic target exists for teal accent icon.',\n }),\n alias('--alias-colors-icon-accent-purple', null, {\n note: 'No accepted semantic target exists for purple accent icon.',\n }),\n alias('--alias-colors-icon-accent-pink', null, {\n note: 'No accepted semantic target exists for pink accent icon.',\n }),\n alias('--alias-colors-border-subtle', '--border-neutral-subtle'),\n alias('--alias-colors-border-default', '--border-default'),\n alias('--alias-colors-border-strong', '--border-neutral-strong'),\n alias('--alias-colors-border-disabled', '--border-default-alpha'),\n alias('--alias-colors-border-selected', '--border-brand-strong'),\n alias('--alias-colors-border-brand', '--border-brand-strong'),\n alias('--alias-colors-border-danger', '--border-negative-strong'),\n alias('--alias-colors-border-warning', '--border-warning-strong'),\n alias('--alias-colors-border-success', '--border-positive-strong'),\n alias('--alias-colors-border-information', '--border-informative-strong'),\n alias('--alias-colors-border-inverse-subtle', '--border-inverted'),\n alias('--alias-colors-border-inverse-default', '--border-inverted'),\n alias('--alias-colors-border-inverse-strong', '--border-inverted'),\n alias('--alias-colors-border-transp', null, {\n note: 'Transparent border value requires component-level review.',\n }),\n alias('--alias-colors-border-accent-gray-default', '--border-neutral-subtle'),\n alias('--alias-colors-border-accent-gray-strong', '--border-neutral-strong'),\n alias(\n '--alias-colors-border-accent-blue-default',\n '--border-informative-subtle',\n ),\n alias(\n '--alias-colors-border-accent-blue-strong',\n '--border-informative-strong',\n ),\n alias(\n '--alias-colors-border-accent-green-default',\n '--border-positive-subtle',\n ),\n alias(\n '--alias-colors-border-accent-green-strong',\n '--border-positive-strong',\n ),\n alias(\n '--alias-colors-border-accent-yellow-default',\n '--border-warning-subtle',\n ),\n alias(\n '--alias-colors-border-accent-yellow-strong',\n '--border-warning-strong',\n ),\n alias(\n '--alias-colors-border-accent-orange-default',\n '--border-warning-subtle',\n ),\n alias(\n '--alias-colors-border-accent-orange-strong',\n '--border-warning-strong',\n ),\n alias('--alias-colors-border-accent-red-default', '--border-negative-subtle'),\n alias('--alias-colors-border-accent-red-strong', '--border-negative-strong'),\n alias('--alias-colors-border-accent-purple-default', null, {\n note: 'No accepted semantic target exists for purple accent border.',\n }),\n alias('--alias-colors-border-accent-purple-strong', null, {\n note: 'No accepted semantic target exists for purple accent border.',\n }),\n alias('--alias-colors-border-accent-pink-default', null, {\n note: 'No accepted semantic target exists for pink accent border.',\n }),\n alias('--alias-colors-border-accent-pink-strong', null, {\n note: 'No accepted semantic target exists for pink accent border.',\n }),\n alias('--alias-colors-bg-skeleton-subtler', '--background-default'),\n alias('--alias-colors-bg-skeleton-subtle', '--background-neutral-surface'),\n alias('--alias-colors-bg-skeleton-strong', '--background-neutral-subtle'),\n alias(\n '--alias-colors-bg-skeleton-stronger',\n '--background-neutral-on-subtle',\n ),\n alias('--alias-colors-bg-skeleton-strongest', '--background-neutral-muted'),\n alias('--alias-colors-bg-skeleton-inverse-subtler', '--background-inverted'),\n alias('--alias-colors-bg-skeleton-inverse-subtle', '--background-inverted'),\n alias('--alias-colors-bg-skeleton-inverse-strong', '--background-inverted'),\n alias('--alias-colors-bg-skeleton-inverse-stronger', '--background-inverted'),\n alias(\n '--alias-colors-bg-skeleton-inverse-strongest',\n '--background-inverted',\n ),\n alias('--alias-colors-bg-disabled', '--background-neutral-on-subtle'),\n alias('--alias-colors-bg-inverse-disabled', '--background-inverted'),\n alias('--alias-colors-bg-transp', null, {\n note: 'Transparent background value requires component-level review.',\n }),\n alias('--alias-colors-bg-blanker-default', '--background-inverted'),\n alias('--alias-colors-bg-tooltip', '--background-inverted'),\n alias('--alias-colors-bg-interaction-hover', '--action-ghost-hover'),\n alias('--alias-colors-bg-interaction-press', '--action-ghost-active'),\n alias(\n '--alias-colors-bg-interaction-inverse-hover',\n '--action-ghost-inverted-hover',\n ),\n alias(\n '--alias-colors-bg-interaction-inverse-press',\n '--action-ghost-inverted-active',\n ),\n alias('--alias-colors-bg-selected-default', '--background-brand-muted'),\n alias('--alias-colors-bg-selected-hover', '--background-brand-muted'),\n alias('--alias-colors-bg-selected-press', '--background-brand-on-subtle'),\n alias(\n '--alias-colors-bg-selected-inverse-default',\n '--background-brand-strong',\n ),\n alias(\n '--alias-colors-bg-selected-inverse-hover',\n '--background-brand-strong',\n ),\n alias(\n '--alias-colors-bg-selected-inverse-press',\n '--background-brand-strong',\n ),\n alias(\n '--alias-colors-bg-selected-strong-default',\n '--background-brand-strong',\n ),\n alias('--alias-colors-bg-selected-strong-hover', '--background-brand-strong'),\n alias('--alias-colors-bg-selected-strong-press', '--background-brand-strong'),\n alias(\n '--alias-colors-bg-selected-inverse-strong-default',\n '--background-brand-strong',\n ),\n alias(\n '--alias-colors-bg-selected-inverse-strong-hover',\n '--background-brand-strong',\n ),\n alias(\n '--alias-colors-bg-selected-inverse-strong-press',\n '--background-brand-strong',\n ),\n alias('--alias-colors-bg-accent-gray-default', '--background-neutral-subtle'),\n alias('--alias-colors-bg-accent-gray-strong', '--background-neutral-strong'),\n alias(\n '--alias-colors-bg-accent-blue-default',\n '--background-informative-muted',\n ),\n alias(\n '--alias-colors-bg-accent-blue-strong',\n '--background-informative-strong',\n ),\n alias('--alias-colors-bg-accent-red-default', '--background-negative-muted'),\n alias('--alias-colors-bg-accent-red-strong', '--background-negative-strong'),\n alias(\n '--alias-colors-bg-accent-orange-default',\n '--background-warning-muted',\n ),\n alias(\n '--alias-colors-bg-accent-orange-strong',\n '--background-warning-strong',\n ),\n alias(\n '--alias-colors-bg-accent-yellow-default',\n '--background-warning-muted',\n ),\n alias(\n '--alias-colors-bg-accent-yellow-strong',\n '--background-warning-strong',\n ),\n alias(\n '--alias-colors-bg-accent-green-default',\n '--background-positive-muted',\n ),\n alias(\n '--alias-colors-bg-accent-green-strong',\n '--background-positive-strong',\n ),\n alias('--alias-colors-bg-accent-teal-default', null, {\n note: 'No accepted semantic target exists for teal accent background.',\n }),\n alias('--alias-colors-bg-accent-teal-strong', null, {\n note: 'No accepted semantic target exists for teal accent background.',\n }),\n alias('--alias-colors-bg-accent-purple-default', null, {\n note: 'No accepted semantic target exists for purple accent background.',\n }),\n alias('--alias-colors-bg-accent-purple-strong', null, {\n note: 'No accepted semantic target exists for purple accent background.',\n }),\n alias('--alias-colors-bg-accent-pink-default', null, {\n note: 'No accepted semantic target exists for pink accent background.',\n }),\n alias('--alias-colors-bg-accent-pink-strong', null, {\n note: 'No accepted semantic target exists for pink accent background.',\n }),\n ...[\n 'gray',\n 'blue',\n 'auburn',\n 'orange',\n 'yellow',\n 'green',\n 'teal',\n 'purple',\n 'pink',\n 'red',\n ].map((family) =>\n alias(`--alias-colors-data-${family}`, null, {\n note: 'No accepted Data Token Output target exists yet.',\n }),\n ),\n];\n\nconst interactionEntries: MigrationMappingEntry[] = [\n ...createActionStateEntries('default', 'primary'),\n ...createActionStateEntries('default-subtle', 'primary-subtle'),\n ...createActionStateEntries('neutral', 'neutral'),\n ...createActionStateEntries('neutral-subtle', 'neutral-subtle'),\n ...createActionStateEntries('alert', 'destructive'),\n ...createActionStateEntries('alert-subtle', 'destructive-subtle'),\n ...createActionStateEntries('ghost', 'ghost', [\n 'normal',\n 'hover',\n 'active',\n 'selected',\n ]),\n ...createActionStateEntries('ghost-inverted', 'ghost-inverted', [\n 'hover',\n 'active',\n 'selected',\n ]),\n ...createActionStateEntries('ghost-destructive', 'ghost-destructive', [\n 'hover',\n 'active',\n 'selected',\n ]),\n ...createActionStateEntries('inverted', 'inverted'),\n interaction('--interaction-disabled-normal', null, {\n note: 'No accepted disabled action Token Output target exists.',\n }),\n interaction('--interaction-disabled-hover', null, {\n note: 'No accepted disabled action Token Output target exists.',\n }),\n interaction('--interaction-disabled-active', null, {\n note: 'No accepted disabled action Token Output target exists.',\n }),\n interaction(\n '--interaction-disabled-subtle-normal',\n '--background-neutral-on-subtle',\n ),\n interaction(\n '--interaction-disabled-subtle-hover',\n '--background-neutral-muted',\n ),\n interaction(\n '--interaction-disabled-subtle-active',\n '--background-neutral-muted',\n ),\n interaction('--interaction-border-normal', '--border-brand-subtle'),\n interaction('--interaction-border-hover', '--border-brand-strong'),\n interaction('--interaction-border-active', '--border-brand-strong'),\n interaction('--interaction-border-selected', '--border-brand-strong'),\n interaction('--interaction-border-neutral-normal', '--border-neutral-subtle'),\n interaction('--interaction-border-neutral-hover', '--border-default'),\n interaction('--interaction-border-neutral-active', '--border-neutral-strong'),\n interaction('--interaction-border-neutral-selected', '--border-default'),\n interaction('--interaction-border-alert', '--border-negative-strong'),\n interaction('--interaction-background-modal', '--background-default'),\n interaction('--interaction-background-modeless', '--background-default'),\n interaction(\n '--interaction-background-inverted-modeless',\n '--background-inverted',\n ),\n interaction('--interaction-background-sidepanel', '--background-default'),\n interaction('--interaction-background-sidebar-nav', '--background-default'),\n interaction('--interaction-background-top-nav', '--background-default'),\n interaction('--interaction-background-form-field', '--background-default'),\n interaction(\n '--interaction-background-default-dimmer',\n '--background-inverted',\n ),\n interaction('--interaction-focus-default', null, {\n note: 'No accepted Focus Token Output target exists yet.',\n }),\n];\n\nconst nonSemanticEntries: MigrationMappingEntry[] = [\n nonSemantic('--non-semantic-content-grey-primary', '--content-primary'),\n nonSemantic('--non-semantic-content-grey-secondary', '--content-secondary'),\n nonSemantic('--non-semantic-border-grey-default', '--border-default'),\n nonSemantic('--non-semantic-border-grey-strong', '--border-neutral-strong'),\n nonSemantic('--non-semantic-border-grey-subtle', '--border-neutral-subtle'),\n nonSemantic(\n '--non-semantic-background-grey-strong',\n '--background-neutral-strong',\n ),\n nonSemantic(\n '--non-semantic-background-grey-muted',\n '--background-neutral-muted',\n ),\n nonSemantic(\n '--non-semantic-background-grey-on-subtle',\n '--background-neutral-on-subtle',\n ),\n nonSemantic(\n '--non-semantic-background-grey-subtle',\n '--background-neutral-subtle',\n ),\n nonSemantic(\n '--non-semantic-background-grey-surface',\n '--background-neutral-surface',\n ),\n nonSemantic(\n '--non-semantic-background-grey-hard',\n '--background-neutral-hard',\n ),\n nonSemantic(\n '--non-semantic-content-white-primary',\n '--content-inverted-primary',\n ),\n nonSemantic(\n '--non-semantic-content-white-secondary',\n '--content-inverted-secondary',\n ),\n nonSemantic('--non-semantic-border-white-default', '--border-inverted'),\n nonSemantic('--non-semantic-border-white-strong', '--border-inverted'),\n nonSemantic('--non-semantic-border-white-subtle', '--border-inverted'),\n nonSemantic('--non-semantic-background-white-strong', '--background-default'),\n nonSemantic('--non-semantic-background-white-muted', '--background-default'),\n nonSemantic(\n '--non-semantic-background-white-on-subtle',\n '--background-default',\n ),\n nonSemantic('--non-semantic-background-white-subtle', '--background-default'),\n nonSemantic(\n '--non-semantic-background-white-surface',\n '--background-default',\n ),\n ...createNonSemanticFeedbackEntries('blue'),\n ...createNonSemanticFeedbackEntries('green'),\n ...createNonSemanticFeedbackEntries('orange'),\n ...createNonSemanticFeedbackEntries('red'),\n ...unsupportedChromaticFamilies.flatMap((family) =>\n createBlockedNonSemanticFamilyEntries(family),\n ),\n];\n\nexport const migrationMappingRegistry = [\n ...aliasColorEntries,\n ...createDimensionAliasEntries('spacing', [\n '0',\n '25',\n '50',\n '75',\n '100',\n '150',\n '200',\n '250',\n '300',\n '400',\n '500',\n '600',\n '800',\n '1000',\n ]),\n ...createDimensionAliasEntries('padding', [\n '0',\n '25',\n '50',\n '75',\n '100',\n '150',\n '200',\n '250',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '1000',\n ]),\n ...createBlockedAliasEntries('radius', [\n '0',\n '25',\n '50',\n '75',\n '100',\n '150',\n 'full',\n ]),\n ...createBlockedAliasEntries('stroke', ['sm', 'md', 'lg', 'xl']),\n ...createBlockedAliasEntries('opacity', [\n '0',\n '25',\n '50',\n '75',\n '100',\n '150',\n '200',\n '250',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '1000',\n 'full',\n ]),\n ...interactionEntries,\n ...nonSemanticEntries,\n] as const satisfies readonly MigrationMappingEntry[];\n\nexport const migrationMappingTableByType = migrationMappingRegistry.reduce(\n (table, entry) => {\n table[entry.type].push(entry);\n return table;\n },\n {\n alias: [] as MigrationMappingEntry[],\n interaction: [] as MigrationMappingEntry[],\n 'non-semantic': [] as MigrationMappingEntry[],\n } satisfies Record<MigrationMappingType, MigrationMappingEntry[]>,\n);\n\nexport function getMigrationMapping(\n source: LegacyCssVariableName,\n): MigrationMappingEntry | undefined {\n return migrationMappingRegistry.find((entry) => entry.source === source);\n}\n\nexport function getPublishedMigrationMappings(): MigrationMappingEntry[] {\n return migrationMappingRegistry.filter(\n (entry) => entry.lifecycle === 'published' && entry.target,\n );\n}\n\nexport function assertOneWayMigrationMapping(): void {\n const sources = new Set<LegacyCssVariableName>();\n\n for (const entry of migrationMappingRegistry) {\n if (sources.has(entry.source)) {\n throw new Error(`Duplicate migration source: ${entry.source}`);\n }\n sources.add(entry.source);\n\n if (!entry.target) continue;\n\n if (entry.target === entry.source) {\n throw new Error(`Migration source cannot target itself: ${entry.source}`);\n }\n\n if (legacyPrefixes.some((prefix) => entry.target?.startsWith(prefix))) {\n throw new Error(\n `Migration target must not point to a legacy variable: ${entry.source} -> ${entry.target}`,\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { MigrationValidationReport, MigrationValidationSource } from './validateMigrationMapping.js';
|
|
2
|
+
export type ReviewGateDecisionStatus = 'approved' | 'needs-review' | 'blocked';
|
|
3
|
+
export type ReviewGateReasonCode = 'no-legacy-variable' | 'replaceable-migration-mapping' | 'blocked-migration-mapping' | 'deprecated-migration-mapping' | 'governance-review-required' | 'unregistered-legacy-variable';
|
|
4
|
+
export interface ReviewGateDecisionReason {
|
|
5
|
+
code: ReviewGateReasonCode;
|
|
6
|
+
count: number;
|
|
7
|
+
severity: 'info' | 'warning' | 'error';
|
|
8
|
+
message: string;
|
|
9
|
+
}
|
|
10
|
+
export type ReviewGateDecisionIssue = ReviewGateDecisionReason;
|
|
11
|
+
export interface ReviewGateDecisionSummary {
|
|
12
|
+
filesScanned: number;
|
|
13
|
+
legacyVariableUsageCount: number;
|
|
14
|
+
replaceableUsageCount: number;
|
|
15
|
+
deprecatedUsageCount: number;
|
|
16
|
+
blockedUsageCount: number;
|
|
17
|
+
governanceReviewUsageCount: number;
|
|
18
|
+
unregisteredUsageCount: number;
|
|
19
|
+
issueCount: number;
|
|
20
|
+
}
|
|
21
|
+
export interface ReviewGateDecision {
|
|
22
|
+
status: ReviewGateDecisionStatus;
|
|
23
|
+
passed: boolean;
|
|
24
|
+
issues: ReviewGateDecisionIssue[];
|
|
25
|
+
summary: ReviewGateDecisionSummary;
|
|
26
|
+
canAutoReplace: boolean;
|
|
27
|
+
requiresGovernanceReview: boolean;
|
|
28
|
+
validation: MigrationValidationReport;
|
|
29
|
+
reasons: ReviewGateDecisionReason[];
|
|
30
|
+
}
|
|
31
|
+
export declare function createReviewGateDecision(validation: MigrationValidationReport): ReviewGateDecision;
|
|
32
|
+
export declare function runMigrationReviewGate(sources: readonly MigrationValidationSource[]): ReviewGateDecision;
|
|
33
|
+
export declare function formatReviewGateDecision(decision: ReviewGateDecision): string;
|