@aloudata/aloudata-design 3.0.20 → 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.
Files changed (198) hide show
  1. package/README.md +145 -59
  2. package/dist/Alert/index.js +1 -1
  3. package/dist/Alert/index.js.map +1 -1
  4. package/dist/Avatar/component/Avatar/index.js +2 -2
  5. package/dist/Avatar/component/Avatar/index.js.map +1 -1
  6. package/dist/Avatar/component/Avatar/type.js +3 -3
  7. package/dist/Avatar/component/Avatar/type.js.map +1 -1
  8. package/dist/Badge/index.js +5 -5
  9. package/dist/Badge/index.js.map +1 -1
  10. package/dist/Breadcrumb/index.js +4 -4
  11. package/dist/Breadcrumb/index.js.map +1 -1
  12. package/dist/Button/index.js +8 -8
  13. package/dist/Button/index.js.map +1 -1
  14. package/dist/Card/index.js +1 -1
  15. package/dist/Card/index.js.map +1 -1
  16. package/dist/Checkbox/index.js +3 -3
  17. package/dist/Checkbox/index.js.map +1 -1
  18. package/dist/Collapse/index.js +1 -1
  19. package/dist/Collapse/index.js.map +1 -1
  20. package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js +1 -1
  21. package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js.map +1 -1
  22. package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js +1 -1
  23. package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js.map +1 -1
  24. package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js +1 -1
  25. package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js.map +1 -1
  26. package/dist/ColorPicker/ComplexColorPicker/index.js +2 -2
  27. package/dist/ColorPicker/ComplexColorPicker/index.js.map +1 -1
  28. package/dist/ColorPicker/index.js +11 -11
  29. package/dist/ColorPicker/index.js.map +1 -1
  30. package/dist/ColorPicker/util.d.ts +1 -1
  31. package/dist/ColorPicker/util.js.map +1 -1
  32. package/dist/DataPreviewTable/components/Body/Cell.js +2 -2
  33. package/dist/DataPreviewTable/components/Body/Cell.js.map +1 -1
  34. package/dist/DataPreviewTable/components/Body/index.js +1 -1
  35. package/dist/DataPreviewTable/components/Body/index.js.map +1 -1
  36. package/dist/DataPreviewTable/components/DragBar/index.js +1 -1
  37. package/dist/DataPreviewTable/components/DragBar/index.js.map +1 -1
  38. package/dist/DataPreviewTable/components/Header/index.js +3 -3
  39. package/dist/DataPreviewTable/components/Header/index.js.map +1 -1
  40. package/dist/DataPreviewTable/index.js +1 -1
  41. package/dist/DataPreviewTable/index.js.map +1 -1
  42. package/dist/Divider/index.js +1 -1
  43. package/dist/Divider/index.js.map +1 -1
  44. package/dist/Drawer/index.js +3 -3
  45. package/dist/Drawer/index.js.map +1 -1
  46. package/dist/Dropdown/index.d.ts +5 -0
  47. package/dist/Dropdown/index.js +3 -1
  48. package/dist/Dropdown/index.js.map +1 -1
  49. package/dist/Empty/image/Data.js +16 -16
  50. package/dist/Empty/image/Data.js.map +1 -1
  51. package/dist/Empty/image/User.js +16 -16
  52. package/dist/Empty/image/User.js.map +1 -1
  53. package/dist/Empty/image/WorkBook.js +17 -17
  54. package/dist/Empty/image/WorkBook.js.map +1 -1
  55. package/dist/Form/index.js +2 -2
  56. package/dist/Form/index.js.map +1 -1
  57. package/dist/Icon/components/SortAscendingOrderColor.js +1 -1
  58. package/dist/Icon/components/SortAscendingOrderColor.js.map +1 -1
  59. package/dist/Icon/components/SortDescendingOrderColor.js +1 -1
  60. package/dist/Icon/components/SortDescendingOrderColor.js.map +1 -1
  61. package/dist/Icon/components/User.js +2 -2
  62. package/dist/Icon/components/User.js.map +1 -1
  63. package/dist/Icon/components/UserGroup.js +2 -2
  64. package/dist/Icon/components/UserGroup.js.map +1 -1
  65. package/dist/Input/components/Input/index.js +3 -4
  66. package/dist/Input/components/Input/index.js.map +1 -1
  67. package/dist/Input/components/TextArea/index.js +3 -3
  68. package/dist/Input/components/TextArea/index.js.map +1 -1
  69. package/dist/InputNumber/index.js +4 -4
  70. package/dist/InputNumber/index.js.map +1 -1
  71. package/dist/LogicTree/components/LogicItem/index.js +2 -2
  72. package/dist/LogicTree/components/LogicItem/index.js.map +1 -1
  73. package/dist/MemberPicker/components/SelectedMemberTags.js +1 -1
  74. package/dist/MemberPicker/components/SelectedMemberTags.js.map +1 -1
  75. package/dist/Modal/index.js +8 -8
  76. package/dist/Modal/index.js.map +1 -1
  77. package/dist/Popconfirm/index.js +1 -1
  78. package/dist/Popconfirm/index.js.map +1 -1
  79. package/dist/Popover/index.js +2 -2
  80. package/dist/Popover/index.js.map +1 -1
  81. package/dist/Progress/index.js +1 -1
  82. package/dist/Progress/index.js.map +1 -1
  83. package/dist/RenameInput/index.js +4 -4
  84. package/dist/RenameInput/index.js.map +1 -1
  85. package/dist/Result/index.js +4 -4
  86. package/dist/Result/index.js.map +1 -1
  87. package/dist/Select/components/Suffix.js +3 -3
  88. package/dist/Select/components/Suffix.js.map +1 -1
  89. package/dist/Slider/index.js +4 -4
  90. package/dist/Slider/index.js.map +1 -1
  91. package/dist/Spin/CustomIcon/index.js +2 -2
  92. package/dist/Spin/CustomIcon/index.js.map +1 -1
  93. package/dist/StatusLight/index.js +15 -15
  94. package/dist/StatusLight/index.js.map +1 -1
  95. package/dist/Steps/index.js +6 -6
  96. package/dist/Steps/index.js.map +1 -1
  97. package/dist/Switch/index.js +3 -3
  98. package/dist/Switch/index.js.map +1 -1
  99. package/dist/Table/components/Header.js +3 -3
  100. package/dist/Table/components/Header.js.map +1 -1
  101. package/dist/Tabs/index.js +9 -9
  102. package/dist/Tabs/index.js.map +1 -1
  103. package/dist/Tag/index.js +11 -11
  104. package/dist/Tag/index.js.map +1 -1
  105. package/dist/TextLink/index.js +2 -2
  106. package/dist/TextLink/index.js.map +1 -1
  107. package/dist/Tooltip/index.js +3 -3
  108. package/dist/Tooltip/index.js.map +1 -1
  109. package/dist/Tour/index.js +1 -1
  110. package/dist/Tour/index.js.map +1 -1
  111. package/dist/Tree/Tree2.js +2 -2
  112. package/dist/Tree/Tree2.js.map +1 -1
  113. package/dist/Typography/index.js +1 -1
  114. package/dist/Typography/index.js.map +1 -1
  115. package/dist/User/index.js +1 -1
  116. package/dist/User/index.js.map +1 -1
  117. package/dist/Watermark/index.js +2 -1
  118. package/dist/Watermark/index.js.map +1 -1
  119. package/dist/aloudata-design.css +1 -1
  120. package/dist/index.d.ts +2 -2
  121. package/dist/index.js +11 -5
  122. package/dist/message/index.js +1 -1
  123. package/dist/message/index.js.map +1 -1
  124. package/dist/notification/index.js +5 -5
  125. package/dist/notification/index.js.map +1 -1
  126. package/dist/theme/contract/shadowGeneratorSpecification.d.ts +37 -0
  127. package/dist/theme/contract/tokenCssBridge.d.ts +60 -0
  128. package/dist/theme/contract/tokenCssBridge.js +2 -0
  129. package/dist/theme/contract/tokenOutputContract.d.ts +35 -0
  130. package/dist/theme/contract/tokenOutputContract.js +198 -0
  131. package/dist/theme/contract/tokenOutputContract.js.map +1 -0
  132. package/dist/theme/generator/acceptedColorValues.d.ts +97 -0
  133. package/dist/theme/generator/acceptedColorValues.js +2 -0
  134. package/dist/theme/generator/cssArtifactEmitter.d.ts +62 -0
  135. package/dist/theme/generator/cssArtifactEmitter.js +2 -0
  136. package/dist/theme/generator/generator.d.ts +41 -0
  137. package/dist/theme/generator/generator.js +2 -0
  138. package/dist/theme/generator/generatorDiff.d.ts +53 -0
  139. package/dist/theme/generator/generatorDiff.js +2 -0
  140. package/dist/theme/generator/generatorEmitter.d.ts +73 -0
  141. package/dist/theme/generator/generatorEmitter.js +2 -0
  142. package/dist/theme/generator/generatorMappingStrategy.d.ts +43 -0
  143. package/dist/theme/generator/generatorMappingStrategy.js +2 -0
  144. package/dist/theme/generator/generatorOutputSchema.d.ts +80 -0
  145. package/dist/theme/generator/generatorOutputSchema.js +2 -0
  146. package/dist/theme/generator/minimalAcceptedColorValues.d.ts +27 -0
  147. package/dist/theme/generator/minimalAcceptedColorValues.js +2 -0
  148. package/dist/theme/generator/valueResolver.d.ts +64 -0
  149. package/dist/theme/generator/valueResolver.js +2 -0
  150. package/dist/theme/governance/migrationMappingRegistry.d.ts +22 -0
  151. package/dist/theme/governance/migrationMappingRegistry.js +459 -0
  152. package/dist/theme/governance/migrationMappingRegistry.js.map +1 -0
  153. package/dist/theme/governance/reviewGate.d.ts +33 -0
  154. package/dist/theme/governance/reviewGate.js +116 -0
  155. package/dist/theme/governance/reviewGate.js.map +1 -0
  156. package/dist/theme/governance/validateMigrationMapping.d.ts +50 -0
  157. package/dist/theme/governance/validateMigrationMapping.js +157 -0
  158. package/dist/theme/governance/validateMigrationMapping.js.map +1 -0
  159. package/dist/theme/index.d.ts +16 -5
  160. package/dist/theme/index.js +10 -4
  161. package/dist/theme/runtime/colorValueMode/index.d.ts +5 -0
  162. package/dist/theme/runtime/colorValueMode/index.js +49 -0
  163. package/dist/theme/runtime/colorValueMode/index.js.map +1 -0
  164. package/dist/theme/runtime/colorValueMode/registry.d.ts +29 -0
  165. package/dist/theme/runtime/colorValueMode/registry.js +39 -0
  166. package/dist/theme/runtime/colorValueMode/registry.js.map +1 -0
  167. package/dist/theme/runtime/colorValueMode/v3.d.ts +98 -0
  168. package/dist/theme/runtime/colorValueMode/v3.js +230 -0
  169. package/dist/theme/runtime/colorValueMode/v3.js.map +1 -0
  170. package/dist/theme/runtime/colorValueMode.d.ts +2 -0
  171. package/dist/theme/{createTheme.js → runtime/createTheme.js} +1 -1
  172. package/dist/theme/runtime/createTheme.js.map +1 -0
  173. package/dist/theme/{defaultTheme.js → runtime/defaultTheme.js} +1 -1
  174. package/dist/theme/runtime/defaultTheme.js.map +1 -0
  175. package/dist/theme/{initAldTheme.js → runtime/initAldTheme.js} +1 -1
  176. package/dist/theme/runtime/initAldTheme.js.map +1 -0
  177. package/dist/theme/runtime/integrationController.d.ts +26 -0
  178. package/dist/theme/runtime/integrationController.js +2 -0
  179. package/dist/theme/runtime/runtimeAdapter.d.ts +31 -0
  180. package/dist/theme/runtime/runtimeAdapter.js +2 -0
  181. package/dist/theme/{themeToCssVars.js → runtime/themeToCssVars.js} +1 -1
  182. package/dist/theme/runtime/themeToCssVars.js.map +1 -0
  183. package/dist/theme/{tokenMap.js → runtime/tokenMap.js} +1 -1
  184. package/dist/theme/runtime/tokenMap.js.map +1 -0
  185. package/dist/theme/runtime/types.js +2 -0
  186. package/package.json +15 -1
  187. package/dist/theme/createTheme.js.map +0 -1
  188. package/dist/theme/defaultTheme.js.map +0 -1
  189. package/dist/theme/initAldTheme.js.map +0 -1
  190. package/dist/theme/themeToCssVars.js.map +0 -1
  191. package/dist/theme/tokenMap.js.map +0 -1
  192. /package/dist/theme/{types.js → contract/shadowGeneratorSpecification.js} +0 -0
  193. /package/dist/theme/{createTheme.d.ts → runtime/createTheme.d.ts} +0 -0
  194. /package/dist/theme/{defaultTheme.d.ts → runtime/defaultTheme.d.ts} +0 -0
  195. /package/dist/theme/{initAldTheme.d.ts → runtime/initAldTheme.d.ts} +0 -0
  196. /package/dist/theme/{themeToCssVars.d.ts → runtime/themeToCssVars.d.ts} +0 -0
  197. /package/dist/theme/{tokenMap.d.ts → runtime/tokenMap.d.ts} +0 -0
  198. /package/dist/theme/{types.d.ts → runtime/types.d.ts} +0 -0
@@ -0,0 +1,116 @@
1
+ import { formatMigrationValidationReport, validateMigrationMapping } from "./validateMigrationMapping.js";
2
+ //#region src/theme/governance/reviewGate.ts
3
+ function countIssues(validation, code) {
4
+ return validation.issues.filter((issue) => issue.code === code).length;
5
+ }
6
+ function createReviewGateDecision(validation) {
7
+ const unregisteredCount = countIssues(validation, "unregistered-legacy-variable");
8
+ const blockedCount = countIssues(validation, "blocked-migration-mapping");
9
+ const deprecatedCount = countIssues(validation, "deprecated-migration-mapping");
10
+ const governanceReviewCount = countIssues(validation, "governance-review-required");
11
+ const replaceableCount = validation.summary.replaceableUsageCount;
12
+ const reasons = [];
13
+ if (validation.summary.legacyVariableUsageCount === 0) reasons.push({
14
+ code: "no-legacy-variable",
15
+ count: 0,
16
+ severity: "info",
17
+ message: "No legacy migration variables were found."
18
+ });
19
+ if (replaceableCount > 0) reasons.push({
20
+ code: "replaceable-migration-mapping",
21
+ count: replaceableCount,
22
+ severity: "warning",
23
+ message: "Replaceable migration mappings are available, but migration review is required before replacement."
24
+ });
25
+ if (blockedCount > 0) reasons.push({
26
+ code: "blocked-migration-mapping",
27
+ count: blockedCount,
28
+ severity: "warning",
29
+ message: "Blocked migration mappings require review and must not be treated as directly replaceable."
30
+ });
31
+ if (deprecatedCount > 0) reasons.push({
32
+ code: "deprecated-migration-mapping",
33
+ count: deprecatedCount,
34
+ severity: "warning",
35
+ message: "Deprecated migration mappings require review and must not be approved silently."
36
+ });
37
+ if (governanceReviewCount > 0) reasons.push({
38
+ code: "governance-review-required",
39
+ count: governanceReviewCount,
40
+ severity: "warning",
41
+ message: "Governance-review-required mappings must not be treated as directly replaceable."
42
+ });
43
+ if (unregisteredCount > 0) reasons.push({
44
+ code: "unregistered-legacy-variable",
45
+ count: unregisteredCount,
46
+ severity: "error",
47
+ message: "Unregistered legacy variables must be added to the migration registry before review can pass."
48
+ });
49
+ const blockingCount = unregisteredCount + blockedCount + governanceReviewCount;
50
+ const reviewCount = replaceableCount + deprecatedCount;
51
+ const status = blockingCount > 0 ? "blocked" : reviewCount > 0 ? "needs-review" : "approved";
52
+ const issues = reasons.filter((reason) => reason.code !== "no-legacy-variable");
53
+ const passed = status === "approved";
54
+ return {
55
+ status,
56
+ passed,
57
+ issues,
58
+ summary: {
59
+ filesScanned: validation.summary.filesScanned,
60
+ legacyVariableUsageCount: validation.summary.legacyVariableUsageCount,
61
+ replaceableUsageCount: validation.summary.replaceableUsageCount,
62
+ deprecatedUsageCount: validation.summary.deprecatedUsageCount,
63
+ blockedUsageCount: validation.summary.blockedUsageCount,
64
+ governanceReviewUsageCount: validation.summary.governanceReviewUsageCount,
65
+ unregisteredUsageCount: validation.summary.unregisteredUsageCount,
66
+ issueCount: issues.length
67
+ },
68
+ canAutoReplace: replaceableCount > 0 && blockingCount === 0,
69
+ requiresGovernanceReview: !passed,
70
+ validation,
71
+ reasons
72
+ };
73
+ }
74
+ function runMigrationReviewGate(sources) {
75
+ return createReviewGateDecision(validateMigrationMapping(sources));
76
+ }
77
+ function formatReviewGateDecision(decision) {
78
+ const lines = [
79
+ "Migration Review Gate Decision",
80
+ "",
81
+ `Decision: ${decision.status}`,
82
+ `Passed: ${decision.passed ? "yes" : "no"}`,
83
+ `Can auto replace: ${decision.canAutoReplace ? "yes" : "no"}`,
84
+ `Requires governance review: ${decision.requiresGovernanceReview ? "yes" : "no"}`,
85
+ "",
86
+ "Summary:",
87
+ `- Files scanned: ${decision.summary.filesScanned}`,
88
+ `- Legacy variable usages: ${decision.summary.legacyVariableUsageCount}`,
89
+ `- Replaceable usages: ${decision.summary.replaceableUsageCount}`,
90
+ `- Deprecated usages: ${decision.summary.deprecatedUsageCount}`,
91
+ `- Blocked usages: ${decision.summary.blockedUsageCount}`,
92
+ `- Governance review usages: ${decision.summary.governanceReviewUsageCount}`,
93
+ `- Unregistered usages: ${decision.summary.unregisteredUsageCount}`,
94
+ `- Review gate issues: ${decision.summary.issueCount}`,
95
+ "",
96
+ "Reasons:"
97
+ ];
98
+ if (decision.reasons.length === 0) lines.push("- none");
99
+ else for (const reason of decision.reasons) lines.push(`- [${reason.severity}] ${reason.code}: ${reason.count} - ${reason.message}`);
100
+ lines.push("", "Issues:");
101
+ if (decision.issues.length === 0) lines.push("- none");
102
+ else for (const issue of decision.issues) lines.push(`- [${issue.severity}] ${issue.code}: ${issue.count} - ${issue.message}`);
103
+ if (decision.validation.issues.length > 0) {
104
+ lines.push("", "Validation issue details:");
105
+ for (const issue of decision.validation.issues) {
106
+ const target = issue.mapping?.target ? ` -> ${issue.mapping.target}` : "";
107
+ lines.push(`- ${issue.usage.path}:${issue.usage.line}:${issue.usage.column} ${issue.usage.source}${target} (${issue.code})`);
108
+ }
109
+ }
110
+ lines.push("", formatMigrationValidationReport(decision.validation));
111
+ return lines.join("\n");
112
+ }
113
+ //#endregion
114
+ export { createReviewGateDecision, formatReviewGateDecision, runMigrationReviewGate };
115
+
116
+ //# sourceMappingURL=reviewGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewGate.js","names":[],"sources":["../../../src/theme/governance/reviewGate.ts"],"sourcesContent":["import {\n formatMigrationValidationReport,\n validateMigrationMapping,\n type MigrationValidationIssue,\n type MigrationValidationReport,\n type MigrationValidationSource,\n} from './validateMigrationMapping';\n\nexport type ReviewGateDecisionStatus = 'approved' | 'needs-review' | 'blocked';\n\nexport type ReviewGateReasonCode =\n | 'no-legacy-variable'\n | 'replaceable-migration-mapping'\n | 'blocked-migration-mapping'\n | 'deprecated-migration-mapping'\n | 'governance-review-required'\n | 'unregistered-legacy-variable';\n\nexport interface ReviewGateDecisionReason {\n code: ReviewGateReasonCode;\n count: number;\n severity: 'info' | 'warning' | 'error';\n message: string;\n}\n\nexport type ReviewGateDecisionIssue = ReviewGateDecisionReason;\n\nexport interface ReviewGateDecisionSummary {\n filesScanned: number;\n legacyVariableUsageCount: number;\n replaceableUsageCount: number;\n deprecatedUsageCount: number;\n blockedUsageCount: number;\n governanceReviewUsageCount: number;\n unregisteredUsageCount: number;\n issueCount: number;\n}\n\nexport interface ReviewGateDecision {\n status: ReviewGateDecisionStatus;\n passed: boolean;\n issues: ReviewGateDecisionIssue[];\n summary: ReviewGateDecisionSummary;\n canAutoReplace: boolean;\n requiresGovernanceReview: boolean;\n validation: MigrationValidationReport;\n reasons: ReviewGateDecisionReason[];\n}\n\nfunction countIssues(\n validation: MigrationValidationReport,\n code: MigrationValidationIssue['code'],\n) {\n return validation.issues.filter((issue) => issue.code === code).length;\n}\n\nexport function createReviewGateDecision(\n validation: MigrationValidationReport,\n): ReviewGateDecision {\n const unregisteredCount = countIssues(\n validation,\n 'unregistered-legacy-variable',\n );\n const blockedCount = countIssues(validation, 'blocked-migration-mapping');\n const deprecatedCount = countIssues(\n validation,\n 'deprecated-migration-mapping',\n );\n const governanceReviewCount = countIssues(\n validation,\n 'governance-review-required',\n );\n const replaceableCount = validation.summary.replaceableUsageCount;\n const reasons: ReviewGateDecisionReason[] = [];\n\n if (validation.summary.legacyVariableUsageCount === 0) {\n reasons.push({\n code: 'no-legacy-variable',\n count: 0,\n severity: 'info',\n message: 'No legacy migration variables were found.',\n });\n }\n\n if (replaceableCount > 0) {\n reasons.push({\n code: 'replaceable-migration-mapping',\n count: replaceableCount,\n severity: 'warning',\n message:\n 'Replaceable migration mappings are available, but migration review is required before replacement.',\n });\n }\n\n if (blockedCount > 0) {\n reasons.push({\n code: 'blocked-migration-mapping',\n count: blockedCount,\n severity: 'warning',\n message:\n 'Blocked migration mappings require review and must not be treated as directly replaceable.',\n });\n }\n\n if (deprecatedCount > 0) {\n reasons.push({\n code: 'deprecated-migration-mapping',\n count: deprecatedCount,\n severity: 'warning',\n message:\n 'Deprecated migration mappings require review and must not be approved silently.',\n });\n }\n\n if (governanceReviewCount > 0) {\n reasons.push({\n code: 'governance-review-required',\n count: governanceReviewCount,\n severity: 'warning',\n message:\n 'Governance-review-required mappings must not be treated as directly replaceable.',\n });\n }\n\n if (unregisteredCount > 0) {\n reasons.push({\n code: 'unregistered-legacy-variable',\n count: unregisteredCount,\n severity: 'error',\n message:\n 'Unregistered legacy variables must be added to the migration registry before review can pass.',\n });\n }\n\n const blockingCount =\n unregisteredCount + blockedCount + governanceReviewCount;\n const reviewCount = replaceableCount + deprecatedCount;\n const status: ReviewGateDecisionStatus =\n blockingCount > 0\n ? 'blocked'\n : reviewCount > 0\n ? 'needs-review'\n : 'approved';\n const issues = reasons.filter(\n (reason) => reason.code !== 'no-legacy-variable',\n );\n const passed = status === 'approved';\n\n return {\n status,\n passed,\n issues,\n summary: {\n filesScanned: validation.summary.filesScanned,\n legacyVariableUsageCount: validation.summary.legacyVariableUsageCount,\n replaceableUsageCount: validation.summary.replaceableUsageCount,\n deprecatedUsageCount: validation.summary.deprecatedUsageCount,\n blockedUsageCount: validation.summary.blockedUsageCount,\n governanceReviewUsageCount: validation.summary.governanceReviewUsageCount,\n unregisteredUsageCount: validation.summary.unregisteredUsageCount,\n issueCount: issues.length,\n },\n canAutoReplace: replaceableCount > 0 && blockingCount === 0,\n requiresGovernanceReview: !passed,\n validation,\n reasons,\n };\n}\n\nexport function runMigrationReviewGate(\n sources: readonly MigrationValidationSource[],\n): ReviewGateDecision {\n return createReviewGateDecision(validateMigrationMapping(sources));\n}\n\nexport function formatReviewGateDecision(decision: ReviewGateDecision): string {\n const lines = [\n 'Migration Review Gate Decision',\n '',\n `Decision: ${decision.status}`,\n `Passed: ${decision.passed ? 'yes' : 'no'}`,\n `Can auto replace: ${decision.canAutoReplace ? 'yes' : 'no'}`,\n `Requires governance review: ${\n decision.requiresGovernanceReview ? 'yes' : 'no'\n }`,\n '',\n 'Summary:',\n `- Files scanned: ${decision.summary.filesScanned}`,\n `- Legacy variable usages: ${decision.summary.legacyVariableUsageCount}`,\n `- Replaceable usages: ${decision.summary.replaceableUsageCount}`,\n `- Deprecated usages: ${decision.summary.deprecatedUsageCount}`,\n `- Blocked usages: ${decision.summary.blockedUsageCount}`,\n `- Governance review usages: ${decision.summary.governanceReviewUsageCount}`,\n `- Unregistered usages: ${decision.summary.unregisteredUsageCount}`,\n `- Review gate issues: ${decision.summary.issueCount}`,\n '',\n 'Reasons:',\n ];\n\n if (decision.reasons.length === 0) {\n lines.push('- none');\n } else {\n for (const reason of decision.reasons) {\n lines.push(\n `- [${reason.severity}] ${reason.code}: ${reason.count} - ${reason.message}`,\n );\n }\n }\n\n lines.push('', 'Issues:');\n\n if (decision.issues.length === 0) {\n lines.push('- none');\n } else {\n for (const issue of decision.issues) {\n lines.push(\n `- [${issue.severity}] ${issue.code}: ${issue.count} - ${issue.message}`,\n );\n }\n }\n\n if (decision.validation.issues.length > 0) {\n lines.push('', 'Validation issue details:');\n\n for (const issue of decision.validation.issues) {\n const target = issue.mapping?.target ? ` -> ${issue.mapping.target}` : '';\n lines.push(\n `- ${issue.usage.path}:${issue.usage.line}:${issue.usage.column} ${issue.usage.source}${target} (${issue.code})`,\n );\n }\n }\n\n lines.push('', formatMigrationValidationReport(decision.validation));\n\n return lines.join('\\n');\n}\n"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { LegacyCssVariableName, MigrationMappingEntry, MigrationMappingType } from './migrationMappingRegistry.js';
2
+ export interface MigrationValidationSource {
3
+ path: string;
4
+ content: string;
5
+ }
6
+ export interface LegacyVariableUsage {
7
+ source: LegacyCssVariableName;
8
+ path: string;
9
+ line: number;
10
+ column: number;
11
+ index: number;
12
+ type: MigrationMappingType;
13
+ }
14
+ export type MigrationValidationIssueCode = 'unregistered-legacy-variable' | 'blocked-migration-mapping' | 'deprecated-migration-mapping' | 'governance-review-required';
15
+ export type MigrationValidationSeverity = 'error' | 'warning';
16
+ export interface MigrationValidationIssue {
17
+ code: MigrationValidationIssueCode;
18
+ severity: MigrationValidationSeverity;
19
+ usage: LegacyVariableUsage;
20
+ mapping?: MigrationMappingEntry;
21
+ message: string;
22
+ }
23
+ export interface ReplaceableMigrationUsage {
24
+ usage: LegacyVariableUsage;
25
+ mapping: MigrationMappingEntry & {
26
+ target: NonNullable<MigrationMappingEntry['target']>;
27
+ };
28
+ }
29
+ export interface MigrationValidationSummary {
30
+ filesScanned: number;
31
+ legacyVariableUsageCount: number;
32
+ uniqueLegacyVariableCount: number;
33
+ registeredUsageCount: number;
34
+ unregisteredUsageCount: number;
35
+ blockedUsageCount: number;
36
+ deprecatedUsageCount: number;
37
+ governanceReviewUsageCount: number;
38
+ replaceableUsageCount: number;
39
+ }
40
+ export interface MigrationValidationReport {
41
+ valid: boolean;
42
+ summary: MigrationValidationSummary;
43
+ usages: LegacyVariableUsage[];
44
+ usagesByType: Record<MigrationMappingType, LegacyVariableUsage[]>;
45
+ replaceableUsages: ReplaceableMigrationUsage[];
46
+ issues: MigrationValidationIssue[];
47
+ }
48
+ export declare function scanLegacyVariableUsages(sources: readonly MigrationValidationSource[]): LegacyVariableUsage[];
49
+ export declare function validateMigrationMapping(sources: readonly MigrationValidationSource[]): MigrationValidationReport;
50
+ export declare function formatMigrationValidationReport(report: MigrationValidationReport): string;
@@ -0,0 +1,157 @@
1
+ import { getMigrationMapping } from "./migrationMappingRegistry.js";
2
+ //#region src/theme/governance/validateMigrationMapping.ts
3
+ var legacyVariablePattern = /--(?:alias|interaction|non-semantic)-[a-zA-Z0-9_-]+/g;
4
+ function getLegacyType(source) {
5
+ if (source.startsWith("--alias-")) return "alias";
6
+ if (source.startsWith("--interaction-")) return "interaction";
7
+ return "non-semantic";
8
+ }
9
+ function getLineAndColumn(content, index) {
10
+ const lines = content.slice(0, index).split("\n");
11
+ return {
12
+ line: lines.length,
13
+ column: lines[lines.length - 1].length + 1
14
+ };
15
+ }
16
+ function createIssue(code, usage, mapping) {
17
+ if (code === "unregistered-legacy-variable") return {
18
+ code,
19
+ severity: "error",
20
+ usage,
21
+ message: `${usage.source} is used but not registered in migrationMappingRegistry.`
22
+ };
23
+ if (code === "blocked-migration-mapping") return {
24
+ code,
25
+ severity: "warning",
26
+ usage,
27
+ mapping,
28
+ message: `${usage.source} is blocked and must not be treated as directly replaceable.`
29
+ };
30
+ if (code === "deprecated-migration-mapping") return {
31
+ code,
32
+ severity: "warning",
33
+ usage,
34
+ mapping,
35
+ message: `${usage.source} is deprecated and requires migration review before replacement.`
36
+ };
37
+ return {
38
+ code,
39
+ severity: "warning",
40
+ usage,
41
+ mapping,
42
+ message: `${usage.source} requires governance review and must not be treated as directly replaceable.`
43
+ };
44
+ }
45
+ function scanLegacyVariableUsages(sources) {
46
+ const usages = [];
47
+ for (const source of sources) {
48
+ const pattern = new RegExp(legacyVariablePattern);
49
+ let match;
50
+ while (match = pattern.exec(source.content)) {
51
+ const variable = match[0];
52
+ const index = match.index ?? 0;
53
+ const position = getLineAndColumn(source.content, index);
54
+ usages.push({
55
+ source: variable,
56
+ path: source.path,
57
+ line: position.line,
58
+ column: position.column,
59
+ index,
60
+ type: getLegacyType(variable)
61
+ });
62
+ }
63
+ }
64
+ return usages;
65
+ }
66
+ function validateMigrationMapping(sources) {
67
+ const usages = scanLegacyVariableUsages(sources);
68
+ const issues = [];
69
+ const replaceableUsages = [];
70
+ const usagesByType = {
71
+ alias: [],
72
+ interaction: [],
73
+ "non-semantic": []
74
+ };
75
+ let registeredUsageCount = 0;
76
+ let unregisteredUsageCount = 0;
77
+ let blockedUsageCount = 0;
78
+ let deprecatedUsageCount = 0;
79
+ let governanceReviewUsageCount = 0;
80
+ for (const usage of usages) {
81
+ usagesByType[usage.type].push(usage);
82
+ const mapping = getMigrationMapping(usage.source);
83
+ if (!mapping) {
84
+ unregisteredUsageCount += 1;
85
+ issues.push(createIssue("unregistered-legacy-variable", usage));
86
+ continue;
87
+ }
88
+ registeredUsageCount += 1;
89
+ if (mapping.lifecycle === "blocked") {
90
+ blockedUsageCount += 1;
91
+ issues.push(createIssue("blocked-migration-mapping", usage, mapping));
92
+ continue;
93
+ }
94
+ if (mapping.strategy === "governance-review-required" || !mapping.target) {
95
+ governanceReviewUsageCount += 1;
96
+ issues.push(createIssue("governance-review-required", usage, mapping));
97
+ continue;
98
+ }
99
+ if (mapping.lifecycle === "deprecated") {
100
+ deprecatedUsageCount += 1;
101
+ issues.push(createIssue("deprecated-migration-mapping", usage, mapping));
102
+ continue;
103
+ }
104
+ replaceableUsages.push({
105
+ usage,
106
+ mapping
107
+ });
108
+ }
109
+ return {
110
+ valid: !issues.some((issue) => issue.severity === "error"),
111
+ summary: {
112
+ filesScanned: sources.length,
113
+ legacyVariableUsageCount: usages.length,
114
+ uniqueLegacyVariableCount: new Set(usages.map((usage) => usage.source)).size,
115
+ registeredUsageCount,
116
+ unregisteredUsageCount,
117
+ blockedUsageCount,
118
+ deprecatedUsageCount,
119
+ governanceReviewUsageCount,
120
+ replaceableUsageCount: replaceableUsages.length
121
+ },
122
+ usages,
123
+ usagesByType,
124
+ replaceableUsages,
125
+ issues
126
+ };
127
+ }
128
+ function formatMigrationValidationReport(report) {
129
+ const lines = [
130
+ "Migration Mapping Validation Report",
131
+ "",
132
+ `Status: ${report.valid ? "PASS" : "FAIL"}`,
133
+ `Files scanned: ${report.summary.filesScanned}`,
134
+ `Legacy variable usages: ${report.summary.legacyVariableUsageCount}`,
135
+ `Unique legacy variables: ${report.summary.uniqueLegacyVariableCount}`,
136
+ `Registered usages: ${report.summary.registeredUsageCount}`,
137
+ `Unregistered usages: ${report.summary.unregisteredUsageCount}`,
138
+ `Blocked usages: ${report.summary.blockedUsageCount}`,
139
+ `Deprecated usages: ${report.summary.deprecatedUsageCount}`,
140
+ `Governance review usages: ${report.summary.governanceReviewUsageCount}`,
141
+ `Replaceable usages: ${report.summary.replaceableUsageCount}`,
142
+ "",
143
+ "Grouped by type:",
144
+ `- alias: ${report.usagesByType.alias.length}`,
145
+ `- interaction: ${report.usagesByType.interaction.length}`,
146
+ `- non-semantic: ${report.usagesByType["non-semantic"].length}`
147
+ ];
148
+ if (report.issues.length > 0) {
149
+ lines.push("", "Issues:");
150
+ for (const issue of report.issues) lines.push(`- [${issue.severity}] ${issue.code}: ${issue.usage.source} at ${issue.usage.path}:${issue.usage.line}:${issue.usage.column}`);
151
+ }
152
+ return lines.join("\n");
153
+ }
154
+ //#endregion
155
+ export { formatMigrationValidationReport, scanLegacyVariableUsages, validateMigrationMapping };
156
+
157
+ //# sourceMappingURL=validateMigrationMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateMigrationMapping.js","names":[],"sources":["../../../src/theme/governance/validateMigrationMapping.ts"],"sourcesContent":["import {\n getMigrationMapping,\n type LegacyCssVariableName,\n type MigrationMappingEntry,\n type MigrationMappingType,\n} from './migrationMappingRegistry';\n\nexport interface MigrationValidationSource {\n path: string;\n content: string;\n}\n\nexport interface LegacyVariableUsage {\n source: LegacyCssVariableName;\n path: string;\n line: number;\n column: number;\n index: number;\n type: MigrationMappingType;\n}\n\nexport type MigrationValidationIssueCode =\n | 'unregistered-legacy-variable'\n | 'blocked-migration-mapping'\n | 'deprecated-migration-mapping'\n | 'governance-review-required';\n\nexport type MigrationValidationSeverity = 'error' | 'warning';\n\nexport interface MigrationValidationIssue {\n code: MigrationValidationIssueCode;\n severity: MigrationValidationSeverity;\n usage: LegacyVariableUsage;\n mapping?: MigrationMappingEntry;\n message: string;\n}\n\nexport interface ReplaceableMigrationUsage {\n usage: LegacyVariableUsage;\n mapping: MigrationMappingEntry & {\n target: NonNullable<MigrationMappingEntry['target']>;\n };\n}\n\nexport interface MigrationValidationSummary {\n filesScanned: number;\n legacyVariableUsageCount: number;\n uniqueLegacyVariableCount: number;\n registeredUsageCount: number;\n unregisteredUsageCount: number;\n blockedUsageCount: number;\n deprecatedUsageCount: number;\n governanceReviewUsageCount: number;\n replaceableUsageCount: number;\n}\n\nexport interface MigrationValidationReport {\n valid: boolean;\n summary: MigrationValidationSummary;\n usages: LegacyVariableUsage[];\n usagesByType: Record<MigrationMappingType, LegacyVariableUsage[]>;\n replaceableUsages: ReplaceableMigrationUsage[];\n issues: MigrationValidationIssue[];\n}\n\nconst legacyVariablePattern =\n /--(?:alias|interaction|non-semantic)-[a-zA-Z0-9_-]+/g;\n\nfunction getLegacyType(source: LegacyCssVariableName): MigrationMappingType {\n if (source.startsWith('--alias-')) return 'alias';\n if (source.startsWith('--interaction-')) return 'interaction';\n return 'non-semantic';\n}\n\nfunction getLineAndColumn(content: string, index: number) {\n const before = content.slice(0, index);\n const lines = before.split('\\n');\n\n return {\n line: lines.length,\n column: lines[lines.length - 1].length + 1,\n };\n}\n\nfunction createIssue(\n code: MigrationValidationIssueCode,\n usage: LegacyVariableUsage,\n mapping?: MigrationMappingEntry,\n): MigrationValidationIssue {\n if (code === 'unregistered-legacy-variable') {\n return {\n code,\n severity: 'error',\n usage,\n message: `${usage.source} is used but not registered in migrationMappingRegistry.`,\n };\n }\n\n if (code === 'blocked-migration-mapping') {\n return {\n code,\n severity: 'warning',\n usage,\n mapping,\n message: `${usage.source} is blocked and must not be treated as directly replaceable.`,\n };\n }\n\n if (code === 'deprecated-migration-mapping') {\n return {\n code,\n severity: 'warning',\n usage,\n mapping,\n message: `${usage.source} is deprecated and requires migration review before replacement.`,\n };\n }\n\n return {\n code,\n severity: 'warning',\n usage,\n mapping,\n message: `${usage.source} requires governance review and must not be treated as directly replaceable.`,\n };\n}\n\nexport function scanLegacyVariableUsages(\n sources: readonly MigrationValidationSource[],\n): LegacyVariableUsage[] {\n const usages: LegacyVariableUsage[] = [];\n\n for (const source of sources) {\n const pattern = new RegExp(legacyVariablePattern);\n let match: RegExpExecArray | null;\n\n while ((match = pattern.exec(source.content))) {\n const variable = match[0] as LegacyCssVariableName;\n const index = match.index ?? 0;\n const position = getLineAndColumn(source.content, index);\n\n usages.push({\n source: variable,\n path: source.path,\n line: position.line,\n column: position.column,\n index,\n type: getLegacyType(variable),\n });\n }\n }\n\n return usages;\n}\n\nexport function validateMigrationMapping(\n sources: readonly MigrationValidationSource[],\n): MigrationValidationReport {\n const usages = scanLegacyVariableUsages(sources);\n const issues: MigrationValidationIssue[] = [];\n const replaceableUsages: ReplaceableMigrationUsage[] = [];\n const usagesByType: Record<MigrationMappingType, LegacyVariableUsage[]> = {\n alias: [],\n interaction: [],\n 'non-semantic': [],\n };\n\n let registeredUsageCount = 0;\n let unregisteredUsageCount = 0;\n let blockedUsageCount = 0;\n let deprecatedUsageCount = 0;\n let governanceReviewUsageCount = 0;\n\n for (const usage of usages) {\n usagesByType[usage.type].push(usage);\n\n const mapping = getMigrationMapping(usage.source);\n\n if (!mapping) {\n unregisteredUsageCount += 1;\n issues.push(createIssue('unregistered-legacy-variable', usage));\n continue;\n }\n\n registeredUsageCount += 1;\n\n if (mapping.lifecycle === 'blocked') {\n blockedUsageCount += 1;\n issues.push(createIssue('blocked-migration-mapping', usage, mapping));\n continue;\n }\n\n if (mapping.strategy === 'governance-review-required' || !mapping.target) {\n governanceReviewUsageCount += 1;\n issues.push(createIssue('governance-review-required', usage, mapping));\n continue;\n }\n\n if (mapping.lifecycle === 'deprecated') {\n deprecatedUsageCount += 1;\n issues.push(createIssue('deprecated-migration-mapping', usage, mapping));\n continue;\n }\n\n replaceableUsages.push({\n usage,\n mapping: mapping as ReplaceableMigrationUsage['mapping'],\n });\n }\n\n const hasError = issues.some((issue) => issue.severity === 'error');\n\n return {\n valid: !hasError,\n summary: {\n filesScanned: sources.length,\n legacyVariableUsageCount: usages.length,\n uniqueLegacyVariableCount: new Set(usages.map((usage) => usage.source))\n .size,\n registeredUsageCount,\n unregisteredUsageCount,\n blockedUsageCount,\n deprecatedUsageCount,\n governanceReviewUsageCount,\n replaceableUsageCount: replaceableUsages.length,\n },\n usages,\n usagesByType,\n replaceableUsages,\n issues,\n };\n}\n\nexport function formatMigrationValidationReport(\n report: MigrationValidationReport,\n): string {\n const lines = [\n 'Migration Mapping Validation Report',\n '',\n `Status: ${report.valid ? 'PASS' : 'FAIL'}`,\n `Files scanned: ${report.summary.filesScanned}`,\n `Legacy variable usages: ${report.summary.legacyVariableUsageCount}`,\n `Unique legacy variables: ${report.summary.uniqueLegacyVariableCount}`,\n `Registered usages: ${report.summary.registeredUsageCount}`,\n `Unregistered usages: ${report.summary.unregisteredUsageCount}`,\n `Blocked usages: ${report.summary.blockedUsageCount}`,\n `Deprecated usages: ${report.summary.deprecatedUsageCount}`,\n `Governance review usages: ${report.summary.governanceReviewUsageCount}`,\n `Replaceable usages: ${report.summary.replaceableUsageCount}`,\n '',\n 'Grouped by type:',\n `- alias: ${report.usagesByType.alias.length}`,\n `- interaction: ${report.usagesByType.interaction.length}`,\n `- non-semantic: ${report.usagesByType['non-semantic'].length}`,\n ];\n\n if (report.issues.length > 0) {\n lines.push('', 'Issues:');\n\n for (const issue of report.issues) {\n lines.push(\n `- [${issue.severity}] ${issue.code}: ${issue.usage.source} at ${issue.usage.path}:${issue.usage.line}:${issue.usage.column}`,\n );\n }\n }\n\n return lines.join('\\n');\n}\n"],"mappings":";;AAiEA,IAAM,wBACJ;AAEF,SAAS,cAAc,QAAqD;AAC1E,KAAI,OAAO,WAAW,WAAW,CAAE,QAAO;AAC1C,KAAI,OAAO,WAAW,iBAAiB,CAAE,QAAO;AAChD,QAAO;;AAGT,SAAS,iBAAiB,SAAiB,OAAe;CAExD,MAAM,QADS,QAAQ,MAAM,GAAG,MAAM,CACjB,MAAM,KAAK;AAEhC,QAAO;EACL,MAAM,MAAM;EACZ,QAAQ,MAAM,MAAM,SAAS,GAAG,SAAS;EAC1C;;AAGH,SAAS,YACP,MACA,OACA,SAC0B;AAC1B,KAAI,SAAS,+BACX,QAAO;EACL;EACA,UAAU;EACV;EACA,SAAS,GAAG,MAAM,OAAO;EAC1B;AAGH,KAAI,SAAS,4BACX,QAAO;EACL;EACA,UAAU;EACV;EACA;EACA,SAAS,GAAG,MAAM,OAAO;EAC1B;AAGH,KAAI,SAAS,+BACX,QAAO;EACL;EACA,UAAU;EACV;EACA;EACA,SAAS,GAAG,MAAM,OAAO;EAC1B;AAGH,QAAO;EACL;EACA,UAAU;EACV;EACA;EACA,SAAS,GAAG,MAAM,OAAO;EAC1B;;AAGH,SAAgB,yBACd,SACuB;CACvB,MAAM,SAAgC,EAAE;AAExC,MAAK,MAAM,UAAU,SAAS;EAC5B,MAAM,UAAU,IAAI,OAAO,sBAAsB;EACjD,IAAI;AAEJ,SAAQ,QAAQ,QAAQ,KAAK,OAAO,QAAQ,EAAG;GAC7C,MAAM,WAAW,MAAM;GACvB,MAAM,QAAQ,MAAM,SAAS;GAC7B,MAAM,WAAW,iBAAiB,OAAO,SAAS,MAAM;AAExD,UAAO,KAAK;IACV,QAAQ;IACR,MAAM,OAAO;IACb,MAAM,SAAS;IACf,QAAQ,SAAS;IACjB;IACA,MAAM,cAAc,SAAS;IAC9B,CAAC;;;AAIN,QAAO;;AAGT,SAAgB,yBACd,SAC2B;CAC3B,MAAM,SAAS,yBAAyB,QAAQ;CAChD,MAAM,SAAqC,EAAE;CAC7C,MAAM,oBAAiD,EAAE;CACzD,MAAM,eAAoE;EACxE,OAAO,EAAE;EACT,aAAa,EAAE;EACf,gBAAgB,EAAE;EACnB;CAED,IAAI,uBAAuB;CAC3B,IAAI,yBAAyB;CAC7B,IAAI,oBAAoB;CACxB,IAAI,uBAAuB;CAC3B,IAAI,6BAA6B;AAEjC,MAAK,MAAM,SAAS,QAAQ;AAC1B,eAAa,MAAM,MAAM,KAAK,MAAM;EAEpC,MAAM,UAAU,oBAAoB,MAAM,OAAO;AAEjD,MAAI,CAAC,SAAS;AACZ,6BAA0B;AAC1B,UAAO,KAAK,YAAY,gCAAgC,MAAM,CAAC;AAC/D;;AAGF,0BAAwB;AAExB,MAAI,QAAQ,cAAc,WAAW;AACnC,wBAAqB;AACrB,UAAO,KAAK,YAAY,6BAA6B,OAAO,QAAQ,CAAC;AACrE;;AAGF,MAAI,QAAQ,aAAa,gCAAgC,CAAC,QAAQ,QAAQ;AACxE,iCAA8B;AAC9B,UAAO,KAAK,YAAY,8BAA8B,OAAO,QAAQ,CAAC;AACtE;;AAGF,MAAI,QAAQ,cAAc,cAAc;AACtC,2BAAwB;AACxB,UAAO,KAAK,YAAY,gCAAgC,OAAO,QAAQ,CAAC;AACxE;;AAGF,oBAAkB,KAAK;GACrB;GACS;GACV,CAAC;;AAKJ,QAAO;EACL,OAAO,CAHQ,OAAO,MAAM,UAAU,MAAM,aAAa,QAAQ;EAIjE,SAAS;GACP,cAAc,QAAQ;GACtB,0BAA0B,OAAO;GACjC,2BAA2B,IAAI,IAAI,OAAO,KAAK,UAAU,MAAM,OAAO,CAAC,CACpE;GACH;GACA;GACA;GACA;GACA;GACA,uBAAuB,kBAAkB;GAC1C;EACD;EACA;EACA;EACA;EACD;;AAGH,SAAgB,gCACd,QACQ;CACR,MAAM,QAAQ;EACZ;EACA;EACA,WAAW,OAAO,QAAQ,SAAS;EACnC,kBAAkB,OAAO,QAAQ;EACjC,2BAA2B,OAAO,QAAQ;EAC1C,4BAA4B,OAAO,QAAQ;EAC3C,sBAAsB,OAAO,QAAQ;EACrC,wBAAwB,OAAO,QAAQ;EACvC,mBAAmB,OAAO,QAAQ;EAClC,sBAAsB,OAAO,QAAQ;EACrC,6BAA6B,OAAO,QAAQ;EAC5C,uBAAuB,OAAO,QAAQ;EACtC;EACA;EACA,YAAY,OAAO,aAAa,MAAM;EACtC,kBAAkB,OAAO,aAAa,YAAY;EAClD,mBAAmB,OAAO,aAAa,gBAAgB;EACxD;AAED,KAAI,OAAO,OAAO,SAAS,GAAG;AAC5B,QAAM,KAAK,IAAI,UAAU;AAEzB,OAAK,MAAM,SAAS,OAAO,OACzB,OAAM,KACJ,MAAM,MAAM,SAAS,IAAI,MAAM,KAAK,IAAI,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,SACtH;;AAIL,QAAO,MAAM,KAAK,KAAK"}
@@ -1,5 +1,16 @@
1
- export { createTheme } from './createTheme.js';
2
- export { defaultTheme } from './defaultTheme.js';
3
- export { initAldTheme } from './initAldTheme.js';
4
- export { themeToCssVars } from './themeToCssVars.js';
5
- export type { AldThemeConfig, AldThemeCssVars, AldThemeToken, ResolvedAldTheme, } from './types.js';
1
+ export { createTheme } from './runtime/createTheme.js';
2
+ export { defaultTheme } from './runtime/defaultTheme.js';
3
+ export { initAldTheme } from './runtime/initAldTheme.js';
4
+ export { aldColorValueModeDataAttribute, aldColorValueModeStyleElementId, applyAldColorValueMode, buildAldColorValueModeCss, } from './runtime/colorValueMode.js';
5
+ export { aldColorValueModes, createAldV3ColorValueModeVars, getAldColorValueModeDefinition, getAldColorValueModeDefinitions, } from './runtime/colorValueMode/registry.js';
6
+ export type { AldColorValueMode, AldColorValueModeDefinition, AldColorValueModeLifecycle, } from './runtime/colorValueMode/registry.js';
7
+ export { assertOneWayMigrationMapping, getMigrationMapping, getPublishedMigrationMappings, migrationMappingRegistry, migrationMappingTableByType, } from './governance/migrationMappingRegistry.js';
8
+ export type { LegacyCssVariableName, MigrationMappingEntry, MigrationMappingLifecycle, MigrationMappingStrategy, MigrationMappingType, TokenOutputVariableName, } from './governance/migrationMappingRegistry.js';
9
+ export { createReviewGateDecision, formatReviewGateDecision, runMigrationReviewGate, } from './governance/reviewGate.js';
10
+ export type { ReviewGateDecision, ReviewGateDecisionIssue, ReviewGateDecisionReason, ReviewGateDecisionSummary, ReviewGateDecisionStatus, ReviewGateReasonCode, } from './governance/reviewGate.js';
11
+ export { getCanonicalTokenOutputContractEntries, getCompatibilityTokenOutputContractEntries, getTokenOutputContractEntries, getTokenOutputContractEntriesByGroup, getTokenOutputContractEntry, isTokenOutputContractName, tokenOutputContractEntries, validateTokenOutputContract, } from './contract/tokenOutputContract.js';
12
+ export type { TokenOutputContractCompatibility, TokenOutputContractDeliveryKind, TokenOutputContractEntry, TokenOutputContractGroup, TokenOutputContractLifecycle, TokenOutputContractValidationIssue, TokenOutputContractValidationIssueCode, TokenOutputContractValidationReport, } from './contract/tokenOutputContract.js';
13
+ export { themeToCssVars } from './runtime/themeToCssVars.js';
14
+ export type { AldThemeConfig, AldThemeCssVars, AldThemeToken, ResolvedAldTheme, } from './runtime/types.js';
15
+ export { formatMigrationValidationReport, scanLegacyVariableUsages, validateMigrationMapping, } from './governance/validateMigrationMapping.js';
16
+ export type { LegacyVariableUsage, MigrationValidationIssue, MigrationValidationIssueCode, MigrationValidationReport, MigrationValidationSeverity, MigrationValidationSource, MigrationValidationSummary, ReplaceableMigrationUsage, } from './governance/validateMigrationMapping.js';
@@ -1,4 +1,10 @@
1
- import "./defaultTheme.js";
2
- import "./createTheme.js";
3
- import "./themeToCssVars.js";
4
- import "./initAldTheme.js";
1
+ import "./runtime/defaultTheme.js";
2
+ import "./runtime/createTheme.js";
3
+ import "./runtime/themeToCssVars.js";
4
+ import "./runtime/initAldTheme.js";
5
+ import "./runtime/colorValueMode/registry.js";
6
+ import "./runtime/colorValueMode/index.js";
7
+ import "./governance/migrationMappingRegistry.js";
8
+ import "./governance/validateMigrationMapping.js";
9
+ import "./governance/reviewGate.js";
10
+ import "./contract/tokenOutputContract.js";
@@ -0,0 +1,5 @@
1
+ import { AldColorValueMode } from './registry.js';
2
+ export declare const aldColorValueModeStyleElementId = "ald-color-value-mode-runtime";
3
+ export declare const aldColorValueModeDataAttribute = "data-ald-color-value-mode";
4
+ export declare function buildAldColorValueModeCss(mode: unknown): string;
5
+ export declare function applyAldColorValueMode(mode: unknown): AldColorValueMode;
@@ -0,0 +1,49 @@
1
+ import { themeStyleElementId } from "../tokenMap.js";
2
+ import { getAldColorValueModeDefinition, isAldColorValueMode } from "./registry.js";
3
+ //#region src/theme/runtime/colorValueMode/index.ts
4
+ var aldColorValueModeStyleElementId = "ald-color-value-mode-runtime";
5
+ var aldColorValueModeDataAttribute = "data-ald-color-value-mode";
6
+ function buildAldColorValueModeCss(mode) {
7
+ const definition = getAldColorValueModeDefinition(mode);
8
+ const entries = Object.entries(definition.vars);
9
+ if (entries.length === 0) return "";
10
+ const declarations = entries.sort(([a], [b]) => a.localeCompare(b)).map(([name, value]) => ` ${name}: ${value};`).join("\n");
11
+ return `:root[${aldColorValueModeDataAttribute}="${definition.mode}"] {\n${declarations}\n}\n`;
12
+ }
13
+ function removeAldColorValueModeLayer() {
14
+ document.getElementById(aldColorValueModeStyleElementId)?.remove();
15
+ }
16
+ function appendBeforeTenantTheme(style) {
17
+ const tenantThemeStyle = document.getElementById(themeStyleElementId);
18
+ if (tenantThemeStyle) {
19
+ document.head.insertBefore(style, tenantThemeStyle);
20
+ return;
21
+ }
22
+ document.head.appendChild(style);
23
+ }
24
+ function injectAldColorValueModeLayer(mode) {
25
+ const cssText = buildAldColorValueModeCss(mode);
26
+ let style = document.getElementById(aldColorValueModeStyleElementId);
27
+ if (!cssText) {
28
+ removeAldColorValueModeLayer();
29
+ return;
30
+ }
31
+ if (!style) {
32
+ style = document.createElement("style");
33
+ style.id = aldColorValueModeStyleElementId;
34
+ appendBeforeTenantTheme(style);
35
+ }
36
+ style.setAttribute(aldColorValueModeDataAttribute, mode);
37
+ if (style.textContent !== cssText) style.textContent = cssText;
38
+ }
39
+ function applyAldColorValueMode(mode) {
40
+ if (typeof document === "undefined") return "legacy";
41
+ const normalizedMode = isAldColorValueMode(mode) ? mode : "legacy";
42
+ document.documentElement.setAttribute(aldColorValueModeDataAttribute, normalizedMode);
43
+ injectAldColorValueModeLayer(normalizedMode);
44
+ return normalizedMode;
45
+ }
46
+ //#endregion
47
+ export { aldColorValueModeDataAttribute, aldColorValueModeStyleElementId, applyAldColorValueMode, buildAldColorValueModeCss };
48
+
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/theme/runtime/colorValueMode/index.ts"],"sourcesContent":["import {\n getAldColorValueModeDefinition,\n isAldColorValueMode,\n type AldColorValueMode,\n} from './registry';\nimport { themeStyleElementId } from '../tokenMap';\n\nexport const aldColorValueModeStyleElementId = 'ald-color-value-mode-runtime';\nexport const aldColorValueModeDataAttribute = 'data-ald-color-value-mode';\n\nexport function buildAldColorValueModeCss(mode: unknown) {\n const definition = getAldColorValueModeDefinition(mode);\n const entries = Object.entries(definition.vars);\n\n if (entries.length === 0) return '';\n\n const declarations = entries\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([name, value]) => ` ${name}: ${value};`)\n .join('\\n');\n\n return `:root[${aldColorValueModeDataAttribute}=\"${definition.mode}\"] {\\n${declarations}\\n}\\n`;\n}\n\nfunction removeAldColorValueModeLayer() {\n document.getElementById(aldColorValueModeStyleElementId)?.remove();\n}\n\nfunction appendBeforeTenantTheme(style: HTMLStyleElement) {\n const tenantThemeStyle = document.getElementById(themeStyleElementId);\n\n if (tenantThemeStyle) {\n document.head.insertBefore(style, tenantThemeStyle);\n return;\n }\n\n document.head.appendChild(style);\n}\n\nfunction injectAldColorValueModeLayer(mode: AldColorValueMode) {\n const cssText = buildAldColorValueModeCss(mode);\n let style = document.getElementById(\n aldColorValueModeStyleElementId,\n ) as HTMLStyleElement | null;\n\n if (!cssText) {\n removeAldColorValueModeLayer();\n return;\n }\n\n if (!style) {\n style = document.createElement('style');\n style.id = aldColorValueModeStyleElementId;\n appendBeforeTenantTheme(style);\n }\n\n style.setAttribute(aldColorValueModeDataAttribute, mode);\n\n if (style.textContent !== cssText) {\n style.textContent = cssText;\n }\n}\n\nexport function applyAldColorValueMode(mode: unknown): AldColorValueMode {\n if (typeof document === 'undefined') return 'legacy';\n\n const normalizedMode = isAldColorValueMode(mode) ? mode : 'legacy';\n\n document.documentElement.setAttribute(\n aldColorValueModeDataAttribute,\n normalizedMode,\n );\n injectAldColorValueModeLayer(normalizedMode);\n\n return normalizedMode;\n}\n"],"mappings":";;;AAOA,IAAa,kCAAkC;AAC/C,IAAa,iCAAiC;AAE9C,SAAgB,0BAA0B,MAAe;CACvD,MAAM,aAAa,+BAA+B,KAAK;CACvD,MAAM,UAAU,OAAO,QAAQ,WAAW,KAAK;AAE/C,KAAI,QAAQ,WAAW,EAAG,QAAO;CAEjC,MAAM,eAAe,QAClB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CACtC,KAAK,CAAC,MAAM,WAAW,KAAK,KAAK,IAAI,MAAM,GAAG,CAC9C,KAAK,KAAK;AAEb,QAAO,SAAS,+BAA+B,IAAI,WAAW,KAAK,QAAQ,aAAa;;AAG1F,SAAS,+BAA+B;AACtC,UAAS,eAAe,gCAAgC,EAAE,QAAQ;;AAGpE,SAAS,wBAAwB,OAAyB;CACxD,MAAM,mBAAmB,SAAS,eAAe,oBAAoB;AAErE,KAAI,kBAAkB;AACpB,WAAS,KAAK,aAAa,OAAO,iBAAiB;AACnD;;AAGF,UAAS,KAAK,YAAY,MAAM;;AAGlC,SAAS,6BAA6B,MAAyB;CAC7D,MAAM,UAAU,0BAA0B,KAAK;CAC/C,IAAI,QAAQ,SAAS,eACnB,gCACD;AAED,KAAI,CAAC,SAAS;AACZ,gCAA8B;AAC9B;;AAGF,KAAI,CAAC,OAAO;AACV,UAAQ,SAAS,cAAc,QAAQ;AACvC,QAAM,KAAK;AACX,0BAAwB,MAAM;;AAGhC,OAAM,aAAa,gCAAgC,KAAK;AAExD,KAAI,MAAM,gBAAgB,QACxB,OAAM,cAAc;;AAIxB,SAAgB,uBAAuB,MAAkC;AACvE,KAAI,OAAO,aAAa,YAAa,QAAO;CAE5C,MAAM,iBAAiB,oBAAoB,KAAK,GAAG,OAAO;AAE1D,UAAS,gBAAgB,aACvB,gCACA,eACD;AACD,8BAA6B,eAAe;AAE5C,QAAO"}
@@ -0,0 +1,29 @@
1
+ import { AldThemeCssVars } from '../types';
2
+ export type AldColorValueModeLifecycle = 'stable' | 'experimental' | 'deprecated';
3
+ export interface AldColorValueModeDefinition<Mode extends string = string> {
4
+ mode: Mode;
5
+ title: string;
6
+ lifecycle: AldColorValueModeLifecycle;
7
+ vars: AldThemeCssVars;
8
+ }
9
+ declare const colorValueModeRegistry: {
10
+ readonly legacy: {
11
+ readonly mode: "legacy";
12
+ readonly title: "Legacy compatibility values";
13
+ readonly lifecycle: "stable";
14
+ readonly vars: {};
15
+ };
16
+ readonly v3: {
17
+ readonly mode: "v3";
18
+ readonly title: "ALD V3 values";
19
+ readonly lifecycle: "stable";
20
+ readonly vars: AldThemeCssVars;
21
+ };
22
+ };
23
+ export type AldColorValueMode = keyof typeof colorValueModeRegistry;
24
+ export declare const aldColorValueModes: readonly ("legacy" | "v3")[];
25
+ export declare function isAldColorValueMode(value: unknown): value is AldColorValueMode;
26
+ export declare function getAldColorValueModeDefinition(mode: unknown): AldColorValueModeDefinition<AldColorValueMode>;
27
+ export declare function getAldColorValueModeDefinitions(): Array<AldColorValueModeDefinition<AldColorValueMode>>;
28
+ export declare function createAldV3ColorValueModeVars(): AldThemeCssVars;
29
+ export {};
@@ -0,0 +1,39 @@
1
+ import { aldV3ColorValueModeVars } from "./v3.js";
2
+ //#region src/theme/runtime/colorValueMode/registry.ts
3
+ var colorValueModeRegistry = {
4
+ legacy: {
5
+ mode: "legacy",
6
+ title: "Legacy compatibility values",
7
+ lifecycle: "stable",
8
+ vars: {}
9
+ },
10
+ v3: {
11
+ mode: "v3",
12
+ title: "ALD V3 values",
13
+ lifecycle: "stable",
14
+ vars: aldV3ColorValueModeVars
15
+ }
16
+ };
17
+ var aldColorValueModes = Object.freeze(Object.keys(colorValueModeRegistry));
18
+ function isAldColorValueMode(value) {
19
+ return typeof value === "string" && Object.prototype.hasOwnProperty.call(colorValueModeRegistry, value);
20
+ }
21
+ function copyDefinition(definition) {
22
+ return {
23
+ ...definition,
24
+ vars: { ...definition.vars }
25
+ };
26
+ }
27
+ function getAldColorValueModeDefinition(mode) {
28
+ return copyDefinition(colorValueModeRegistry[isAldColorValueMode(mode) ? mode : "legacy"]);
29
+ }
30
+ function getAldColorValueModeDefinitions() {
31
+ return aldColorValueModes.map((mode) => getAldColorValueModeDefinition(mode));
32
+ }
33
+ function createAldV3ColorValueModeVars() {
34
+ return { ...aldV3ColorValueModeVars };
35
+ }
36
+ //#endregion
37
+ export { aldColorValueModes, createAldV3ColorValueModeVars, getAldColorValueModeDefinition, getAldColorValueModeDefinitions, isAldColorValueMode };
38
+
39
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","names":[],"sources":["../../../../src/theme/runtime/colorValueMode/registry.ts"],"sourcesContent":["import { aldV3ColorValueModeVars } from './v3';\nimport type { AldThemeCssVars } from '../types';\n\nexport type AldColorValueModeLifecycle =\n | 'stable'\n | 'experimental'\n | 'deprecated';\n\nexport interface AldColorValueModeDefinition<Mode extends string = string> {\n mode: Mode;\n title: string;\n lifecycle: AldColorValueModeLifecycle;\n vars: AldThemeCssVars;\n}\n\nconst colorValueModeRegistry = {\n legacy: {\n mode: 'legacy',\n title: 'Legacy compatibility values',\n lifecycle: 'stable',\n vars: {},\n },\n v3: {\n mode: 'v3',\n title: 'ALD V3 values',\n lifecycle: 'stable',\n vars: aldV3ColorValueModeVars,\n },\n} as const satisfies Record<string, AldColorValueModeDefinition>;\n\nexport type AldColorValueMode = keyof typeof colorValueModeRegistry;\n\nexport const aldColorValueModes = Object.freeze(\n Object.keys(colorValueModeRegistry) as AldColorValueMode[],\n);\n\nexport function isAldColorValueMode(\n value: unknown,\n): value is AldColorValueMode {\n return (\n typeof value === 'string' &&\n Object.prototype.hasOwnProperty.call(colorValueModeRegistry, value)\n );\n}\n\nfunction copyDefinition(\n definition: AldColorValueModeDefinition<AldColorValueMode>,\n): AldColorValueModeDefinition<AldColorValueMode> {\n return {\n ...definition,\n vars: { ...definition.vars },\n };\n}\n\nexport function getAldColorValueModeDefinition(\n mode: unknown,\n): AldColorValueModeDefinition<AldColorValueMode> {\n const normalizedMode = isAldColorValueMode(mode) ? mode : 'legacy';\n\n return copyDefinition(\n colorValueModeRegistry[\n normalizedMode\n ] as AldColorValueModeDefinition<AldColorValueMode>,\n );\n}\n\nexport function getAldColorValueModeDefinitions(): Array<\n AldColorValueModeDefinition<AldColorValueMode>\n> {\n return aldColorValueModes.map((mode) => getAldColorValueModeDefinition(mode));\n}\n\nexport function createAldV3ColorValueModeVars(): AldThemeCssVars {\n return { ...aldV3ColorValueModeVars };\n}\n"],"mappings":";;AAeA,IAAM,yBAAyB;CAC7B,QAAQ;EACN,MAAM;EACN,OAAO;EACP,WAAW;EACX,MAAM,EAAE;EACT;CACD,IAAI;EACF,MAAM;EACN,OAAO;EACP,WAAW;EACX,MAAM;EACP;CACF;AAID,IAAa,qBAAqB,OAAO,OACvC,OAAO,KAAK,uBAAuB,CACpC;AAED,SAAgB,oBACd,OAC4B;AAC5B,QACE,OAAO,UAAU,YACjB,OAAO,UAAU,eAAe,KAAK,wBAAwB,MAAM;;AAIvE,SAAS,eACP,YACgD;AAChD,QAAO;EACL,GAAG;EACH,MAAM,EAAE,GAAG,WAAW,MAAM;EAC7B;;AAGH,SAAgB,+BACd,MACgD;AAGhD,QAAO,eACL,uBAHqB,oBAAoB,KAAK,GAAG,OAAO,UAMzD;;AAGH,SAAgB,kCAEd;AACA,QAAO,mBAAmB,KAAK,SAAS,+BAA+B,KAAK,CAAC;;AAG/E,SAAgB,gCAAiD;AAC/D,QAAO,EAAE,GAAG,yBAAyB"}
@@ -0,0 +1,98 @@
1
+ import { AldThemeCssVars } from '../types';
2
+ export declare const aldV3ColorValueModePalette: {
3
+ readonly neutral: {
4
+ readonly 0: "#FDFEFF";
5
+ readonly 25: "#F6F9FB";
6
+ readonly 50: "#EEF1F5";
7
+ readonly 100: "#E3E7EC";
8
+ readonly 200: "#D1D6DC";
9
+ readonly 300: "#B4B9C1";
10
+ readonly 400: "#8D939B";
11
+ readonly 500: "#6D747C";
12
+ readonly 600: "#484F58";
13
+ readonly 700: "#313740";
14
+ readonly 800: "#1D232C";
15
+ readonly 900: "#12181F";
16
+ readonly 950: "#060A10";
17
+ readonly 1000: "#010103";
18
+ };
19
+ readonly brand: {
20
+ readonly 50: "#F4F8FF";
21
+ readonly 100: "#E7F0FF";
22
+ readonly 200: "#C7DBFA";
23
+ readonly 300: "#94B7F2";
24
+ readonly 400: "#6B96E8";
25
+ readonly 500: "#4A79DE";
26
+ readonly 600: "#3162D4";
27
+ readonly 700: "#284FAF";
28
+ readonly 800: "#223F8C";
29
+ readonly 900: "#1B336D";
30
+ readonly 950: "#14244A";
31
+ };
32
+ readonly blue: {
33
+ readonly 50: "#F2F8FF";
34
+ readonly 100: "#E1F0FF";
35
+ readonly 200: "#BFE0FF";
36
+ readonly 300: "#8EC8F6";
37
+ readonly 400: "#56A9E9";
38
+ readonly 500: "#2D8BD6";
39
+ readonly 600: "#1F72B6";
40
+ readonly 700: "#1B5C95";
41
+ readonly 800: "#1A4774";
42
+ readonly 900: "#173A5E";
43
+ readonly 950: "#0F243D";
44
+ };
45
+ readonly green: {
46
+ readonly 50: "#F2FBF7";
47
+ readonly 100: "#E3F7ED";
48
+ readonly 200: "#C2EBD7";
49
+ readonly 300: "#91D8B6";
50
+ readonly 400: "#5FC08F";
51
+ readonly 500: "#35A873";
52
+ readonly 600: "#25895D";
53
+ readonly 700: "#1F6F4D";
54
+ readonly 800: "#1A583F";
55
+ readonly 900: "#154633";
56
+ readonly 950: "#0D2B20";
57
+ };
58
+ readonly yellow: {
59
+ readonly 50: "#FFFBEB";
60
+ readonly 100: "#FFF4C2";
61
+ readonly 200: "#FFE68A";
62
+ readonly 300: "#F8CF48";
63
+ readonly 400: "#E9B323";
64
+ readonly 500: "#C89313";
65
+ readonly 600: "#9F710E";
66
+ readonly 700: "#7E590F";
67
+ readonly 800: "#64460F";
68
+ readonly 900: "#4B340C";
69
+ readonly 950: "#2F2108";
70
+ };
71
+ readonly orange: {
72
+ readonly 50: "#FFF7ED";
73
+ readonly 100: "#FFEAD2";
74
+ readonly 200: "#FFD0A3";
75
+ readonly 300: "#FFB06B";
76
+ readonly 400: "#F28D3A";
77
+ readonly 500: "#D46F1F";
78
+ readonly 600: "#B25516";
79
+ readonly 700: "#8F4215";
80
+ readonly 800: "#713516";
81
+ readonly 900: "#572A14";
82
+ readonly 950: "#34180B";
83
+ };
84
+ readonly red: {
85
+ readonly 50: "#FFF5F5";
86
+ readonly 100: "#FFE5E7";
87
+ readonly 200: "#FFC9D0";
88
+ readonly 300: "#F59AA7";
89
+ readonly 400: "#E86A7A";
90
+ readonly 500: "#D54355";
91
+ readonly 600: "#B93243";
92
+ readonly 700: "#982838";
93
+ readonly 800: "#7A2130";
94
+ readonly 900: "#611B28";
95
+ readonly 950: "#3B1018";
96
+ };
97
+ };
98
+ export declare const aldV3ColorValueModeVars: AldThemeCssVars;